挖掘HTTP请求走私漏洞

news2024/11/26 0:38:21

利用Burp插件挖掘HTTP请求走私

HTTP请求走私通常遗留在漏洞发现赏金项目中。但通过正确的插件,您
可以在下一个赏金项目中自动化地完成挖掘HTTP请求走私漏洞的过程。
在这里插入图片描述
了解HTTP请求走私
现代网站经常部署多个代理服务器用于转发用户请求到托管Web应用程序的真实服务器。这些带有真实后端的前端服务器或代理服务器是云应用中最常见的架构。

前端服务器用于获取多个用户的请求并转发给后端服务器。这两个前后端服务器必须在两个不同用户的请求边界上达成一致。有时候,两者服务器不能在边界上达成一致,攻击者便能够通过利用处理不一致来修改HTTP请求,造成HTTP请求走私。

当前后端服务器对用户请求边界不一致时,就会出现HTTP请求走私。

边界(即)HTTP请求的结尾由"Content-Length"或"Transfer-Encoding" HTTP标头定义。有些服务器不支持"Transfer-Encoding",有些服务器将"Content-Length"标头作为默认请求结尾的定义(如果两者都出现在请求中)。如果前后端服务器配置不当,它们会取不同的边界值,从而导致请求走私漏洞。

HTTP/1.1 200 OK 
Content-Type: text/plain 
Transfer-Encoding: chunked 
Content-Length: 4
存在两个标头的请求示例

攻击者可以在HTTP请求中包含两个不同边界的值的两个标头。如果前端服务器接收"Transfer-Encoding" 而后端服务器接收"Content-Length"标头,因为每个头中的边界值不一致,会导致请求过程受到污染。反之亦然,前端服务器接收"Content-Length",后端服务器接收"Transfer-Encoding"。前者称为TE.CL,后者称为CL.TE 请求走私漏洞。

前端和后端服务器的这种模棱两可的处理机制会导致HTTP请求走私,用于获取的未授权数据、接管应用程序等。

手工查找HTTP请求走私
在使用burp插件自动发现请求走私漏洞之前,让我们看看该如何手动检测它。这样您可以对这个漏洞了解地更深入。
您只需要同时发送经过修改的带有"Content-Length"和"Transfer-Encoding"头部HTTP请求。如果时间延迟了,服务器比正常情况花更多时间来处理这个污染的请求,那么意味着您发现了一个HTTP请求走私漏洞。

示例请求:
在这里插入图片描述

如果前端服务器只接受"Transfer-Encoding"头部,那么它会省略’0’之后的所有内容,将上面没有"Y "的内容发送给后端服务器。

如果后端服务器只使用Content-Length头部,那么他会认为请求的长度只有4。但由于前端服务器遗漏了一些数据,实际请求的长度小于4。因此后端服务器会等待一段时间来接收剩余的数据。这会造成时间延迟,从而检测到请求走私漏洞。
在这里插入图片描述
您可以编辑相同的请求在使用"Content-Length"的前端服务器和使用"Transger-Encoding"标头的后端服务器来查找漏洞。

利用Burp Suite扩展查找HTTP请求走私漏洞
HTTP Request Smuggler

HTTP Request Smuggler 是一个 burp 扩展,可帮助您自动完成上述手动任务来寻找此漏洞。手动查找漏洞是可以做到的,但非常繁琐,因此您可以利用burp中的现有扩展来实现这个过程。

安装扩展程序后,您可以立即开始使用它。右键单击Burp Proxy截获的请求,然后点击HTTP Request Smuggler->Smuggle Probe。然后它会自动修改拦截的请求并发送它以查找漏洞。它会发送许多修改的请求来检查此漏洞的两种类型-CL.TE & TE.CL。如果有任何与此相关的发现,您将可以在scan issues activity页面中找到它们。
在这里插入图片描述
默认Burp Suite主动扫描

实际上,如果您使用Burp Suite主动地去扫描一个目标,也可以检测HTTP 请求走私漏洞。您可以在Burp Suite的Active Scan配置中看到这一点。完成主动扫描后,Burp Suite还会在问题活动页面上报告发现的结果。如果您遇到此问题,请不要忽略它。处理它并通过HTTP Request Smuggeler扩展来确认此漏洞。
在这里插入图片描述

总结
HTTP请求走私是一个经常被忽视的严重漏洞。我实际上在一个真实系统,通过使用主动扫描和Request Smuggler扩展发现过此漏洞。希望这篇文章能让您了解到这个漏洞以及该如何检测它。如果您想要了解更多关于此漏洞的信息,您可以查看Port Swigger ,其中有关于它的详细说明。

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

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

相关文章

linux free命令

free是指查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。 选项: -b:以字节为单位显示。 -k:以K字节为单位显示。 -m:以兆字节为单位显示。 参…

JavaScript 库之 dyCalendarJS(日历)

JS 库之 dyCalendarJS(日历))参考获取使用导入CSSJS使用HTMLJavaScript代码总汇样式容器圆边颜色渐变阴影日历dycalendar.draw()举个栗子默认样式daymonth其他参考 项目描述DYClassRoom前往GitHub前往 获取 GitHub dyCalendarJSFrom jsDeli…

拼一个自己的操作系统(SnailOS 0.03的实现)

像文本模式一样显示字符串在拼操作系统的征程中,仅仅是画上一些简单的图形,显然是不够的。原因就在于,如果开发的过程中,出现了“臭虫”,而系统并不能显示任何有价值的信息,那我们岂不是两眼一抹黑&#xf…

