1.准备:
1.1复现环境
漏洞环境:vulnhub靶场
工具准备:python3
1.2环境启动
进入vulnhub目录下的nginx目录,进入CVE-2017-7529目录
cd /home/hbesljx/vulhub/nginx/CVE-2017-7529
docker-compoe启动漏洞环境
docker-compose up -d
访问靶机的8080端口。出现nginx界面即为开启成功!
2.概念说明
2.1 Nginx是什么
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器
3.漏洞原理
Nginx在进行反向代理时,会将一些静态文件进行缓存,缓存文件包括“文件头”+“Http响应包头”+“Http响应包体”,当再次请求这些文件时,Nginx会直接将缓存文件的Http响应包体返回给我们。
而我们构造http请求包头部中的range字段,选择start和end值让Nginx返回给我们指定位置的文件数据。如我们设置start和end为负值,则会返回Http响应包体的负数位置的文件数据给我们,也就是文件头和Http响应包头,这样我们就可以得到一些敏感信息如服务器的真实ip等。