目录遍历
目录遍历(路径遍历),是由于Web服务器或者Web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全现在,访问任意的文件(可以使Web根目录以为的文件),甚至执行系统命令。
程序在实现上没用充分过滤用户输入的../
之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。
Nginx
的目录遍历与Apache
一样,属于配置方面的问题,错误的配置可导致目录遍历与源码的泄露。
实验环境
1 | 实验机器2003 IP:192.168.136.129 + Phpstudy+Nginx+PHP5.2n |
这个时候可以看到,我创建了很多个目录,环境就搭建完毕!
漏洞复现
首先访问这个url是没有目录遍历的:
1 | http://192.168.136.129/789/123/ |
然后我们修改Nginx
配置文件nginx.conf
:
1 | 把:autoindex off |
接着我们重启phpstudy
重新打开URL:
1 | http://192.168.136.129/789/123/ |
这个时候就会有目录遍历
漏洞了!
漏洞防御
在Nginx
的配置文件nginx.conf
:
把autoindex off
修改为autoindex on
最后重启服务就好了~