【SQL注入-14】布尔盲注的半自动化注入案例—以sqli-labs-less8为例(利用BurpSuite工具)


本博客内容仅供学习探讨,请勿滥用乱用

1 概述

当改变浏览器带入给后台SQL的参数后,浏览器没有显示对应内容也没有显示报错信息时,无法使用union联合查询注入与报错注入,这时候可以试试看能否使用布尔注入。

布尔盲注:一般情况下,当带入参数为真和假时,页面会有不同的反映,比如有无显示也是一种不同,布尔盲注就是根据这种不同来反推我们输入的条件是真还是假。

2 布尔盲注的半自动化注入案例

2.1 实验平台

(1)靶机:——虚拟机(IP为172.16.1.1):本节实验靶场是在win2008系统上基于phpstudy搭建的一个sqli-labs漏洞靶场,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,sqli-labs漏洞靶场的搭建可以参考《【环境搭建】基于WAMP环境的sqli-labs漏洞靶场的搭建

(2)注入机:——kali虚拟机,为了方便发送Cookie,本实验利用BurpSuite来进行注入实验,BurpSuite的安装过程可以参考文章《【Burp Suite工具-1】BurpSuite简介及安装过程详解(含please supply the following JVM argument错误提示原因)》。

(3)靶机与kali虚拟机桥接到同一局域网中。

2.2 实验过程

2.2.1 注入前准备

(1)打开靶机虚拟机,并打开phpstudy,并启动。
在这里插入图片描述

(2)kali虚拟机上打开火狐浏览器,并使用火狐浏览器的访问靶机sqli-labs的Less8,打开页面如下。
在这里插入图片描述
(3)kali虚拟机,设置火狐浏览器的使用代理功能。设置步骤如下:单击浏览器右上角“菜单图标”,依次单击“Settings”→“Settings”→“设置网络代理”→“设置”→“手动配置代理”,示, 设置HTTP代理为127.0.0.1 , 端口为8080 ,与Burp Proxy 中的代理一致。

在这里插入图片描述
在这里插入图片描述
(4)kali虚拟机打开BurpSuite,进入Proxy工具,在BurpSuite工具的intercept界面开启 intercept is off.

2.2.2 判断注入点及注入类型

(1)判断页面是否回显数据库信息。在浏览器搜索栏URL后面输入参数?id=1,仅有一句you are in没有显示其他具体信息。修改为?id=2,也是同样结果。网页没有随id变化而动态显示不同的内容,所以无法使用union联合查询的注入手法。
在这里插入图片描述
在这里插入图片描述

(2)判断是否有报错提示,及注入属于数值型还是字符型

  • 1)修改参数为?id=1',程序运行出错,没有给出错误提示。<fontcolor=Blue>无法判断是数值型注入还是字符型注入,也无法使用报错注入手法。

在这里插入图片描述

  • 2)修改参数为?id=1",网页显示正常。说明双引号必定不是闭合方式
    在这里插入图片描述
  • 3)修改参数为?id=1'--+,网页显示正常。说明该注入点为字符型注入,且为单引号闭合。

在这里插入图片描述
(3)判断是否有布尔类型状态。结合上述步骤2和3,无法使用union联合查询注入和报错注入,因此需要继续判断是否有布尔类型状态。

  • 1)修改参数为?id=1' and 1=1--+,网页显示正常。

在这里插入图片描述

  • 2)修改参数为?id=1' and 1=2--+,网页显示错误。

在这里插入图片描述
说明网页有布尔类型状态。因此可考虑布尔盲注

综上所述,注入点为字符型注入,闭合方式为’,闭合采用–+,采用布尔盲注。

2.2.3 爆库名长度及库名

(1)在BurpSuite工具的intercept界面开启 intercept is on,重新加载浏览器中的的页面,让BurpSuite拦截到请求。
在这里插入图片描述
在这里插入图片描述
(2)将请求参数修改为?id=1%27%20and%20length(database())=10--+ ,然后将请求右键发送到intruder模块(入侵模块),采用该工具对布尔盲注的参数进行爆破,能较大程度降低手工爆破的工作量。注意,url参数中单引号及空格都需要为url编码格式
在这里插入图片描述
(3)在intruder模块中的Target界面,确认目标主机及目标端口号。
在这里插入图片描述
(4)切换到intruder模块的posions界面,我们将需要爆破的参数用特殊符号**$**括起来(表示该参数为变量),像此处我们需要爆破的是库名长度的数字。

在这里插入图片描述
(5)切换至intruder模块的payloads界面,为步骤2的爆破对象选择一个待选集合,此处选择1~10即可,因为我们知道一般名字不会太长,如果不行后续再扩大范围也可以。选择后我们点击右上角的start attacks。
在这里插入图片描述
(6)对爆破结果进行排序,得到以下界面。这些结果中只要一个结果为真,其他都为假,因此可以得出库名的字符长度为8。
在这里插入图片描述
(7)在浏览器中的HackBar中输入参数?id=1' and ascii(substr(database(),1,1))=100 --+
在这里插入图片描述
(8)BurpSuite拦截到请求,将请求右键发送到intruder模块(入侵模块)。
在这里插入图片描述
(9)切换到intruder模块中的posions界面,将substr()函数的第二位参数和等号后面的数字添加特殊符号$,作为爆破对象,并将 attack type 选择为 cluster bomb。
在这里插入图片描述
(10)切换到intruder模块中的payload界面,分别为两个爆破对象设置待选集合。如下所示,设置后点击start attack。
注意,为了加快爆破的速度,可在options选项中设置多线程,如将线程设置为500.
在这里插入图片描述
在这里插入图片描述

(10)对爆破结果进行排序,对ascii码进行解码后可得库名为security。

2.2.4 爆表名、字段名以及账户及密码

与爆库名同理,我们先爆表名长度。再爆表名。
与爆库名同理,我们先字段名长度。再爆字段名。
与爆库名同理,我们先账户及密码长度。再账户及密码。
sql语句的构造可以具体参考《布尔盲注案例》,而利用BurpSuite工具进行半自动化注入的步骤与上述爆库名类似。

3 总结

(1)理解布尔注入的逻辑和原理。
(2)利用BurpSuite代替人工进行试错以减少工作量。
(3)爆破时建议使用ascii值来判断以区分大小写。

参考文章

[1] 《【SQL注入14】布尔盲注的半自动化实现(基于BurpSuite工具和sqli-labs-less8靶机平台)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值