初学Web安全之sql注入(四)—— 盲注(1)

盲注

当你的输入没有回显,也没有报错的时候,但是输入正确和错误的值时,页面有不同表现时,这时候我们可以尝试使用布尔盲注


布尔盲注

拿sqli-labs第八关来举列

首先输入id=1,页面显示如下:

初学Web安全之sql注入(四)—— 盲注(1)_第1张图片
输入id=1’,页面出现不同结果,判断有闭合:

初学Web安全之sql注入(四)—— 盲注(1)_第2张图片

再次输入id=1",页面结果显示正常,初步判断语句闭合为单引号闭合:

初学Web安全之sql注入(四)—— 盲注(1)_第3张图片


接下来,我们就可以先尝试判断当前数据库的长度,然后再拆解表名,但是这里省略这一步,直接判断当前数据库有多少个表,构造语句开始尝试:

PS:因为手工注入非常的耗费时间,所以我这里采用半自动化,也就是利用burpsuit的爆破功能,如果采用纯手工的话,语句建议采用>号,然后使用二分法缩减数字,这样效率较高

初学Web安全之sql注入(四)—— 盲注(1)_第4张图片

这里打开burpsuit,启用拦截功能,注意浏览器要切换到8080端口,这里我是用了火狐自带的插件切换端口,将拦截到的包发送到如下板块,开始暴力破解:

初学Web安全之sql注入(四)—— 盲注(1)_第5张图片

得出结果为4:

初学Web安全之sql注入(四)—— 盲注(1)_第6张图片

在页面中测试,结果正确:

初学Web安全之sql注入(四)—— 盲注(1)_第7张图片

得出了表的数量,接下来开始猜测每个表长度,同样借助burpsuit:

构造语句:

初学Web安全之sql注入(四)—— 盲注(1)_第8张图片

burpsuit暴力破解:

初学Web安全之sql注入(四)—— 盲注(1)_第9张图片

初学Web安全之sql注入(四)—— 盲注(1)_第10张图片
初学Web安全之sql注入(四)—— 盲注(1)_第11张图片

得出了有多少个表,表的长度为多少,接下来,我们就可以开始猜解表名了,这里需要用到两个函数,详细解释可以自行百度:

ascii:返回字符的ascii值
substr:截取字符作用


先构造语句:

初学Web安全之sql注入(四)—— 盲注(1)_第12张图片

借助burpsuit逐步猜解每个表名:

第一个表,前面已经得知长度为6,接下来就是猜测每个数据,因为这里是在靶场,所以我的范围只设置为小写字母,也就是97~122,实战中,有可能会出现某些字符和大小写,这里为了节约时间,就只假设为小写字母,利用burp破解得出,对照ascii码表,得出结果为:emails

初学Web安全之sql注入(四)—— 盲注(1)_第13张图片

第二个表,长度为8:

初学Web安全之sql注入(四)—— 盲注(1)_第14张图片

得出结果:referers

初学Web安全之sql注入(四)—— 盲注(1)_第15张图片

第三个表,长度为7,利用burpsuit得出结果:uagents

初学Web安全之sql注入(四)—— 盲注(1)_第16张图片

第四个表,长度为5,得出结果为:users

初学Web安全之sql注入(四)—— 盲注(1)_第17张图片

猜解完表名,可以发现,关键表应该是users,那么接下来应该就是猜解关键字段了,先判断字段数:

构造语句:

初学Web安全之sql注入(四)—— 盲注(1)_第18张图片

借助burpsuit,得出字段数为3:

初学Web安全之sql注入(四)—— 盲注(1)_第19张图片

接下来,判断每个字段的长度:

构造语句:

初学Web安全之sql注入(四)—— 盲注(1)_第20张图片

借助burpsuit得出结果,第一个字段长度为2,第二个和第三个长度为8:

初学Web安全之sql注入(四)—— 盲注(1)_第21张图片


接下来,就是猜解每个字段数了,步骤和前面都差不多:

构造语句:

初学Web安全之sql注入(四)—— 盲注(1)_第22张图片

借助burpsuit得出结果为id:

初学Web安全之sql注入(四)—— 盲注(1)_第23张图片

第二个字段:

结果为username

初学Web安全之sql注入(四)—— 盲注(1)_第24张图片

第三个字段,结果为password

初学Web安全之sql注入(四)—— 盲注(1)_第25张图片


判断出关键列为username和password,接下来就是获取账号密码了,通常管理员账号密码都是在第一个:

构造语句,获取第一个username的长度:

初学Web安全之sql注入(四)—— 盲注(1)_第26张图片

初学Web安全之sql注入(四)—— 盲注(1)_第27张图片

猜解名字:

初学Web安全之sql注入(四)—— 盲注(1)_第28张图片

PS:注意,实战中账号密码可能是数字大小写字母和符号组成,这时候可以使用字典工具生成文件,导入到burpsuit里面进行暴力破解,因为这里是在靶场,所以使用的还是数字破解

得出结果为Dumb:

初学Web安全之sql注入(四)—— 盲注(1)_第29张图片

接下来就是对password的猜解了,这里就直接上图片演示:

长度为4:

初学Web安全之sql注入(四)—— 盲注(1)_第30张图片

破解出密码也为Dumb:

初学Web安全之sql注入(四)—— 盲注(1)_第31张图片


到这里,布尔盲注就完成了,上面的步骤是借助了工具,纯手工的话,可以用>号,再借助二分法缩减数字,这样效率较高,也可以慢慢猜解出来。

你可能感兴趣的:(SQL注入)