前言
最近一直在看关于SQL注入的一些文章,因为很多不懂所以看的比较慢,看的过程中中遇到了很多问题,但是静下心来细细品味一下,发现sql注入还是很有意思的!昨晚在看一篇sql注入的文章是遇到了一个新的问题就是利用bp 的intruder进行批量地猜解数据库中表的名字!刚开始看得很懵逼不知所以然,然后晚上就向大佬请教了一下!大佬一阵操作猛如虎!虽然不是特别明白!但是至少知道了大概!所以今天早上就实际地操作了一下!基本上知道了intruder的用法,所以今天写这篇文章记录一下,同时希望能帮助那些也遇到了跟我相同问题的人
(1) 就拿实验吧的这个题来做例子吧:
http://ctf5.shiyanbar.com/web/index_3.php
(2) 首先我们输入 1 还有1‘ 发现页面会打印出 hello 然后输入其他则不会打印出任何消息那说明存在注入
(3) 这时候我们很自然地想到是不是能猜解一下数据库的名字的所以这时候很自然地想到猜解数据库 http://ctf5.shiyanbar.com/web/index_3.php?id=1‘ and( select count(*)from sdfsdfsdf ) >0 %23
1’ and( select count() from sdfsdfsdf ) >0 %23 /这里是一个逻辑与运算,前面恒为1那么这个逻辑运算的结果取决于后面,sdfsdfsdf是随便打的名字,如果sdfsdfsdf存在则后面结果返回为1即 1 and 1 >0 sql语句为真返回结果 否则sql语句为假报错,通过下面报错我们知道该数据库的名字是web1,但是我们想要得到的是数据库中表的名字!按照我们上面的思路只要1’ and(select count() from 表名) >0 %23
表名存在他就不会报错!这时候我们不禁要想难道我们要一个一个地试表名?那这要试到猴年马月?
(4) 这时候我们就要借助工具来帮助我们进行批量化处理了-burpsuit中的 intruder
给浏览器使用burpsuit(如果不会可以百度!我个人还是建议使用火狐浏览器)代理然后抓取数据包
(5) 然后进入intruder界面进行有关设置如下图 。因为我们想让burpsuit帮助我们进行批量化替换表名所以我们设置关键词,让工具知道我们想让他批量化替换什么?
(6)我们设置完之后,就要告诉工具,我们要进行批量化处理替换的字典在哪?如下图
(7) 我们加载字典之后,burpsuit会进行很多请求,但是那么多请求结果我们怎么知道哪一个请求结果是成功的请求呢?我们还记得前面如果请求成功!页面是会打印出Hello?所以Hello就是是一个成功请求的标识符这时候我们要进行下图的设置在添加标识符的时候我们会发现系统已经默认地添加了很多,我们可以把系统添加的标识符remove掉
(8) 一切准确就绪后,开始我们的攻击
(9) 我们已经知道了数据库名表名,这时候再利用一下神器sqlmap
后记
sql注入需要长期的学习,静下心来,慢慢品味,其实发现sql注入还是很有意思的。
*本文作者:白帽子马振华,转载请注明来自 FreeBuf.COM
领取专属 10元无门槛券
私享最新 技术干货