当前位置: 首页 > 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.lryc.cn/news/479208.html

相关文章:

  • 界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置
  • flink 内存配置(一):设置Flink进程内存
  • 贪心算法习题其三【力扣】【算法学习day.20】
  • 速盾:高防cdn针对网站的好处有哪些?
  • 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?
  • 京准同步:GPS北斗卫星授时服务器发展趋势介绍
  • 鸿蒙多线程开发——并发模型对比(Actor与内存共享)
  • 【计算机网络】章节 知识点总结
  • 开箱即用!265种windows渗透工具合集--灵兔宝盒
  • 怎么在哔哩哔哩保存完整视频
  • CPU算法分析LiteAIServer视频智能分析平台视频智能分析:抖动、过亮与过暗检测技术
  • fastGPT调用stable diffusion生成图片,本地模型使用ollama
  • 【jmeter】jmeter的线程组功能的详细介绍
  • 高边坡安全监测系统的工作原理和应用领域
  • Java:多态的调用
  • A day a tweet(seventeen)——Visualize Convolution Neural Network!
  • 卡达掐发展史
  • UI界面设计入门:打造卓越用户体验
  • 【Linux:tcp三次握手和四次挥手】
  • 大数据Informatica面试题及参考答案
  • Gradient Boosting Regressor(GBDT)--- 论文实战
  • Python教程:python枚举类定义和使用
  • Java学习Day60:微服务总结!(有经处无火,无火处无经)
  • MySQL日期类型选择建议
  • 70B的模型做微调,使用A10*8的卡能够使用
  • 将vscode的终端改为cygwin terminal
  • 《ASP.Net Core技术内幕与项目实战》读书笔记_1
  • 【青牛科技】应用方案|D2587A高压大电流DC-DC
  • 【测试】【Debug】pytest运行后print没有输出
  • linux strace 查看程序异常问题总结