SQL注入傻瓜工具大比拼

前言
  隨着ASP的日趨成熟,各種檢測工具也逐漸流行了起來。如今,幾乎每一個學習黑客的網迷手裏都有一款或幾款得心應手的注入工具。但我通過QQ羣瞭解到,有相當一大部分人認爲這些工具的注入手法是相同或相近的。其實這種說法只說對了一部分,在提交“and 1=1”、“and 1=2”進行漏洞判斷時,這些軟件所使用的方式的確是一樣的,但接下來在猜解表名、猜解列名、猜解記錄上,各軟件所用的方式方法卻不盡相同。
  爲了使菜鳥們能夠更清楚的瞭解各軟件的注入強點和注入弱點,以便物盡其用。本人特摘取啊D、NBSI、HDSI、WED、冰舞、CSC和Domain七種網絡上常見的注入工具進行逐一分析,並列出部分注入語句以便讀者更好的進行對比和學習,並附帶了解一下作者的思路。
  希望讀者在看過此文後能對各注入軟件有一個系統的瞭解,也希望編程人員能編出更好的注入軟件來。
  測試
本次測試是從網上隨機選出的一些站點,分別用七種工具進行注入並統計結果。原準備要檢測100個網站的,可是在檢測到第四個網址時就發現了差距,因此也就沒有檢測太多的必要了。在此檢測的七個站點仍是從這100個網址中隨機挑選的,根據統計學的概率和正向分佈原理,本測驗也是有說服力的。
在Google中利用關鍵詞查詢:“大學 asp?id=43”,取得如下URL:
http://www.daofeng.net/articledisp.asp?ID=43
http://english.sdut.edu.cn/show_news2.asp?id=43
http://yzg.stu.edu.cn/tzgz/list.asp?id=43
http://www.merica.com.tw/win-asp/maintain/ShowSchool.asp?id=43
在Google中利用關鍵詞查詢:“下載 asp?id=43”,取得如下URL:
http://www.xinw.cn/show.asp?id=43
在Google中利用關鍵詞查詢:“新聞 asp?id=43”,取得如下URL:http://www.ectcom.com/ebusiness/Read.asp?ID=43
在Google中利用關鍵詞查詢:“政府 asp?id=43”,取得如下URL:
http://www.netdtzgl.gov.cn/rules/viewrules.asp?id=43
數據代表:
檢測不出漏洞 n
猜解表名 a 數目,*無法猜解, 不準確,/無用數據
猜解列名 b 數目,*無法猜解, 不準確,/無用數據
猜解記錄 c 數目,*無法猜解, 不準確,/無用數據
檢測結果:
NBSI HDSI 啊D Domain 冰舞 CSC WED 數據庫
1 a3b4c1 a4b4c2 *** a1 a1 * *** *** sql,錯誤關
2 n n a2b3c1 a2b3c1 n /** /** acc
3 a2b3c1 a2 a2b3c1 a2b3c1 *** a1b1c1 a1b2c1 acc
4 a2b3c2 a2b3c2 a2b3* a2b3* n a1** a1// acc
5 a1b3c2 a1b2/ a1b3* a1b3* a1b2* a1** a1b1/ acc
6 a2b3c5 a2b3c6 a3b3c5 a1** *** a1** a1b1/ acc
7 全部 全部 *** *** *** *** a1b2* sql,錯誤開
速度 B A A A A A A 
綜合認定 A B A B D C B 
現在,哪一款工具性能更優越,你該很清楚了吧?下面我們就來具體分析一下每一個軟件。
  測試與評比
 1.啊D
啊D是一款很不錯的綠色軟件,體積還不到300kb,對於我們在網吧奮戰的一族來說真是夠體貼了!利用啊D可以得到大部分有注入漏洞的管理員用戶名和密碼,速度也相當快,結果也很準確。當軟件運行一次後,直接修改注入地址就可以進行下一次注入,這是WED,CSC,NBSI,Domain所不能的。功能也比較簡單,就是暴密碼,找後臺,然後通過後臺上傳WebShell,再進一步提權。但啊D也有很多不足之處:
1)對某些明明有漏洞的站點檢測不出,提示無漏洞,此時也只能改用其它軟件了,我個人經驗認爲此時用NBSI比較好,如果連NBSI都檢測不出的話,就只能放棄這個注入點了。
2)對MSSQL數據庫錯誤提示開啓時依舊採用了字典窮舉的方式,而沒有像其它軟件採取暴字段的方式,因此速度會很慢而且支持也不是很好,這時要是遇見“***_admin”這類字典裏沒有表名就有些力不從心了。只會出現幾個默認的表。

3)偶爾在窮舉密碼時會出現“檢測長度已超過50……”這樣的錯誤。
實際上並沒有,如果換成WED或NBSI的話便可以輕易拿到密碼。一般時如果啊D在通用的表下注入成功,那麼WED也可以,不過啊D是GUI界面的,一切可控而且由於它提交的是Ascii代碼,因此可以暴出中文密碼來,這是隻通過數字 字母 符號窮舉的WEB所不能的。
4)還有一個不足之處就是當我們已經暴到想要的表(如admin),想要進一步暴列,或是暴了列想進一步暴密碼時,會發現上一進程並沒有停止,我們也沒有任何方式讓它停下。這些已經不需要的進程很影響破解的速度,使我們無法體驗它飛快的感覺。

2。NBSI

NBSI是款老牌注入工具,似乎我們不應該再挑挑揀揀了。它在對MSSQL數據庫的注入上已經趨近完美,但我最近卻也發現了一個NBSI不能注入,啊D,WEB等也無能爲力,但HDSI卻可以注入的網址。它在un.org的新聞頁面上,有興趣的朋友可以去看看。
NBSI的其它功能也不錯,譬如站點列表功能,雖然我只成功用過一次,但正是那次使我拿下了那個站點。還有命令行工具、後臺猜解,提起它們的原因是當我們轉向這些頁面時,填入的網址並沒有跟着跳轉,這是個很令人頭疼的問題,相信也是很多人棄NBSI去用其它工具的原因。
另外NBSI有時會出現“int13變量錯誤”或“頁面轉向,是否重試”的提示。
當後者出現時還可以直接按確定不管它,但若是前者,只能乖乖把程序重啓一遍了。另外暴不出數據也是個難題,如圖4所示。
而且NBSI的體積也太大了些,差不多要和啊D、CSC、WED、HDSI、Domain加起來一樣大了,在網吧沒有2分鐘是絕對下不下來的!

3.HDSI
HDSI功能要比NBSI多得多,即使在注入方面也毫不遜色,這一點我們在上面的測試中就可以看出了,而且它的速度是很快的,幾乎是NBSI的一倍。除此之外它在注入消息的細節的顯示上也比NBSI更豐富。
因此也有人宣稱它可以取代NBSI,但真是如此麼?
發現了什麼嗎?列有一個爲“name”,列有兩個爲“id”、“pass”,其實圖8只是對同一網址再次檢測的結果。如果用NBSI的話,則三個列名均能顯示出來。而“name”與“pass”不能同時暴出,這樣的數據對我們又有什麼用呢?我相信這不是一個偶然。通過此圖和上面的測試列表,我想告訴大家的一個事實是:所暴數據的多少不僅僅是字典的問題,這也是我爲什麼把所暴數據的個數也列出來的原因。
但正如我說的,工具性能有長有短。雖然HDSI除了速度外並不比其它工具更出色,但那個聯合國的新聞頁不是也只有它才能暴出麼?同一個工具在不同的站點的表現是不同的,不同的工具在同一站點的表現也是不同的!這跟我們看人一樣。

4。WED
對小榕的這個工具真沒有什麼好說的,又快又小,建議人手一個。雖然要在CMD下運行,但在浩做成了GUI頁面的啓動後,便顯得更加完美了。只是在複製密碼時不是很方便,若是32位的……另外WED並不支持對中文密碼的猜解,這點在程序運行時就看得到,它窮舉的並不是Ascii代碼。
WED的一個小小的BUG是在有時破解結束時,顯示的並不是完整的密碼,而是形如a*min這種情況,這時把數據先記下來,然後重新注入一次。一般會得到正確的密碼或形如adm*n等,而此時你根據記錄的a*min就應該推測出密碼爲admin。
WES沒有HDSI和NBSI那麼多功能,只能得到管理員用戶和密碼,但你對於這個全自動注入、體積超小、速度極快的工具又有什麼奢求呢?

5.冰舞

不知道爲什麼,當我第一次操作這款工具注入時就感覺很累。輸入了網址後首先不管三七二十一就要你輸入關鍵詞。這意味着我們要打開兩個窗口分別在網址結尾加上“and 1=1”和“and 1=2”,然後耐心地等待頁面顯示出來,再一點一點地比較,然後在“and 1=1”頁面複製“and 1=2”頁面沒有的字符,在切換窗口粘貼……我想現在讀者也該累了,呵呵。而你會得到多少有用信息呢?看看上面的測試表吧!而且它的錯誤也是我第一次見到。
輸入一個有注入漏洞的網址和關鍵詞進行檢測,提示不存在漏洞,我們再一次點擊檢測按鈕,卻又提示存在漏洞。在第四次點擊時,跳出圖中窗口,點擊確定後程序自動關閉……
對於喜歡用冰舞的黑友們,我只能送一句話給你們:“其實世界可以變得更美好……”。 






6.CSC

這個工具的功能與WED、WIS一樣,暴密碼找後臺。我沒有找到這個工具的什麼優點,它有的別的軟件都有,而別的軟件有的它卻沒有。有時有的網站明明有漏洞它卻檢測不出。而且由於是掛着字典破解,速度也不快,注入一次,就要把那個設置頁面統統重設一遍,即使你僅僅想找後臺。
我用WED跟它做過比較,它不僅速度沒有WED快,對有些頁面檢測不出,有時甚至暴不出密碼來……唯一值得說的是它應該是國內公佈出來的免費的第一款腳本注入檢測工具,臭要飯的當初寫的時候很早,那時候腳本注入都停留在手工上面,也算是小小的里程碑了。

7.Domain

在這裏抓個圖給大家看,至於評點,呵呵……它和啊D很像,你們看我對啊D的評點吧!另外通過那張測試表,你們也應該能對比出點什麼。

  總結
其實注入也是門學問,即使我們用工具也會長不少見識。
看出什麼了麼?對了!它的name字段並不是有用的數據,有用的數據在應該爲表示序列的uid中。這次檢測WED和CSC就是因爲暴的是name字段,所以最終以失敗而告終。而用啊D等工具的朋友是不是也會在沒有去暴uid時面對那奇怪的name而發楞呢?是啊!人的思想是奇妙的,希望讀者能從本文中讀到文章中沒有的東西,呵呵。
最後把NBSI和HDSI對於確定服務器信息的幾行重要的提交代碼在這裏公佈一下,希望軟件編程人員能從中總結點什麼:
HDSI
/rules/viewrules.asp?id=43;create table t_jiaozhu(jiaozhu varchar(200))
/rules/viewrules.asp?id=43 and(char(94)+db_name()+char(94))>0
/rules/viewrules.asp?id=43;declare @a int――
/rules/viewrules.asp?id=43 And Cast(IS_SRVROLEMEMBER('sysadmin') as varchar(1))=1
/rules/viewrules.asp?id=43 And char(94)+user+char(94)=0
/rules/viewrules.asp?id=43 And char(94)+db_name()+char(94)=0

NBSI
/rules/viewrules.asp?id=43
/rules/viewrules.asp?id=43 and user+char(124)=0 
/rules/viewrules.asp?id=43;declare @a int―― 
/rules/viewrules.asp?id=43 and (Select count(1) from [sysobjects])>=0
/rules/viewrules.asp?id=43 And user+char(124)=0
/rules/viewrules.asp?id=43 And Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))+char(124)=1
/rules/viewrules.asp?id=43 And Cast(IS_MEMBER(0x640062005F006F0077006E0065007200) as varchar(1))+char(124)=1
/rules/viewrules.asp?id=43 And db_name()+char(124)=0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章