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

SQLI LABS | Less-47 GET-Error Based-String-ORDER BY CLAUSE

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

0x01:过关流程

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

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

先说好本关考的不是堆叠哈,后端代码不支持一次性执行多条 SQL 语句。

靶场提示,让我们输入数字型的 SORT

SORT 即排序,对应的应该是 SQL 语句中的 ORDER BY。我们的目标很简单,尝试获取后端数据库信息,传入 Payload ?sort=1',目标能返回报错信息:

根据错误提示泄露的信息,我们可以推测其后端的模板如下:

 select * from users order by '$_GET["sort"]';

所以,攻击 Payload 如下:

 -- 尝试获取目标后端数据库信息1' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1

如上,我们已经能够获取目标后端数据库信息了。至此,SQLI LABS Less-47 GET-Error Based-String-ORDER BY CLAUSE 成功过关。

0x02:源码分析

下面是 SQLI LABS SQLI LABS Less-47 GET-Error Based-String-ORDER BY CLAUSE 后端的部分源码,以及笔者做的笔记:

 <?phpinclude("../sql-connections/sqli-connect.php");$id = $_GET['sort'];if (isset($id)) {//logging the connection parameters to a file for analysis.$fp = fopen('result.txt', 'a');fwrite($fp, 'SORT:' . $id . "\n");fclose($fp);​// 与上一关的差别就在这里,其余的不变$sql = "SELECT * FROM users ORDER BY '$id'";// mysqli_query 不支持一次性执行多条语句$result = mysqli_query($con1, $sql);if ($result) {?><center><font color="#00FF00" size="4">​<table border=1'><tr><th>&nbsp;ID&nbsp;</th><th>&nbsp;USERNAME&nbsp; </th><th>&nbsp;PASSWORD&nbsp; </th></tr></font></font><?phpwhile ($row = mysqli_fetch_assoc($result)) {echo '<font color= "#00FF11" size="3">';echo "<tr>";echo "<td>" . $row['id'] . "</td>";echo "<td>" . $row['username'] . "</td>";echo "<td>" . $row['password'] . "</td>";echo "</tr>";echo "</font>";}echo "</table>";} else {echo '<font color= "#FFFF00">';print_r(mysqli_error($con1));echo "</font>";}} else {echo "Please input parameter as SORT with numeric value<br><br><br><br>";echo "<br><br><br>";echo '<img src="../images/Less-47.jpg" /><br>';echo "Lesson Concept and code by <b>D4rk</b>";}?>

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

相关文章:

  • Scala入门基础(17.1)Set集习题
  • 前端CSS3 渐变详解
  • <项目代码>YOLOv8 草莓成熟识别<目标检测>
  • golang使用etcd版本问题
  • Spring IOC 和Spring Aop
  • Flink_DataStreamAPI_输出算子Sink
  • 2024下半年软考架构师真题 回忆整理
  • 2024华为java面经
  • 2.5 以太网拓扑结构演变
  • SQL 连接(JOIN)的深入解析
  • 姓名改成商标名称,李子柒已成身份证名字!
  • 硬件工程师之电子元器件—二极管(5)之肖特基二极管
  • 英语中常用的短语搭配及规律
  • javassmmsyql医院管理的设计与实现87641-计算机毕业设计项目选题推荐(附源码)
  • Java面试要点19 - Java中设计抽象类的原则
  • 【C++动态规划 最长公共子序列】1035. 不相交的线|1805
  • python 编程 在 Matplotlib 中 默认预定的所有颜色,可以使用多种方法来指定颜色,包括预定义的颜色名称、十六进制颜色代码、
  • 自定义Element Plus主题
  • 2.什么是项目集管理
  • `node-gyp` 无法找到版本为 `10.0.19041.0` 的 Windows SDK
  • MudBlazor:基于Material Design风格开源且强大的Blazor组件库
  • SQL LEFT JOIN 简介
  • 掌握.Net桌面开发的精髓之一:句柄,一种特殊的数据类型
  • ArkUI---使用弹窗---@ohos.promptAction (弹窗)
  • 探索黑窗口的魅力:CMD命令实战技巧
  • 前端快速上手(一):HTML