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

SQLI LABS | Less-33 GET-Bypass AddSlashes()

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

0x01:过关流程

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

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

"AddSlashes" 添加斜杠,斜杠即转义字符。不用猜,也知道是对我们的输入的 ' " 进行转义,防止我们 ByPass,绕过方法在 Less-32 中笔者已经讲过了,所以这里就不讲啦。

本关应该是使用宽字节注入的方式进行绕过,直接上时间盲注字典,看看有没有匹配的 Payload:

如下,是一个使用时间盲注成功爆出来的可用模板:

 1%df'%20%26%26%20sleep(3)%23--%20%2f%2a

在测试中,我们还发现了,目标还会显示数据库错误信息。所以,我们可以修改上面的模板,使用报错注入来更快速的获取我们想要的信息,如下,是一个可用的 Payload:

 -- 猜测目标后端当前正在使用的数据库信息1%df'%20%26%26%20updatexml(1,concat(0x7e,database(),0x7e),1)%23--%20%2f%2a

可以看到,我们已经成功获取了当前站点使用的后端数据库的信息。至此,SQLI LABS Less-33 GET-Bypass AddSlashes() 成功过关。

0x02:源码分析

下面是 SQLI LABS SQLI LABS Less-33 GET-Bypass AddSlashes() 后端的部分源码,以及笔者做的笔记:

<?php//including the Mysql connect parameters.include("../sql-connections/sqli-connect.php");​function check_addslashes($string){// addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。// 预定义字符是:// 单引号(')// 双引号(")// 反斜杠(\)// NULL// ep: 1' => 1\'$string = addslashes($string);return $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/68186.html

相关文章:

  • R包下载太慢安装中止的解决策略-R语言003
  • 【vue2.0入门】认识vue工程
  • python数据结构基础(6)
  • 手机屏幕上进行OCR识别方案
  • uniapp 开发公众号 h5 页面 错误 “redirect_uri 参数错误“
  • 设计模式小结一工厂模式
  • RCE漏洞分析
  • OSS和FastDFS的区别
  • 【如何在 Linux 和 Android 系统中杀死进程】
  • 火语言RPA流程组件介绍--获取窗口对象
  • C# 与 C++ 跨进程通信:使用 RabbitMQ 实现消息队列通信
  • Golang | Leetcode Golang题解之第547题身份数量
  • API网关之Gravitee
  • 基于ViT的无监督工业异常检测模型汇总
  • 如何在 Linux 系统中通过进程名杀掉蓝牙进程
  • Meta AI最新推出的长视频语言理解多模态模型LongVU分享
  • Verilog可综合语法
  • C语言 | Leetcode C语言题解之第546题移除盒子
  • SQLI LABS | Less-32 GET-Bypass Custom Filter Adding Slashes To Dangerous Chars
  • B+树与聚簇索引以及非聚簇索引的关系
  • C++ | Leetcode C++题解之第546题移除盒子
  • Docker部署Redis主从复制
  • 看了《逆行人生》,我想到的是程序员的出路不只有外卖员,转型自媒体博主:或许是技术与内容的双向奔赴
  • Golang | Leetcode Golang题解之第546题移除盒子
  • 【划分型 DP】力扣139. 单词拆分
  • C++类的多重继承演示