漏洞原理
漏洞利用条件:
在nginx作为反向代理服务器,且开启了缓存时,攻击者可以构造恶意的range域,来获取相应服务器中的缓存文件头部信息,导致敏感的服务器信息泄露。
Nginx在反向代理站点(客户端是明确的,但是服务器端不明确)的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。
range是HTTP中允许客户端分批断点续传请求资源的一个参数,举例,在请求大资源时,可以通过range并发下载;若网络中断,可以断电续传。range设置在http请求头中。
如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指