首页
社区
课程
招聘
[原创]SQL注入漏洞测试工具比较
发表于: 2011-12-23 17:47 9424

[原创]SQL注入漏洞测试工具比较

2011-12-23 17:47
9424

SQL注入漏洞测试工具比较

Sql注入测试一定要使用工具。原因一:工作效率;原因二:人工很难构造出覆盖面广的盲注入的sql语句。例如当一个查询的where字句包含了多个参数,or and的关系比较多时,简单的 or 1=1, and 1=2是很难发现注入点的。
Sql注入的工具很多(Top 15 free SQL Injection Scanners),我最近使用的有Sqlmap,SqliX,JbroFuzz,Sql Power Injector, 网站啄木鸟.现将他们的使用方法和比较结果贴于此:

Sqlmap是python开发的SQL注入漏洞测试工具。没有UI界面的命令行工具。虽说是命令行工具,可他的使用比网站啄木鸟,Sql Power injector 容易多了,并且有很详细的帮助文档。从下面2个地址获得相关程序包:
Python下载,推荐下载2.7版本,兼容性好:c92K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8&6N6r3S2G2L8W2)9J5k6h3!0J5k6#2)9J5c8X3k6@1M7q4)9J5c8Y4m8&6N6r3S2G2L8W2)9J5c8U0u0Q4x3X3f1%4i4K6u0W2x3W2)9J5c8Y4m8&6N6r3S2G2L8W2)9J5k6o6u0Q4x3X3f1%4i4K6u0W2x3W2)9J5k6h3#2K6K9b7`.`.
SqlMap下载:594K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4I4L8r3#2S2M7q4)9J5k6i4y4G2N6i4u0U0k6h3k6G2M7X3N6W2i4K6u0W2L8X3g2@1i4K6u0r3
SqlMap根目录下Sqlmap.py是主程序,sqlmap.conf是配置文件。Sqlmap的使用有2种方式:
1 在cmd中直接输入命令行。
2 在sqlmap.conf中配置命令行参数,然后在cmd中用sqlmap.py -c sqlmap.conf 发起攻击。
我比较喜欢第二种方式。这里仅列出sqlmap.conf种几个命令。更详细的命令描述参考doc目录下的readme.pdf,
# Target URL.
# Example: e73K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5&6x3W2)9J5k6e0p5$3z5q4)9J5k6e0q4Q4x3X3f1I4x3U0q4Q4x3V1k6K6M7h3I4E0j5i4m8Q4x3V1k6E0P5i4y4I4L8q4)9J5c8X3N6W2N6q4)9#2k6X3W2F1N6q4)9J5k6i4m8Z5M7q4)9K6c8X3W2V1i4K6y4p5x3g2)9J5y4X3y4S2N6q4)9K6c8o6t1`.
url =
指定攻击的url地址。
# Data string to be sent through POST.
data =
如果是POST命令的话,请在data字段填上POST的数据。
# HTTP Cookie header.
cookie =
如果网站需要登录的话,请在cookie字段填上cookie数据。cookie数据可以用wireshark抓包得到。
# Alert with audio beep when sql injection found.
beep = True
建议把beep设为True,当发现注入点时Sqlmap会嘀的一声,很提神的声音。
相关命令设置好以后,在命令行中输入sqlmap.py -c sqlmap.conf,就可以开始Sql注入测试啦。发现注入点(嘀的一声响)后,就可以通过设置其他命令来尝试获取更多的后台数据库信息。
Sqlmap功能非常多,获取数据用户名/密码/角色,数据库表,查询数据库表内容,上传/下载文件文件,修改注册表deng。当然有些功能是在当前数据库用户用一定权限的前提下才能完成。

SqliX 是由OWASP用Perl开发的SQL注入漏洞测试工具。跟Sqlmap一样是命令行驱动,也和sqlmap一样的好用。没有详细的帮助文档,项目主页上有简单的安装和使用介绍。
Perl下载地址:a17K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3q4U0N6r3W2$3k6i4y4@1j5i4c8W2i4K6u0W2j5$3!0E0i4K6u0r3j5h3y4@1K9i4k6W2M7r3g2J5L8q4)9J5c8X3c8G2N6$3&6D9L8$3q4V1M7H3`.`.
SqliX下载地址:987K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2G2N6$3q4K6M7q4)9J5k6h3!0J5k6#2)9J5c8X3W2F1k6r3g2^5i4K6u0W2M7r3S2H3i4K6u0r3b7$3q4@1k6h3N6G2M7Y4W2Q4x3@1q4a6g2@1q4e0f1q4)9#2k6W2y4c8e0r3W2j5i4K6g2X3f1s2u0G2K9X3g2U0N6l9`.`.
SqliX依赖2个包:首先使用下面的命令安装依赖包:
   perl -MCPAN -e 'install WWW::CheckSite'
     perl -MCPAN -e 'install Tie::CharArray'

