sql盲注获取数据库信息
**一、准备工作
1.浏览器登录dvwn,安全等级设置为low。
2.打开burp,设置ip和端口,确认和浏览器一致。
3.关闭proxy模块的数据包拦截(intercept is on 设置为 intercept is off)。
二、开始盲注
(1)寻找注入点
我们在user id输入框内依次输入“1’ and 1=‘1"和”1’ and 1=‘2“。发现返回值为真和假,此时可以确定网站查询使用的sql语句格式为:
select [字段] from [表明] where User ID=’[变量]’ [其它语句]
(2)构造sql注入语句
我们通过寻找注入点确定了网站的sql查询语句为:
可根据其格式构造注入语句:select语句应用括号包裹,负责可能**失败。
将我们构造的sql语句替换网站sql语句中的变量可得到网站最终运行的sql语句代码。
(3)抓包,配置注入点。
1.开启数据包拦截(intercept is off 设置为 intercept is on)。
2.回到dvwa,将user id 输入框内输入任意内容,点击submit提交。
3.回到burp,找到我们需要的数据包(数据包地址为dvwa登录地址,get发送的数据id=[任意值],确认id的值为我们刚刚输入的任意值,即为我们所需的数据包)。
4.右击数据包区域,选择send to intruder,或者按快捷键ctrl+i;此时我们选择intruder模块下的positions。
观察数据包区域右侧有一个clear按钮,点击clear清楚我们默认的sql注入点。
复制我们构造好的sql语句,将数据包内id的值替换为我们构造好的sql语句,替换后效果如下:
依次选中substr()函数的第二个参数以及与我们的ascii()函数值相比较的数字,点击数据包右侧的add按钮为其添加**标记,随后将我们的**模式改为cluster bomb。效果如下:
选中我们构造好的语句,ctrl+u设置为url编码格式。
切换到intuder的payloads选项卡,设置payload。
1.首先在payload sets模块里配置我们的payload类型为numbers;
在payload option 模块里配置from值为1,to值为2,step值为1(to值可以设的更大,为了测试可以**查询出数据,先用较小的数代替)。
2.在payload sets模块里将payload set 的值设置为2,配置第二个**点的值;
配置我们的payload类型为numbers;
在payload option 模块里配置from值为32,to值为126,step值为1(ascii码值的可见范围为32到126)。
点击start attack开始**,**完成后点击status排序,状态码为200的为我们想要的数据:
(4)对照**成功的数据,将对应数据位的ascii解码在进行拼接即可得到数据。
若想获得数据库中的其他数据,只需将我们构造的函数中的select部分修改为想要查询数据的对应select语句即可。