nginx目錄穿越漏洞復現

雨中落葉發表於2019-07-24

nginx目錄穿越漏洞復現

一、漏洞描述

Nginx在配置別名(Alias)的時候,如果忘記加/,將造成一個目錄穿越漏洞。

二、漏洞原理

1、 修改nginx.conf,在如下圖位置新增如下配置

在如下配置中設定目錄別名時/files配置為/home/的別名,那麼當我們訪問/files../時,nginx實際處理的路徑時/home/../,從而實現了穿越目錄。

  

三、漏洞環境搭建和復現

1、 在ubuntu 16.04安裝nginx

1.1安裝nginx依賴庫

1.1.1安裝gcc g++的依賴庫

ubuntu平臺可以使用如下命令:

apt-get install build-essential

apt-get install libtool

1.1.2安裝pcre依賴庫

apt-get install libpcre3 libpcre3-dev

1.1.3安裝zlib依賴庫

apt-get install zlib1g-dev

1.1.4安裝ssl依賴庫

apt-get install openssl

1.2安裝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:

make install

#啟動nginx:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

1.3瀏覽器訪問,測試nginx是否搭建成功

   

2、 修改/usr/local/nginx/conf/nginx.conf,在如下圖位置新增如下內容:

  

3、重啟nginx服務

./sbin/nginx -s reload

  

4、瀏覽器訪問http://192.168.10.137/files/

  

5、瀏覽器訪問http://192.168.10.137/files../,如下圖所示,說明存在目錄穿越漏洞

  

6、修改/usr/local/nginx/conf/nginx.conf,把files使用/閉合

  

7、重啟nginx服務,再次訪問http://192.168.10.137/files../,提示404,說明該漏洞不存在

  

四、漏洞防禦

1、修改/usr/local/nginx/conf/nginx.conf,使用/閉合/files,形成/files/。

 

-------------------------------------------------------------------------------------------------

參考: ubuntu 16.04安裝nginx https://www.cnblogs.com/piscesLoveCc/p/5794926.html

相關文章