当前位置: 首页 > news >正文

SQLI LABS | Less-32 GET-Bypass Custom Filter Adding Slashes To Dangerous Chars

关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客

0x01:过关流程

输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来):

 http://localhost/sqli-labs/Less-32/

本关考察的是宽字节注入,可以发现,当我们输入的内容中包含 ' 或者 " 时,它实际接收的内容会在 '" 前加一个 \ ,表示对其进行转义,让我们无法逃逸出 '、" 的包裹 :

绕过方式很简单,在 ' 前传递一个 ASCII 字符大于 128 的值即可,比如 %df

依据上面的原理,我们可以使用如下 Payload 进行报错注入:

 -- 获取目标后端当前正在使用的数据库的信息1%df' and updatexml(1,concat(0x7e,database(),0x7e),1)--+

可以看到,我们已经成功获取了当前站点使用的后端数据库的信息。至此,SQLI LABS Less-32 GET-Bypass Custom Filter Adding Slashes To Dangerous Chars 成功过关。

0x02:源码分析

下面是 SQLI LABS Less-32 GET-Bypass Custom Filter Adding Slashes To Dangerous Chars 后端的部分源码,以及笔者做的笔记:

<?php//including the Mysql connect parameters.include("../sql-connections/sqli-connect.php");​function check_addslashes($string){// 对 $string 中的 ' " 前添加 \,进行转义$string = preg_replace('/' . preg_quote('\\') . '/', "\\\\\\", $string);          //escape any backslash$string = preg_replace('/\'/i', '\\\'', $string);                               //escape single quote with a backslash$string = preg_replace('/\"/', "\\\"", $string);                                //escape double quote with a backslashreturn $string;}​// take the variables if (isset($_GET['id'])) {// 处理输入的内容$id = check_addslashes($_GET['id']);//echo "The filtered request is :" .$id . "<br>";​//logging the connection parameters to a file for analysis.$fp = fopen('result.txt', 'a');fwrite($fp, 'ID:' . $id . "\n");fclose($fp);​// connectivity // 设置 MySQL 数据库连接的字符集为 GBK,它人真好,特意写个漏洞mysqli_query($con1, "SET NAMES gbk");$sql = "SELECT * FROM users WHERE id='$id' LIMIT 0,1";$result = mysqli_query($con1, $sql);$row = mysqli_fetch_array($result, MYSQLI_BOTH);​if ($row) {echo '<font color= "#00FF00">';echo 'Your Login name:' . $row['username'];echo "<br>";echo 'Your Password:' . $row['password'];echo "</font>";} else {// 当未查询出结果时,显示错误信息echo '<font color= "#FFFF00">';print_r(mysqli_error($con1));echo "</font>";}} else {echo "Please input the ID as parameter with numeric value";}?>

http://www.mrgr.cn/news/68173.html

相关文章:

  • 两个方法分析python打包exe(pyinstaller和auto-py-to-exe )
  • 基于Python的旅游景点推荐系统
  • WordPress中最佳Instagram插件:专家级指南
  • Python实例:爱心代码
  • HTML学习笔记十三
  • CSS综合练习——懒羊羊网页设计
  • B+树与聚簇索引以及非聚簇索引的关系
  • C++ | Leetcode C++题解之第546题移除盒子
  • Docker部署Redis主从复制
  • 看了《逆行人生》,我想到的是程序员的出路不只有外卖员,转型自媒体博主:或许是技术与内容的双向奔赴
  • Golang | Leetcode Golang题解之第546题移除盒子
  • 【划分型 DP】力扣139. 单词拆分
  • C++类的多重继承演示
  • 一文透彻了解电容
  • 机器学习(五)——支持向量机SVM(支持向量、间隔、正则化参数C、误差容忍度ε、核函数、软间隔、SVR、回归分类源码)
  • 解决中文乱码问题:常见原因与解决方案
  • 【我的世界】宠物不认我了?怎么更换主人?(Java版)
  • STM32外设应用研究
  • 【系统集成项目管理工程师教程】第14章 收尾过程组
  • 【系统集成项目管理工程师教程】第13章 监控过程组
  • 电路原理:电阻桥。
  • 深入掌握高级SQL技巧
  • leetcode hot100【LeetCode 78. 子集】java实现
  • 二分查找习题篇(上)
  • Nextjs14记录
  • 认识软件测试