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