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版本
在不影响业务的前提下,建议禁用multipart range功能
在nginx http中添加
max_ranges 0;