nginx在使用proxy_pass的时候,需要处理静态文件有时候会这样做:

location /static {
               alias /home/uploads/static/;
       }

payload:

curl vuln.com/static../requirements.pip

上面如果是两个路径最后都没有带/或者都带/则该漏洞不存在。

代理末尾添加/之后,nginx会先对uri进行normalized处理,使用../读取文件会失败,当没有添加/的时候,nginx会把原请求直接转发给后端服务器,所以可以读取成功。

2019-09-17
Contents

⬆︎TOP