【电子学会】2022年12月图形化四级 -- 简易抗疫物资管理系统

简易抗疫物资管理系统 1. 准备工作 (1)角色:从角色库中添加4个按钮,添加文字“增加”、“删除”、“修改”、“查询”,修改角色名字为“增加按钮”、“删除按钮”、“修改按钮”、“查询按钮”; (2)列表:新建列表“抗疫物资清单”。 2. 功能实现 (1)点击“增加按…

第三章 Linux中的shell与权限

第三章 Linux中的shell与权限一、linux的内核(kernel)与外壳(shell)1、内核与外壳的关系2、外壳的作用二、权限1、用户中的权限(1)超级用户:root(2)普通用户a.普通用户的…

超实用的微信公众号内容运营方案分享

公众号运营的本质就是图文生产,内容绝对是涨粉引流的关键。没有产出好的内容,这个公众号是绝对走不长远的。 公众号内容运营大致上可以分为两个大方向,一个是搭建完整的公众号内容体系,一个是创作具体的公众号推文内容&#xff0…

Sklearn标准化和归一化方法汇总(2):Min-Max归一化

Sklearn中与特征缩放有关的五个函数和类,全部位于sklearn.preprocessing包内。作为一个系列文章,我们将逐一讲解Sklearn中提供的标准化和归一化方法,以下是本系列已发布的文章列表: Sklearn标准化和归一化方法汇总(1)&#xff1a…

【现代机器人学】学习笔记十:机器人控制

这节的内容主要讲述在关节空间和任务空间中的运动控制中的反馈控制,力控制,运动-力混合控制以及阻抗控制、导纳控制,pid控制等内容。在之前的内容当中,往往不涉及到实际对机器人的操纵,即我们计算出一个结果&#xff0…

【5】KubeSphere部署应用 | MySQL

目录 1、部署的架构 2、KubeSphere几个主要的模块 3、部署MySQL 【1】先创建MySQL的配置文件 【2】创建存储卷 【3】部署有状态服务 【4】查看创建的服务 【5】创建一个服务可以在集群外可以访问 1、部署的架构 2、KubeSphere几个主要的模块 KubeSphere的工作负载相当于k8s里…

算法之常见字符串题目

leedcode344. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s […

进程学习笔记

进程 定义 一个程序程序在一个数据集合上的动态执行过程 与程序区别 动静,暂时的过程和永久的存在,进程由程序、数据、进程控制块(PCB)组成 特性 动态并发(进程)独立(分页有力支持&#x…

Linux:C/C++文件操作

回忆C语言文件操作 fopen()的使用:   答:打开文件流指针。 param2 “w”,当前没有文件就先创建,再写入。 “r”,只读。 “b”,可与w、b组合。 只写的例子: 只读的例子: 依靠fg…

《Linux性能优化实战》学习笔记 Day01

学习目标 系统优化的旅程上,对操作系统相关的优化是绕不开的,主动出击,将零星的知识体系化。今后遇到问题,能够加入自己的体系树中,即使专栏中没有提到,自己也能够想办法深入。 希望在这次课程后&#xf…

黑马Redis | 基础篇

目录 一、SQL和NoSQL的区别 结构化与非结构化 关联和非关联 查询方式 事务 总结 二、Redis数据类型和命令 1、通用命令 2、数据类型 3、String类型 String的常见命令 Key结构 4、Hash类型 常见命令 5、List类型 6、Set类型 Set的常见命令 7、SortedSet类型 …

科研快报|PacBio全长扩增子测序破解蚊子肠道微生态与耐药性差异

论文题目:Differences in the intestinal microbiota between insecticide-resistant and -sensitive Aedes albopictus based on full-length 16S rRNA sequencing.期刊:Microbiologyopen影响因子:3.139发表时间:2021年1月研究背…

一个非常好用的中奖概率控制器

本文首发于微信公众号: 小蚂蚁教你做游戏。欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。今天分享一个非常好用的概率控制器,可以用于游戏中两种行为出现的概率控制。这个…

PHP MySQL 插入数据

使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号在 SQL 查询语句中的字符串值必须加引号数值的值不需要引号NULL 值不需要引号 INSERT INTO 语句通常用于…

《Linux Shell脚本攻略》学习笔记-第十三章

13.1 简介 现代Linux应用可以部署在专门的硬件、容器、虚拟机或是云端。 容器的缺点在于它以来于主机的系统内核。 虚拟机的防在于要占用大量的磁盘空间。 如果你想同时运行多个虚拟机,必须要有足够的内存来支撑各个虚拟机。否则,主机就不得不开始交换页…

SLS:基于 OTel 的移动端全链路 Trace 建设思考和实践

作者:高玉龙 (元泊)首先,我们了解一下移动端全链路 Trace 的背景:从移动端的视角来看,一个 App 产品从概念产生,到最终的成熟稳定,产品研发过程中涉及到的研发人员、工程中的代码行数、工程架构规模、产品发…

探索VGG网络与LeNet网络对精度的影响

1 问题在学习不同网络模型对实验精度的影响过程中,对我们的实验结果,各种参数数值的改变有何变化,有何不同。VGG-11网络与LeNet-5网络对精度和损失的影响研究。训练周期20其他参数都相同的方式来探索最终的精度。2 方法对于VGG-11网络&#x…