Nginx目录遍历漏洞复现

17 篇文章 2 订阅
11 篇文章 2 订阅

目录

漏洞描述

漏洞原理

漏洞复现

环境搭建

攻击复现

1、搭建子网站,使用home目录

2、搭建子网站,使用根目录


漏洞描述

Nginx的目录遍历与apache一样,属于配置方面的问题,错误的配置可导致目录遍历与源码泄露。

Nginx是一个高性能的HTTP和反向代理服务器,经常被做为反向代理,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。漏洞出现在服务器的静态文件中。如果静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名。

Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。

漏洞原理

在配置子网站时,修改nginx.conf,在如下图位置添加如下配置

在如下配置中设置目录别名时/files配置为/home/的别名,那么当我们访问/files/…时,nginx实际处理的路径时/home/…,从而实现了穿越目录。

漏洞复现

环境搭建

在ubuntu 安装nginx

    # 获得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目录下载到vulhub这个目录里了,不过对过程和结果不影响)

在使用make安装nginx时会报错(第一个坑):

解决方法如下:

输入下面这段命令代替make

make CFLAGS='-Wno-implicit-fallthrough'

发现还是报错:

出现这个问题一般不是Nginx的版本高就是服务器版本高的问题

解决办法:
在nginx安装文件夹下输入

vim src/os/unix/ngx_user.c

进去编辑找到红框中的代码段,如图将它注释保存退出

重新输入:

make CFLAGS='-Wno-implicit-fallthrough'即可不会再有报错输入make的话还是报错

输入

make install

也没有报错

 启动nginx

 查看网页:

这样说明环境起来了

攻击复现

1、搭建子网站,使用home目录

修改/usr/local/nginx/conf/nginx.conf

在这里删除其他,添加上下面两段

 保存退出后,重启nginx

cd /usr/local/nginx 
./sbin/nginx -s reload

浏览器访问

2、搭建子网站,使用根目录

修改/usr/local/nginx/conf/nginx.conf

方法同上,在这里删除其他,添加上下面两段

 

 重启nginx后浏览器访问

 注意,不要用systemctl时会报错!(第二个坑)

 如果kill掉nginx所占用的80端口,重新启动nginx后会发现,环境没了!

参考:

#不全

https://blog.csdn.net/qq_48985780/article/details/121401646

#推荐

Nginx漏洞修复之目录穿越(目录遍历)漏洞复现及修复_Charles Yan的博客-CSDN博客_目录遍历漏洞如何修复

#报错分析

linux 安装 nginx ‘struct crypt_data’ has no member named ‘current_salt’ 解决办法_humanyr的博客-CSDN博客_struct crypt_data

https://blog.csdn.net/zhangpeterx/article/details/97156314

声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值