HTTP头注入

news2024/9/22 13:29:30

HTTP头注入

    • HTTP Header概述
      • HTTP报文类型
      • HTTP请求方法
      • HTTP Header内容
      • HTTP Header注入
      • HTTP Header注入实例
      • User-Agent注入
      • XFF注入

HTTP Header概述

HTTP报文类型

  • 请求报文:由客户端发送给服务器的消息,其组成包括请求行,请求头和请求体。
  • 响应报文:由服务器回复给客户端的消息,其组成包括状态行,响应头,和响应体。

HTTP请求方法

GET:请求指定的页面信息,并返回实体主体。
HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。
PUT:从客户端向服务器传送的数据取代指定的文档内容。
DELETE:请求服务器删除指定的页面。
CONNECT :HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。OPTIONS允许客户端查看服务器的性能。
TRACE:回显服务器收到的请求,主要用于测试或诊断。
PATCH:是对PUT方法的补充,用来对已知资源进行局部更新。

HTTP Header内容

  • User-Agent:使服务器能够识别客户端使用的浏览器和操作系统,浏览器版本等(很多数据量大的网站记录客户使用的操作系统和或者浏览器版本等存入数据库中)
  • Cookie:网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据。(通常都是加密过的)
  • Host:客户端指定自己想访问的Web服务器的域名/IP和端口号。
  • X-Forward-For:简称XFF头,代表客户端(HTTP请求端)的真实IP(通常一些网站的防注入功能会记录请求端的真实IP地址并且写入数据库或者是记录:某个文件[通过XFF头可以实现伪造IP])。
  • Client-IP:原理同XFF。
  • Referer:浏览器向Web服务器表名自己是从哪个页面链接过来的。

HTTP Header注入

后台开发人员有时为了验证可u护短的HTTP Header(好比常用的Cookie验证等)或者通过HTTP Header头信息,获取客户端的一些信息(比如User-Agent、accept字段等),会对客户端HTTP Header进行获取并且使用SQL语句进行处理,如果此时没有足够的安全考虑,就可能导致基于HTTP Header的漏洞注入。

HTTP Header注入的前提条件:

  1. 能够对请求头消息进行修改
  2. 修改的请求头信息能够带入数据库执行
  3. 数据库没有对输入的请求头做过滤
    常见的HTTP Header注入类型:
  4. Cookie注入:服务器对cookie字段进行获取,以验证客户端的身份。
  5. Referer注入:服务器记录referer字段用于统计网站的点击量。
  6. User-Agent注入:服务器记录访问者的浏览器操作系统版本。
  7. XFF注入:记录客户端的真实IP,然后写入数据库

HTTP Header注入实例

这里使用Less-18进行测试,首先查看一下Less-18的源码文件:
请添加图片描述
在这里插入图片描述
现在uagent和IP是没有做限制的,所以这两个字段存在注入点。

User-Agent注入

首先打开Less-18:
请添加图片描述
进入数据库查看uagent字段进行查看,发现刚才输入的部分,浏览器信息包括操作系统都被记录下来了。
请添加图片描述
接着打开BurpSuite进行信息拦截,然后将信息发送到Repeater进行重放测试:
在这里插入图片描述
现在可以猜测要输入的值有三个,并且有括号要进行闭合,简单模型可以是: 1’,1,1)然后后面加个#进行注释掉就可以,再进行测试:
在这里插入图片描述
说明这个输入方式没问题,接下来就可以进行爆库了,既然返回了错误语句,那就可以使用报错注入的方式进行注入,好比extractvalue(),updatexml()、floor()函数等:
在这里插入图片描述
使用extractvalue函数,将database()纳入其中,库名就直接爆出来了,其余的信息都可以用此方法。
在这里插入图片描述

XFF注入

XFF注入原理就是使用BurpSuite找到一个在XFF能够回显的文件,然后BurpSuite去修改XFF字段的信息,通过报错的内容进而判断其中内容,步骤同User-Agent类似。

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

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

相关文章

区块链安全正当时|《Hyperledger Fabric2.0架构安全报告》解读

2021年,《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》将区块链纳入数字产业,对其发展作出了重要部署。同年6月中央网信办和工信部联合印发了《关于加快推动区块链技术应用和产业发展的指导意见》,提出加快区块链…

Babel-好文

ES6的很多语法在浏览器甚至node环境中无法执行,babel就是一个广泛使用的转码器,可以将ES6代码转化成ES5代码定义一个文件夹,cmd进入到其中,运行npm install -g babel-cli安装,然后可以通过babel --version查看是否安装…

odoo15 登录界面的标题自定义

odoo15 登录界面的标题自定义 原代码中查询:<title>Odoo<title> <html> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Odoo</title><link rel="shortcut icon…

Jvm调优实战笔记

一、基础命令jps 查看所有java进程jinfo 进程号 查看该线程相关信息3、jstat 统计信息&#xff08;数据跟踪信息&#xff09;jstat -gc 进程号 查看该线程在内存中每一块占用的大小jstat -gc 进程号 时间&#xff08;毫秒&#xff09; 更新频率4、jstack 跟踪线程jstack 进程号…

Ethercat系列(10)用QT实现SOEM主站

首先将SOEM编译成静态Lib库可以参考前面的博文(83条消息) VS2017下编译SOEM(Simle Open EtherCAT Master)_soem vs_CoderIsArt的博客-CSDN博客make_libsoem_lib.bat "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" x86用QT创建…

