曾记得面试时被问到这个漏洞,当时没答上来,所以好好学习一下
原理Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,Nginx经常被做为反向代理,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
漏洞出现在服务器的静态文件中。
如果静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名:
url上/files没有加后缀/,而alias设置的/home/是有后缀/的,这个/就导致我们可以从/home/目录穿越到他的上层目录(具体也不太理解,后续补上)
漏洞验证
复现漏洞 环境搭建Ubuntu 16.04 + Nginx 1.11.3
获得root权限 sudo -i 安装nginx依赖库和gcc g++的依赖库 apt-get install build-essential apt-get install libtool 安装pcre依赖库 apt-get install libpcre3 libpcre3-dev 安装zlib依赖库 apt-get install zlib1g-dev 安装ssl依赖库 apt-get install openssl 安装nginx wget http://nginx.org/download/nginx-1.11.3.tar.gz 解压 tar -zxvf nginx-1.11.3.tar.gz 进入解压目录: cd nginx-1.11.3 配置: ./configure --prefix=/usr/local/nginx 安装nginx: make 启动nginx: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
访问是否搭建成功
修改Nginx配置文件
apt-get install vim vim /usr/local/nginx/conf/nginx.conf
效果如图
重启Nginx
cd /usr/local/nginx ./sbin/nginx -s reload验证漏洞
正常访问
目录穿越
漏洞修复
重启Nginx
cd /usr/local/nginx ./sbin/nginx -s reload
参考:
nginx目录穿越漏洞复现 - 雨中落叶 - 博客园
Nginx目录穿越漏洞 - Eleven_Liu - 博客园


![[漏洞复现]——nginx目录穿越漏洞 [漏洞复现]——nginx目录穿越漏洞](http://www.mshxw.com/aiimages/31/641862.png)
