zoukankan      html  css  js  c++  java
  • Sqli-labs Less-33 宽字节注入 嵌套查询 绕过addslashes()函数转义

    关键代码

    function check_addslashes($string)
    {
        $string= addslashes($string);    
        return $string;
    }
    
    $id=check_addslashes($_GET['id']);
    mysql_query("SET NAMES gbk");
    $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    print_r(mysql_error());

    此处过滤使用函数addslashes()

    addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

    预定义字符是:

    • 单引号(')
    • 双引号(")
    • 反斜杠()

    提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。

    addslashes()函数和我们在32关实现的功能基本一致的,所以我们依旧可以利用%df进行绕过。

    Notice:使用addslashes(),我们需要将mysql_query设置为binary的方式,才能防御此漏洞。

    mysql_query("SET character_set_connection=gbk,character_set_result=gbk,character_set_client=binary",$conn);

    本关和上一关的payload是一样的,举例如下

    http://127.0.0.1/sql/Less-33/?id=-1%df' union select 1,database(),3--+

  • 相关阅读:
    静态连接库
    03数据的增删改查
    02MySQL中的数据类型
    01MySQL的 库、表初步认识
    Python 函数
    Linux系统目录结构
    Linux系统启动过程
    第三章 Web页面建设
    《第二章:深入了解超文本》
    《HTML与CSS 第一章 认识HTML》读书笔记
  • 原文地址:https://www.cnblogs.com/zhengna/p/12660767.html
Copyright © 2011-2022 走看看