【C++】多态虚表

多态——多种形态多态的分类&#xff1a;1.静态多态&#xff1a;函数重载和运算符重载&#xff08;复用函数名&#xff09;2.动态多态&#xff1a;派生类和虚函数实现运行时多态静态多态和动态多态的区别&#xff1a;静态多态的函数地址早绑定——编译阶段确定函数地址动态多态…

页面访问升级出错怎么解决

相信大家在访问网站的时候时常会遇到页面访问界面升级&#xff0c;暂时不可能进行访问操作&#xff0c;可能遇到这种情况很多小伙伴们都不知道怎么版&#xff0c;其实互联网网页在正常使用过程中是不会出现这种问题的。那么如果遇到页面访问界面升级怎么办?页面访问界面升级通…

TryHackMe-Binex

Binex 枚举计算机并获取交互式 shell。利用 SUID 位文件&#xff0c;使用 GNU 调试器利用缓冲区溢出并通过 PATH 操作获得根访问权限。 端口扫描 循例 nmap SMB枚举 题目给了提示&#xff1a;Hint 1: RID range 1000-1003 Hint 2: The longest username has the unsecure pa…

面试中问你查看日志的命令,可不能只说tail,cat,more

首选&#xff0c;如何查看日志&#xff1a; 很多初级测试人员&#xff0c;在进行执行测试用例这个步骤时&#xff0c;发现bug&#xff0c;不能更加的准确去定位bug&#xff0c;在这样的情况下就可以打开Linux服务器&#xff0c;敲命令查看操作进行中的实时日志&#xff0c;当系…

用arthas轻松排查线上问题

你是否在项目中会碰到以下一些问题&#xff1a; 在代码中打印各种日志来排查&#xff0c;比如方法的入参&#xff0c;出参&#xff0c;及在方法体中打印日志判断走哪行代码还有你觉得代码没问题&#xff0c;可是运行出现却是以前的bug&#xff0c;感觉代码没修改&#xff0c;或…

120.(leaflet篇)区域下钻,区域钻取

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【RocksDB】Ubuntu20.04下编译rocksdb

前言&#xff1a; 我在刚学rocksdb的时候是在2022年&#xff0c;但是网上的资源很少&#xff0c;查了好久才把rocksdb安装成功&#xff0c;在这里向大家分享一下我的经历&#xff0c;安装过程中也报了很多错误&#xff0c;希望大家不要迷路 首先 在虚拟机里面安装依赖的包以…

python List和常用的方法

List&#xff1a;列表中包含多个数据&#xff0c;数据之间使用逗号分隔&#xff0c;索引从0开始。 空列表&#xff1a; dir&#xff1a;查看列表的所有方法 List常用方法&#xff1a;insert、append&#xff0c;extend、del、remove、pop、clear、count、index 增加insert(索引…

健身房戴耳机的人都喜欢戴哪款耳机健身、最好用健身耳机推荐

对于喜欢健身和运动人群来说&#xff0c;耳机可谓是重中之重了&#xff0c;带上耳机 听着喜欢的音乐&#xff0c;沉浸在自己的世界中&#xff0c;训练状态直接拉满…但是能适合运动佩戴的耳机真的不多&#xff0c;这类耳机要同时具备舒适度、防水性、稳固性、高续航等等性能&am…

coreldraw2023安装包下载及新功能介绍

对于广告标识业来说 coreldraw这个软件&#xff0c;对我们来说绝对不陌生&#xff0c;我从2008年开始接触到广告制作&#xff0c;到现在已经13多年了&#xff0c;从一开始的coreldraw 9红色的热气球开始。就被这个强大的软件所吸引&#xff0c;他有强大的排榜功能已经对位图的处…

zigbee 抓包软件Ubiqua使用详解

zigbee抓包软件使用&#xff08;Ubiqua Protocol Analyzer&#xff09; 添加Zigbee sniffer Dongle设备 add Device>vendor选择Texas Instruments>选择Texas Instruments CC2531>add Device 设置信道 右键设置需要抓包的信道 设置秘钥 单击主菜单Tools>Opt…

arm64虚拟化学习笔记

各种虚拟化对比 虚拟化种类优缺点实现硬件加速虚拟化性能最好&#xff0c;最贵1.vcpu 2.内存stage2 3.虚拟中断 4.arch time全虚拟化纯软件实现&#xff0c;性能差1.qemu串口 2.qemu磁盘半虚拟化软件实现复杂1.Virtio block 设备 2.Virtio net 设备io虚拟化加速移植性差1.PCI设…

java是编译型语言还是解释型语言?

基本概念 什么是编译型语言&#xff1f;编译型语言的首先将源代码编译生成机器语言&#xff0c;再由机器运行机器码&#xff08;二进制&#xff09;&#xff0c;比如C和C. 编译型语言&#xff1a;程序在执行之前需要一个专门的编译过程&#xff0c;把程序编译成 为机器语言的文…

mysql一explain结果分析

1. EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 ➤ 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取操作的操作类型哪些索引可…

【LeetCode】背包问题总结

文章目录一、背包能否装满&#xff1f;416. 分割等和子集1049. 最后一块石头的重量 II二、装满背包有几种方法&#xff1f;494. 目标和518.零钱兑换II377. 组合总和 Ⅳ70. 爬楼梯三、背包装满的最大价值474.一和零四、装满背包最小物品数322. 零钱兑换279.完全平方数一、背包能…