简单了解SQL宽字节注入与httpXFF头注入(基于sqllabs演示)

1、宽字节注入

sqllabs-less-32为例

使用单引号进行测试

提示我们输入的单引号被转义符 \ 进行了转义,即转义符自动的出现在输入的特殊字符前面,这是防止sql注入的一种方法,导致无法产生报错。

这种情况我们就可以尝试宽字节注入,后面加上 %df'

由于输入的特殊字符会自动被添加转义符 \ ,其中 \ 的十六进制是%5c,mysql的GBK编码会认为%df%5c是一个宽字节,也就是'運',从而使单引号闭合(逃逸),进行注入攻击。

payload:

?id=1%df'

出现了报错和乱码

接下来我们就可以在上述payload的基础上进行注入

判断字段数

?id=1%df' order by 3 --+

?id=1%df' order by 4 --+

说明只有三列

进行相关查询即可

(注意要使用-1使前面查询不成立,如果你还是用一个存在的id那么回显就是对应id用户的内容)

?id=-1%df' union select 1,database(),user() --+

2、httpXFF头注入

HTTP XFF头注入(X-Forwarded-For Injection),攻击者在HTTP请求中伪造XFF头,将恶意代码注入到HTTP请求头中,从而执行SQL注入攻击。

XFF属于header的一种

HTTP Header注入的前提条件:

  1. 能够对请求头消息进行修改

  2. 修改的请求头信息能够带入数据库执行

  3. 数据库没有对输入的请求头做过

常见的HTTP Header注入类型:

  1. Cookie注入:服务器对cookie字段进行获取,以验证客户端的身份。

  2. Referer注入:服务器记录referer字段用于统计网站的点击量。

  3. User-Agent注入:服务器记录访问者的浏览器操作系统版本。

  4. XFF注入:记录客户端的真实IP,然后写入数据库

这里以sqllabs-less-18为例

由于我之前修改了admin的密码,为12345

我们使用admin这个账户进行登录

登陆成功后回显了User Agent 的相关信息

我们使用burpsuite进行抓包拦截

对其 User Agent 进行修改

使用单引号尝试闭合,出现SQL语句报错,因此确实存在注入

并且观察报错内容,这里我们除了闭合单引号,还有一个括号也需要闭合

User-Agent: 1')#

没有出现sql语句报错说明闭合成功 

但是报错列数不匹配

经过尝试得到有三列,这里的难点还是要闭合括号,并使用#注释掉后面的内容

User-Agent: 1',2,3)#

因为这里并没有看到关于我们输入的1,2,3的回显位置,因此采用报错注入。

这里演示使用extractvalue函数爆数据库名

User-Agent: 1',extractvalue(1,concat(0x7e,(select database()))),3)#

关于爆其他内容可以参考我之前的博客关于SQL报错注入的相关内容。

至此,关于SQL注入的内容全部结束,后续我们将进入其他Web漏洞的学习。

期待大家的关注与支持!

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

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

相关文章

【洛谷】高考组题

高考组题 题目链接 题意 告诉 Aya 哪个题目是必须要放进高考试卷的 思路 需要用结构体来对题目的编号和指标和关系进行了解,在主函数中用sort排序来对题目的指标和来进行排序 ,最后输出题目的编号即可,要用换行符号 实现步骤 定义所需值输入…

抓取数据技巧全解析

1.什么是爬虫 爬虫(Spider),也叫网络蜘蛛(Web Spider),是一种模拟人类浏览器行为,自动访问互联网并提取数据的程序。简单来说,就是通过编写程序去自动化地访问网站,并从…

js 判断值 对象 是否存在 包含 的各种方式

1.判断两个值是否相等 let v1,x2,s1; object.is(v,x) //false object.is(v,s) //true 2.判断对象中是否包含某个键 let tt{xx:123,cc:3}; tt.xxd; tt.hasOwnProperty(xx); //true tt.hasOwnProperty(xxd);//true tt.hasOwnProperty(hasOwnProperty); //判断是否有继承…

Android NDK打包armeabi平台架包

NDK打包armeabi 1.降低NDK版本和Cmake版本 sdk.dirE\:\\Android\\sdk //指定ndk版本,不指定默认使用最新的NDK ndk.dirE\:\\Android\\sdk\\ndk\\16.1.4479499修改builde.gradle(app) android{defaultConfig{...//配置 AS 工程的 C/C 源文件编译参数externalNativ…

网络通讯基础(9):connect ()函数

connect ()函数 1.什么是connect 函数&#xff1f;作用是什么&#xff1f; connect 是一个常用于网络编程的函数&#xff0c;它通常用于建立客户端和服务器之间的连接。要想使用connect 函数&#xff0c;需要包含如下头文件&#xff1a; #include <sys/types. h> #inc…

