概述
第八关看标题可知此关可以使用布尔盲注,布尔盲注我的理解是页面不会回显错误,但是注入等式或不等式时通过页面的反应能判断出注入中算式的true或false
布尔盲注的步骤如下:
- 获取数据库长度
- 获取数据库名
- 获取数据库表
- 获取表中字段
- 获取表中数据
先拿获取数据库长度举例
可以看到在length(database())>7时页面正常,length(database())>8时页面异常,即8>7=true,8>8=false,所以数据库名长度为8
再比如获取表名:
同理,substr是截取字符串的方法,这里传入三个参数,第一个是被截取的字符串,第二个是开始截取的位置,第三个是截取长度,这里截取出第一个表的第一个字符,发现其等于e时页面回显正常,即第一个表的第一个字符为e,记录下继续试第二个字符…
从这里就可以看出,布尔盲注十分需要耐心,不过像这关也可以让脚本来跑
可以发现这里请求的响应是html代码,所以页面正常的话一定会有‘you are in’在响应中,再使用request或者requests库就能实现,于是去网上找了脚本简单修改了下,直接贴代码吧
import requests
# 获取数据库名长度
def database_len():
for i in range(1, 10):
url = f"http://localhost:90/sqli-labs-master/Less-8/?id=1' and length(database())>{i}"
r = requests.get(url + '%23')
if 'You are in' not in r
最后
以上就是欣慰发带为你收集整理的sqli-labs第八关(布尔盲注)的全部内容,希望文章能够帮你解决sqli-labs第八关(布尔盲注)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复