在手工注入进行盲注时,一个一个字符测试工程量过大,这时我们就可以配合burp-suite的intruder模块进行半自动化注入
下面只提供思路及简单过程,盲注具体方法请参看前面文章
例如:我们已经测得某数据库及其第一个表名的长度为6,接下来就要获取第一个表名的值,语句如下:
http://127.0.0.1/sqli-labs/Less-1/?id=1' and (select ord(substr(table_name,1,1)) from information_schema.tables where table_schema=database() limit 0,1)=6 --+
正常做法就是不断替换6的值,得到正确数字后转化为字符型,再改变substr()里面截取字符的位数来测试下一个值,直到测得所有得值就是表名,可以见的过于繁琐,下面就为大家讲解怎么配合burpsuite的暴力破解模块加快测试速度
首先使用bp截取获取表名的请求,发送到intruder模块
我们先分析一下我们的需求,我们想让bp先依此测试完表名的这6个字符
然后就能确定我们需要设置的变量
- substr(table_name,1,1)中要控制1的递增来让我们测试截取的表名字符的递增,直到递增到最后一个停止
- 要控制我们截取转化为ascii码后判断等于的值,让其递增挨个测试,从1到127(ASCII的范围就是1到127,包括了所有的字符)
确定intruder模块的攻击方式
用表格来演示我们测试的过程
substr(table_name,1,1) | 1 |
substr(table_name,1,1) | 2 |
..... | ... |
substr(table_name,1,1) | 127 |
substr(table_name,2,1) | 1 |
substr(table_name,2,1) | 2 |
.... | ..... |
substr(table_name,6,1) | 127 |
从上表我们很直观的看到我们的两个变量是一对多的关系,所以选择攻击类型为:clusterbomb

增加两个需要爆破的变量

然后选择字典
payload1字典选择为1-6即可(我们所要测的表名为6位)

payload2字典选择为1-127(ASCII的范围就是1-127)

然后开始爆破,等爆破完成点按长度排序,就会有下面结果,依此转换成字符就是我们的第一个表名

同理可以测的其他表名,列名及数据,这样的话比纯手工就快多了
FROM:无垠の安全
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论