市场复盘总结 20231229

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: -- 今日 SELECT * FROM (SELECT TOP 100 CODE,20231229 入选日期,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIM…

工厂方法?按图索骥!

前言 还记得在第3节的简单工厂模式&#xff0c;我们实现了一个简易计算器。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断&#xff0c;根据客户端的选择条件动态实例化相关类&#xff0c;去除了与具体运算类的依赖。 但其问题也就在这里&#xff0c;如果要加一个‘…

SparkCore

一、RDD详解 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。 Dataset:一个数据集合,用于存放数据的。Distributed:RDD中的数据是分布式存储的,可用于分布式…

vue连接本地服务器

vue 连接本地服务器做后端。 后端服务 使用springboot新建一个基于restful的接口&#xff0c;访问如下的地址&#xff0c;返回值。 vue构建 新建一个vue项目&#xff0c;安装访问服务器的插件。 npm install axios vue-axios --save 修改main.js使用axios&#xff0c;最终…

Mybatis插件入门

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

Ubuntu - VMware Workstation 常用快捷键

Ctrl Alt T&#xff1a;打开终端窗口。 Ctrl Shift W &#xff1a;关闭终端窗口。 Ctrl L&#xff1a; 清屏终端窗口 Ctrl Alt L&#xff1a;锁定屏幕。 Alt Tab&#xff1a;切换应用程序。 Alt F2&#xff1a;打开运行命令对话框。 Ctrl Alt Arrow&#xff0…

GPT4All : 便捷易用的本地智能问答推理软件(乱记)

安装与使用 去官网 https://gpt4all.io/index.html下载可执行文件。 打开应用即可看到是否共享数据的选项&#xff1a; 然后自动进入模型下载界面 测试 内存占用 缺点&#xff1a;在我本地的轻薄本上运行时&#xff0c;风扇会有轻微噪声&#xff0c;关闭软件很久都没停止。…

校准算法的处理

校准算法是用于校准设备或系统的方法和计算。这涉及到消除误差和校准输出以实现准确性和可靠性的技术。具体的方法如下&#xff1a; 确定校准目标&#xff1a;首先&#xff0c;确定您希望校准的具体参数或指标&#xff0c;例如温度、压力、电流、电压等。收集数据&#xff1a;…

《深入理解JAVA虚拟机笔记》运行时栈帧、方法分派、动态类型

运行时栈帧结构 Java 虚拟机以方法作为最基本的执行单元&#xff0c;“栈帧”&#xff08;Stack Frame&#xff09;则是用于支持虚拟机进行方法调用和方法执行背后的数据结构&#xff0c;它也是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈…

【教学类-43-04】20231229 N宫格数独4.0(n=2,4,6,8) (ChatGPT AI对话大师生成 回溯算法)

作品展示&#xff1a; 背景需求&#xff1a; 幼儿表示自己适合做5宫格 第一次AI生成九宫格数独python代码 【教学类-43-03】20231229 N宫格数独3.0&#xff08;n1、2、3、4、6、8、9&#xff09; &#xff08;ChatGPT AI对话大师生成&#xff09;-CSDN博客文章浏览阅读162次&…

代码随想Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 这道题目的重点在于动态数组的定义 dp[i]&#xff1a;以nums[i]为结尾的最长递增子序列&#xff0c;因为这样定义可以进行递推&#xff1b; 递推&#xff1a;j从0-i进行对比&#xff0c;如果nums[i]大于nums[j]&#xff0c;dp[i]dp[j]1&#xff1b; 初始化…

CSS3学习之01

box-sizing: border-box&#xff1a;width是整体的大小 content-box&#xff1a;width是内容区大小 flex box弹性布局 弹性布局子元素通常在同一行内显示。 flex-direction&#xff1a;布局内子元素的排列方式 row&#xff1a;默认从左到右 row-reverse&#xff1a;从右到…

用例状态

章节目录&#xff1a; 一、用例状态类型二、passed三、failed四、error五、xfail六、结束语 一、用例状态类型 用例执行完成后&#xff0c;每条用例都有自己的状态&#xff0c;常见的状态有&#xff1a; passed&#xff1a;测试通过。failed&#xff1a;断言失败。error&#x…

【二叉树】【DFS】104.二叉树的最大深度

题目 法1&#xff1a;DFS class Solution {public int maxDepth(TreeNode root) {if (root null) {return 0;} else if (root.left null && root.right null) {return 1;} else {return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;}} }

深入理解Dockerfile —— 筑梦之路

FROM 基础镜像 可以选择现有的镜像&#xff0c;比如centos、debian、apline等&#xff0c;特殊镜像scratch&#xff0c;它是一个空镜像。 如果你以 scratch 为基础镜像的话&#xff0c;意味着你不以任何镜像为基础&#xff0c;接下来所写的指令将作为镜像第一层开始存在。 不…