|
大量的現(xiàn)代企業(yè)采用Web應(yīng)用程序與其客戶(hù)無(wú)縫地連接到一起,但由于不正確的編碼,造成了許多安全問(wèn)題。Web應(yīng)用程序中的漏洞可使黑客獲取對(duì)敏感信息(如個(gè)人數(shù)據(jù)、登錄信息等)的直接訪問(wèn)。
Web應(yīng)用程序準(zhǔn)許訪問(wèn)者提交數(shù)據(jù),并可通過(guò)互聯(lián)網(wǎng)從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。而數(shù)據(jù)庫(kù)是多數(shù)Web應(yīng)用程序的心臟。數(shù)據(jù)庫(kù)維持著Web應(yīng)用程序?qū)⑻囟▋?nèi)容交給訪問(wèn)者的數(shù)據(jù),Web應(yīng)用程序在將信息交給客戶(hù)、供應(yīng)商時(shí),也從數(shù)據(jù)庫(kù)取得數(shù)據(jù)。
SQL注入攻擊是最為常見(jiàn)的Web應(yīng)用程序攻擊技術(shù),它會(huì)試圖繞過(guò)SQL命令。在用戶(hù)輸入沒(méi)有“凈化”時(shí),如果執(zhí)行這種輸入便會(huì)表現(xiàn)出一種SQL注入漏洞。
檢查SQL注入漏洞主要涉及到兩方面,一是審計(jì)用戶(hù)的Web應(yīng)用程序,二是通過(guò)使用自動(dòng)化的SQL注入掃描器執(zhí)行審記的最佳方法。在此,筆者羅列了一些對(duì)Web應(yīng)用程序開(kāi)發(fā)人員和專(zhuān)業(yè)的安全審計(jì)人員有價(jià)值的SQL注入掃描程序。
一、SQLIer
SQLIer可以找到網(wǎng)站上一個(gè)有SQL注入漏洞的URL,并根據(jù)有關(guān)信息來(lái)生成利用SQL注入漏洞,但它不要求用戶(hù)的交互。通過(guò)這種方法,它可以生成一個(gè)UNION SELECT查詢(xún),進(jìn)而可以強(qiáng)力攻擊數(shù)據(jù)庫(kù)口令。這個(gè)程序在利用漏洞時(shí)并不使用引號(hào),這意味著它可適應(yīng)多種網(wǎng)站。
SQLIer通過(guò)“true/false”SQL注入漏洞強(qiáng)力口令。借助于“true/false” SQL注入漏洞強(qiáng)力口令,用戶(hù)是無(wú)法從數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù)的,只能查詢(xún)一個(gè)可返回“true”、“false”值的語(yǔ)句。
據(jù)統(tǒng)計(jì),一個(gè)八個(gè)字符的口令(包括十進(jìn)制ASCII代碼的任何字符)僅需要大約1分鐘即可破解。
其使用語(yǔ)法如下,sqlier [選項(xiàng)] [URL]
其選項(xiàng)如下:
-c :[主機(jī)] 清除主機(jī)的漏洞利用信息
-s :[秒]在網(wǎng)頁(yè)請(qǐng)求之間等待的秒數(shù)
。璾:[用戶(hù)名]從數(shù)據(jù)庫(kù)中強(qiáng)力攻擊的用戶(hù)名,用逗號(hào)隔開(kāi)。
-w:[選項(xiàng)]將[選項(xiàng)]交由wget
此外,此程序還支持猜測(cè)字段名,有如下幾種選擇:
--table-names [表格名稱(chēng)]:可進(jìn)行猜測(cè)的表格名稱(chēng),用逗號(hào)隔開(kāi)。
--user-fields[用戶(hù)字段]:可進(jìn)行猜測(cè)的用戶(hù)名字段名稱(chēng),用逗號(hào)隔開(kāi)。
--pass-fields [口令字段]:可進(jìn)行猜測(cè)的口令字段名稱(chēng),用逗號(hào)隔開(kāi)。
下面說(shuō)一下其基本用法:
例如,假設(shè)在下面的URL中有一個(gè)SQL注入漏洞:
http://example.com/sqlihole.php?id=1
我們運(yùn)行下面這個(gè)命令:
sqlier -s 10 http://example.com/sqlihole.php?id=1從數(shù)據(jù)庫(kù)中得到足夠的信息,以利用其口令,其中的數(shù)字“10”表示要在每次查詢(xún)之間等待10秒鐘。
如果表格、用戶(hù)名字段、口令字段名猜測(cè)得正確,那么漏洞利用程序會(huì)把用戶(hù)名交付查詢(xún),準(zhǔn)備從數(shù)據(jù)庫(kù)中強(qiáng)力攻擊口令。
sqlier -s 10 example.com -u BCable,administrator,root,user4
然而,如果內(nèi)建的字段/表格名稱(chēng)沒(méi)有猜中正確的字段名,用戶(hù)就可以執(zhí)行:
sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
除非知道了正確的表格名、用戶(hù)名字段、口令字段名,SQLIer就無(wú)法從數(shù)據(jù)庫(kù)中強(qiáng)力攻擊口令。如圖1:

圖1
本新聞共 3頁(yè),當(dāng)前在第 1頁(yè) 1 2 3 |
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|