如果CheckSite安装失败,出现如下错误信息:
make test had returned bad status, won't install without force
使用下面的命令强制安装:
perl -MCPAN -e "CPAN::Shell->force(qw(install WWW::CheckSite));"

安装成功后就可以在cmd中开始SqliX的注入测试了。SqliX的命令相对较少:
-url 给定测试的URL地址
--post_content 如果是POST命令的话,请加上POST数据
-crawl 这是一个唯一Sqlmap没有的功能。他指定一个url的根目录,爬虫原理爬出所有的链接地址,然后对每个地址进行注入测试。
-v 显示信息级别,值越大,显示的信息越多。
-all
-method_taggy
-method_error
-method_blind
-method_blind_integer
-method_blind_string
-method_blind_statement
-method_blind_comment
以上 这些是根据不同的注入原理得出的不同的注入方法,一般选择-all或者-method_blind,应用所有的注入方法。
例如:sqlix.pl -url c87K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8S2M7X3N6W2N6o6q4Q4x3X3g2W2k6s2g2Q4x3V1k6W2P5s2c8W2L8Y4y4A6L8$3&6A6L8X3k6G2L8X3g2@1i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5k6h3q4K6M7q4)9K6c8X3W2V1i4K6y4p5x3K6j5H3x3R3`.`. -method_blind -exploit -v=2
几秒钟后,显示信息如下:
Analysing URL [ee5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8S2M7X3N6W2N6o6q4Q4x3X3g2W2k6s2g2Q4x3V1k6W2P5s2c8W2L8Y4y4A6L8$3&6A6L8X3k6G2L8X3g2@1i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5k6h3q4K6M7q4)9K6c8X3W2V1i4K6y4p5x3K6j5H3x3W2)9#2c8l9`.`.
  272K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4c8S2M7X3N6W2N6o6q4Q4x3X3g2W2k6s2g2Q4x3V1k6W2P5s2c8W2L8Y4y4A6L8$3&6A6L8X3k6G2L8X3g2@1i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5k6h3q4K6M7q4)9K6c8X3W2V1i4K6y4p5x3K6j5H3x3R3`.`.
         [+] working on id
                 [+] Method: SQL Blind Integer Injection
                         [FOUND] Blind SQL Injection: Integer based
                         [INFO] Current function:
                         [INFO] length: 0

                         [FOUND] SQL Blind Integer Injection

RESULTS:
The variable [id] from [0fdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3g2^5N6r3g2F1M7$3W2G2L8W2)9J5k6h3#2A6M7%4y4G2N6i4u0A6i4K6u0W2k6h3c8#2i4K6u0r3k6i4S2@1k6h3&6K6K9h3!0F1K9h3&6X3L8$3&6W2N6q4)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3X3g2S2M7%4m8Q4x3@1k6A6k6q4)9K6c8o6x3$3x3o6u0Q4y4f1b7`. is vulnerable to SQL Injection [Integer without quote - ].

“is vulnerable” 表明这个url是有注入漏洞的。
SqliX发现漏洞的能力确实不错,不比Sqlmap差。而漏洞利用的能力远不如Sqlmap,他只能执行一些函数和sql语句。事实上在不知道后台数据库表名的情况下很难执行sql语句。SqliX这样设计是可以理解的,他的目的只是为了进行Sql注入漏洞测试发现漏洞,才不希望被用来干坏事呢。

JbroFuzz,是OWASP开发Web应用程序模糊(Fuzz)测试工具. 有UI界面,但真的不好用,很多常用操作都没有快捷键的支持。他提供Sql注入相关的有效载荷(Payload,这个词真没有合适的中文翻译)。直接看看Sql注入的payload吧:
' or 1=1--
and 12=21
or '7659'='7659
union all select @@version--
union all select 1,2,3
1 and user_name() = 'dbo'

等等payload有很多。JBroFuzz用这些预定义的payload去替换http请求中的参数值(可以是请求的任意字段),保存http返回数据,并对返回数据做统计分析,形成统计图表,通过人工分析统计图表来判断是否有注入漏洞。很费劲,建议不要用JbroFuzz进行Sql注入漏洞测试。他的价值在于很多的payload,基本上每个payload对应一种注入方法,可以作为Sql注入学习和手工测试的参考。
除了Sql注入,JRoFuzz还可以进行其他多种Web应用程序相关的测试例如:XSS,LDAP注入,XML注入等。

SqlPowerInjector:
悲惨,真不好用。没有其他评价。

