漏洞描述
-
前言
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://www.toymoban.com/news/detail-443446.html
https://blog.csdn.net/m0_46607055/article/details/121641417文章来源地址https://www.toymoban.com/news/detail-443446.html
到了这里,关于Nginx漏洞修复之目录穿越(目录遍历)漏洞复现及修复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!