首页 > 数据库 >SQLI LABS | Less-27 GET-Error Based-All Your UNION & SELECT Belong To Us-String-Single Quotes

SQLI LABS | Less-27 GET-Error Based-All Your UNION & SELECT Belong To Us-String-Single Quotes

时间:2024-11-04 08:51:59浏览次数:4  
标签:27 Based preg Belong replace Strip echo id out

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

0x01:过关流程

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

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

本关考察的是 SQL 注入的绕过姿势,至于发现注入点,相信强大如你已经很容易测出来了,所以这里笔者就不多废话了。

输入下面的测试 Payload,它会显示报错信息:

 ?id=1'

根据其泄露的源码信息,我们可以推测目标后端的 SQL 模板如下:

 select * from users where id='$_GET["id"]' LIMIT 0,1;

根据上面的模板,我们可以写一个基础的报错注入的 Payload 如下:

 1' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1

可以看到,目标主要是过滤了我们的空格,此时我们可以运用 BurpSuite 来尝试爆破出一个可以替代空格的字符:

如下,设置爆破的 Payload 为数值型十六进制。ASCII 码的范围是 0 ~127,我们也只要爆破这么多即可,Payload 设置如下:

爆破完成后,按返回包的长度降序排一下就可以发现可用的值啦:

以下是笔者测试出来的一个可用的 Payload(记替代是不可能记的,记思路即可):

 1%27%20and%0cupdatexml(1,concat(0x7e,database(),0x7e),1)%20and%20%271

可以看到,我们已经成功获取了当前站点使用的后端数据库的信息。至此,SQLI LABS Less-27 GET-Error Based-All Your UNION & SELECT Belong To Us-String-Single Quotes 成功过关。

0x02:源码分析

下面是 SQLI LABS Less-27 GET-Error Based-All Your UNION & SELECT Belong To Us-String-Single Quotes 后端的部分源码,以及笔者做的笔记:

<?php
 //including the Mysql connect parameters.
 include("../sql-connections/sqli-connect.php");
 ​
 // take the variables 
 if(isset($_GET['id']))
 {
     // 获取 ID 传递过来的参数
     $id=$_GET['id'];
     //logging the connection parameters to a file for analysis.
     $fp=fopen('result.txt','a');
     fwrite($fp,'ID:'.$id."\n");
     fclose($fp);
 ​
     //fiddling with comments
     $id= blacklist($id); // 对传入的数据进行过滤
     //echo "<br>";
     //echo $id;
     //echo "<br>";
     $hint=$id;
 ​
 // connectivity 
     $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 size='5' color= '#99FF00'>";    
         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";}
 ​
 function blacklist($id)
 {   
     // 过滤了一些联合注入的函数,奈何我们用的报错注入,没得用
     $id= preg_replace('/[\/\*]/',"", $id);      //strip out /*
     $id= preg_replace('/[--]/',"", $id);        //Strip out --.
     $id= preg_replace('/[#]/',"", $id);         //Strip out #.
     $id= preg_replace('/[ +]/',"", $id);        //Strip out spaces.
     $id= preg_replace('/select/m',"", $id);     //Strip out spaces.
     $id= preg_replace('/[ +]/',"", $id);        //Strip out spaces.
     $id= preg_replace('/union/s',"", $id);      //Strip out union
     $id= preg_replace('/select/s',"", $id);     //Strip out select
     $id= preg_replace('/UNION/s',"", $id);      //Strip out UNION
     $id= preg_replace('/SELECT/s',"", $id);     //Strip out SELECT
     $id= preg_replace('/Union/s',"", $id);      //Strip out Union
     $id= preg_replace('/Select/s',"", $id);     //Strip out select
     return $id;
 }
 ?>

标签:27,Based,preg,Belong,replace,Strip,echo,id,out
From: https://blog.csdn.net/m0_73360524/article/details/143464377

相关文章

  • 2024-2025-1 20241327 《计算机基础与程序设计》 第六周学习总结
    作业信息|2024-2025-1-计算机基础与程序设计)||--|-|2024-2025-1计算机基础与程序设计第六周作业)||快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题|作业正文|https://www.cnblogs.com/shr060414/p/18440575|教......
  • ScriptBasedMapping: Script /etc/hadoop/conf/topology_script-py
    spark-sql初始化时异常spark-sql初始化的突然发现spark返回无法解决hostname的问题,网上检索也是说hosts配置不对,但是检查后确实没有因此猜测hosts问题不对也可能引发该问题,但是其他问题也能存在引发问题的情况,因为发现由于执行etc/hadoop/conf/topology_script-p......
  • 20222427 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1本周学习内容学会了有关恶意代码分析的技术的基础知识,包括静态分析与动态分析。尝试运用静态分析方法去实现一些目的行为。学习了有关于信息收集的有关知识,包括相应的定义、收集方式以及实现收集的技术。1.2实验内容恶意代码文件类型标识、脱壳与......
  • 三周精通FastAPI:27 使用使用SQLModel操作SQL (关系型) 数据库
    官网文档:https://fastapi.tiangolo.com/zh/tutorial/sql-databases/SQL(关系型)数据库¶FastAPI不需要你使用SQL(关系型)数据库。但是您可以使用任何您想要的关系型数据库。这里我们将看到一个使用SQLModel的示例。SQLModel是在SQLAlchemy和Pydantic的基础上构建的。它......
  • Chromium127编译指南 Linux篇 - 同步第三方库以及Hooks(六)
    引言在成功克隆Chromium源代码仓库并建立新分支之后,配置开发环境成为至关重要的下一步。这一过程涉及获取必要的第三方依赖库以及设置钩子(hooks),这些步骤对于确保后续的编译和开发工作能够顺利进行起着决定性作用。本指南旨在详细阐述这些配置步骤的执行方法,为开发者提供清晰......
  • Chromium127编译指南 Linux篇 - 编译前环境搭建(一)
    前言在当前的浏览器开发中,Chromium作为一个开源项目,已经赢得了广泛的关注和使用。它不仅构成了GoogleChrome的核心框架,同时也是诸如MicrosoftEdge、Opera和Brave等多款浏览器的基础。凭借其广泛的应用和出色的可定制性,许多开发者选择在Chromium的基础上进行再开发......
  • ROLL: Long-Term Robust LiDAR-based Localization With Temporary Mapping in Changi
    开源代码:GitHub-HaisenbergPeng/ROLL:Areal-time,robustLiDAR-inertiallocalizationsystemROLL:Long-TermRobustLiDAR-basedLocalizationWithTemporaryMappinginChangingEnvironmentsROLL:基于LiDAR的长期稳健定位,在不断变化的环境中提供临时测绘摘要:长......
  • 27 3D图形
    3d转2d,用3d投影的数学思想;直线角度,正交投影,投透视投射;一般是三角形,三点可以确定i个平面;从投影角度来绘制多面体结构;前后采取扫描线渲染阴暗,通过三角形界面法线方向与光源角度偏移度,平面着色纹理通过扫面线 ......