Nginx漏洞修复之目录穿越[目录遍历]漏洞复现及修复
漏洞描述
- 前言Nginx是一个高性能的HTTP和反向代理服务器,经常被做为反向代理,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。漏洞出现在服务器的静态文件中。如果静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名。Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。
- 修改nginx.conf在如下配置中设置目录别名时/files配置为/home/的别名,那么当我们访问/files…/时,nginx实际处理的路径时/home/…/,从而实现了穿越目录。
漏洞复现
环境搭建
- 安装Nginx环境: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配置文件修改/usr/local/nginx/conf/nginx.conf,使用/闭合/files,形成/files/。
- 重启Nginx
cd /usr/local/nginx ./sbin/nginx -s reload
- 修复验证
参考链接
- Nginx 配置错误导致漏洞(目录遍历漏洞)——漏洞复现https://blog.csdn.net/weixin_40412037/article/details/106234134
- [漏洞复现]——nginx目录穿越漏洞https://blog.csdn.net/m0_46607055/article/details/121641417
本文转载自: https://blog.csdn.net/weixin_42586723/article/details/122944781
版权归原作者 Charles Yan 所有, 如有侵权,请联系我们删除。
版权归原作者 Charles Yan 所有, 如有侵权,请联系我们删除。