网站啄木鸟
下载地址:013K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4C8P5h3y4F1i4K6u0W2j5$3!0E0i4K6u0r3M7$3!0X3N6q4)9J5c8U0b7#2y4o6t1@1i4K6u0W2K9s2c8E0L8l9`.`.
能发现简单的注入漏洞。wireshark抓包可见,他构造的sql注入payload仅仅是简单的"and 1=1--","and 1>1--"等。 在发现漏洞后啄木鸟猜表面的能力也很弱,只是依靠查询MS-sql和Oracle的user table来获取用户表名。

实际测试结果
以下是8个漏洞url,用于测试Sqlmap,Sqlix,JBroFuzz,网站啄木鸟。即使我人工分析JBroFuzz统计数据,没有发现注入漏洞的线索。具体结果看下表:
Sqlmap        啄木鸟        SqliX        1bdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3&6W2N6%4y4Q4x3X3g2H3K9s2m8Q4x3@1k6A6k6q4)9K6c8o6V1J5
Sqlmap        啄木鸟        SqliX        916K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3X3g2S2M7%4m8Q4x3@1k6u0c8q4)9K6c8o6p5H3x3W2)9J5y4Y4c8A6N6r3I4W2i4K6y4p5c8X3q4K6N6q4)9J5y4e0t1H3k6X3!0G2k6q4)9J5y4e0t1H3L8h3q4J5K9$3g2@1K9h3&6Y4i4K6t1#2x3U0m8X3L8%4u0Q4x3U0f1J5x3r3y4Z5K9h3I4V1M7X3g2F1i4K6t1#2x3U0m8A6M7#2)9J5y4e0t1H3L8$3&6Q4x3U0f1J5x3s2c8Z5k6g2)9J5y4e0t1H3M7X3W2K6k6b7`.`.
Sqlmap        啄木鸟        SqliX        b7dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3X3g2S2M7%4m8Q4x3@1k6A6k6q4)9K6c8o6p5&6y4U0V1`.
Sqlmap        No                SqliX        551K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3g2^5N6r3g2F1M7$3W2G2L8W2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3g2V1N6g2)9J5c8X3g2^5N6r3g2F1M7$3W2G2L8X3W2F1k6X3!0F1k6i4c8Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0W2j5i4y4H3i4K6y4r3K9h3c8Q4x3@1b7K6y4U0l9J5
Sqlmap        No                SqliX        31eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4U0K9r3!0G2L8q4)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8Y4c8G2L8$3I4K6i4K6u0r3L8Y4g2@1M7X3W2@1K9h3!0F1i4K6u0V1k6h3c8#2j5$3q4@1K9h3!0F1i4K6u0r3N6X3W2W2N6#2)9J5k6i4m8Z5M7q4)9K6c8X3W2V1i4K6y4p5x3U0x3&6y4o6f1$3y4e0M7`.
Sqlmap        No                SqliX        057K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8X3g2T1L8$3!0C8M7s2u0A6L8Y4c8Q4x3X3g2H3K9s2m8Q4x3@1k6A6k6q4)9K6c8o6t1@1y4b7`.`.
Sqlmap        No                SqliX        36bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8W2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5k6r3&6#2N6s2u0A6N6r3W2G2L8W2)9J5k6r3k6S2j5%4c8K6i4K6u0W2M7r3S2H3i4K6y4r3K9h3c8Q4x3@1b7J5x3e0l9I4z5b7`.`.
Sqlmap        No                SqliX        db5K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6g2c8S2M7X3N6W2N6q4)9J5k6h3y4G2L8g2)9J5c8W2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5b7g2)9J5c8X3q4J5N6r3W2F1k6X3!0Q4x3X3g2H3K9s2m8Q4x3@1k6A6k6q4)9K6c8o6j5#2x3K6b7`.

最后结果:Sqlmap是个很好的Sql注入测试工具。
见笑了,给自己的总结,供大家参考。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 87
活跃值: (25)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
好贴,我真的不怎么会有工具,一直手工,以至于效率很差,有时间下载下来研究一下,谢谢楼主分享!
2011-12-27 09:40
0
雪    币: 156
活跃值: (27)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
神器是穿山甲
2012-1-16 11:07
0
雪    币: 331
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
穿山甲确实是神器
2012-1-16 20:42
0
雪    币: 131
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请教下穿山甲也是sql注入工具吗?
2012-1-16 22:44
0
雪    币: 87
活跃值: (25)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
是 而且很强大的工具
“工具不是万能的,sometimes,没有工具是万万不行的”
2012-1-17 09:32
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
safe3才是神器
2012-1-17 09:57
0
雪    币: 123
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
占位收藏工具也收藏方法
2012-1-30 09:22
0
游客
登录 | 注册 方可回帖
返回