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%20table%20t_jiaozhu(jiaozhu%20varchar(200))
/rules/viewrules.asp?id=43%20and(char(94)%2Bdb_name()%2Bchar(94))>0
/rules/viewrules.asp?id=43;declare%20@a%20int--
/rules/viewrules.asp?id=43%20And%20Cast(IS_SRVROLEMEMBER('sysadmin')%20as%20varchar(1))=1
/rules/viewrules.asp?id=43%20And%20char(94)%2Buser%2Bchar(94)=0
/rules/viewrules.asp?id=43%20And%20char(94)%2Bdb_name()%2Bchar(94)=0

NBSI
/rules/viewrules.asp?id=43
/rules/viewrules.asp?id=43%20and%20user%2Bchar(124)=0
/rules/viewrules.asp?id=43;declare%20@a%20int--
/rules/viewrules.asp?id=43%20and%20(Select%20count(1)%20from%20[sysobjects])>=0
/rules/viewrules.asp?id=43%20And%20user%2Bchar(124)=0
/rules/viewrules.asp?id=43%20And%20Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00)%20as%20varchar(1))%2Bchar(124)=1
/rules/viewrules.asp?id=43%20And%20Cast(IS_MEMBER(0x640062005F006F0077006E0065007200)%20as%20varchar(1))%2Bchar(124)=1
/rules/viewrules.asp?id=43%20And%20db_name()%2Bchar(124)=0

好了,文章写完了,希望能为广大新手朋友带来一些帮助.

你可能感兴趣的:(网络安全-注入专题,工具,sql,domain,测试,google,数据库)