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

2021/6/8 7:24:16

本文主要是介绍Nginx越界读取缓存漏洞(CVE-2017-7529),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

漏洞概述:
2017年7月11日,Nginx在官方公告中称发现了一个范围过滤器中的安全问题,并分配了CVE-2017-7529。通过精心构造的恶意请求能造成整数溢出,对范围值的不当处理会导致敏感信息泄漏。当使用Nginx标准模块时,攻击者可以通过发送包含恶意构造range域的header请求,来获取响应中的缓存文件头部信息。在某些配置中,缓存文件头可能包含后端服务器的IP地址或其它敏感信息,从而导致信息泄露。

Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。
缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+
“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中
的“HTTP返回包体”返回给用户。如果我的请求中包含Range头,Nginx将会根据我
指定的start和end位置,返回指定长度的内容。而如果我构造了两个负的位置,
如(-600, -9223372036854774591),将可能读取到负位置的数据。如果这次请
求又命中了缓存文件,则可能就可以读取到缓存文件中位于“HTTP返回包体”前的
“文件头”、“HTTP返回包头”等内容。

漏洞条件:
Nginx version 0.5.6 - 1.13.2
该漏洞影响所有0.5.6 - 1.13.2版本内默认配置模块的Nginx只需要开启缓,存攻击者即可发送恶意请求进行远程攻击造成信息泄露。当Nginx服务器使用代理缓存的情况下,攻击者通过利用该漏洞可以拿到服务器的后端真实IP或其他敏感信息。
漏洞复现:
漏洞环境:vulhub docker
启动环境:
访问目标网站即可查看到Nginx默认页面,这个页面实际上是nginx做反向代理的8081端口的
在这里插入图片描述
使用poc:
在这里插入图片描述
可以看到返回了页面的真实ip



这篇关于Nginx越界读取缓存漏洞(CVE-2017-7529)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程