freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

不一样的SRC挖洞思路: HTTP请求拆分漏洞实战
2024-06-29 00:05:00

有些师傅说国内挖不到HTTP请求走私,挖不到HTTP请求拆分,挖不到WEB缓存投毒。因为长久以来很少有师傅分享国内的这种漏洞的实战案例,几乎绝大多数实战案例都出自于国外,所以给大家造成一种错觉,似乎国内不存在这种漏洞。

但是实际情况并非如此。我在2023年的时候,就挖到了不少和HTTP请求相关的有趣漏洞,该种漏洞累积赏金拿了不下10w元。我敢肯定的说,“国内挖不到HTTP请求走私,挖不到HTTP请求拆分,挖不到WEB缓存投毒” 这种说法并不正确, 今天我就来给大家分享一个之前挖到的、有趣的、国内SRC的高危实战案例 :HTTP请求拆分导致的HTTP请求走私漏洞。

一、故事的开始

某天,我发现某站点存在CRLF注入导致的请求拆分漏洞,但是经过一番探索,我发现上游服务器并不是存储桶,而是某个配置了基于Host 的请求转发的反向代理。

通过黑盒测试结果,我猜测该站点的架构可能类似于如下这种形式:

client ----> 反向代理1 --CRLF--> 反向代理2 --Host--> (web server1 | web server2 | web server3 | ...)

反向代理1将请求转发给上游的反向代理2时发生了CRLF注入, 反向代理2收到请求报文后,根据请求报文的Host请求头来转发请求报文给对应的web 服务器。

比如:

Host:case.target.com ----> web server1

Host:www.target.com ----> web server2

Host:user.target.com ----> web server3

...

这个案例有趣的点在于,反向代理1和反向代理2之间的通信是支持pipeline的。

也就是说: 反向代理1可以一口气给反向代理2发送多个HTTP请求报文:

step1. 反向代理1 ----> http请求报文1 ----> 反向代理2

step2. 反向代理1 ----> http请求报文2 ----> 反向代理2

step3. 反向代理1 ----> http请求报文3 ----> 反向代理2

...

而无需每一次发送都等待对应的响应报文:

step1. 反向代理1 ----> http请求报文1 ----> 反向代理2

step2. 反向代理1阻塞等待反向代理2返回对应的响应报文

step3. 反向代理1 ----> http请求报文2 ----> 反向代理2

step4. 反向代理1阻塞等待反向代理2返回对应的响应报文

...

正是因为这种特性,我发现当我通过CRLF注入来走私HTTP请求报文时,反向代理1似乎会将从上游服务器收到的多个响应报文合并为一个响应报文返回给我:

https://case.target.cn/%20HTTP/1.1%0d%0aHost:case.target.cn%0d%0a%0d%0aPOST%20/%3fid=%20HTTP/1.1%0d%0aHost:targ

# web安全 # SRC # SRC漏洞挖掘 # 实战案例 # HTTP请求走私
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录