Nginx目录穿越漏洞
Nginx目录穿越漏洞
影响版本:全版本
影响说明:信息泄漏
环境说明:Nginx 1.13.0
漏洞复现:
Nginx的目录穿越漏洞严格定义的话,并非是漏洞,而是Nginx的特性,由于运维人员或者开发人员配置错误而导致的漏洞。
该问题出现在Nginx的虚拟目录配置上,也就是Alias。Alias正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的真实路径都是Alias指定的路径,例如:
location /margin {
alias /home/www/margin/;
}
配置以上内容后如果访问http://xxx/margin/logo.png,其实真的资源是定位到/home/www/margin/logo.png下。
但此时是有问题的,如果location后的路径后面不加/,便会出现目录穿越的漏洞,对应关系如下:
请求
http://xxx/margin../
变为
/home/www/margin/../
最终导致下图情况,造成信息泄漏,如果目录中有数据库备份、源码备份危害就更大了。
所以在location后的路径后面添加/,便会防止目录穿越的漏洞