1. 程式人生 > >nginx解析漏洞,配置不當,目錄遍歷漏洞復現

nginx解析漏洞,配置不當,目錄遍歷漏洞復現

nginx解析漏洞,配置不當,目錄遍歷漏洞復現

1.Ubuntu14.04安裝nginx-php5-fpm

安裝了nginx,需要安裝以下依賴

sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g.dev
sudo apt-get install libssl-dev

安裝php:

apt-get install php5-fpm
apt-get install nginx

開啟Nginx對php的支援,去掉配置檔案中關於php的註釋並重啟Nginx即可

vim /etc/nginx/sites-available/default

nginx網站目錄

/usr/share/nginx/html

nginx解析php

nginx無法啟動可以檢視日記查詢解決方法

vim /var/log/nginx

訪問php檔案403

在/etc/php5/fpm/pool.d/www.conf中編輯
listen = /var/run/php5-fpm.sock為127.0.0.1:9000

在/etg/nginx/sites-available/**.conf中編輯
fastcgi_pass/var/run/php5-fpm.sock為127.0.0.1:9000

後重啟nginx,php5-fpm即可

重啟服務命令
service php5-fpm restart
service nginx restart

2.Nginx的檔案解析漏洞復現

如果在訪問test.jpg這個檔案時以這種去訪問/test.jpg/1.php,可能會被當做PHP程式碼去執行

使用者配置不當造成的解析漏洞。 我們現在進行不當配置實現解析漏洞

vim /etc/php5/fpm/php.ini
修改cgi.fix_pathinfo為1

vim /etc/php5/fpm/pool.d/www.conf
修改security.limit_extensions允許解析其他格式檔案為PHP


解析漏洞成功

3.Nginx目錄遍歷漏洞

vim /etc/nginx/sites-available/default

在location這裡加上

autoindex on;

4.nginx目錄穿越漏洞

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

錯誤的配置檔案示例(原本的目的是為了讓使用者訪問到/home/目錄下的檔案):

location /files {
    alias /home/;
}


==遇到的坑==

5.Docker為什麼剛執行就退出了

docker run -d -p 80:80 ubuntu

運行了一個簡單的容器後,然後docker ps -a 進行檢視, 會發現容器已經退出

很重要的要說明的一點: Docker容器後臺執行,就必須有一個前臺程序.
容器執行的命令如果不是那些一直掛起的命令(比如執行top,tail),就是會自動退出的
這個是docker的機制問題,比如你的web容器,我們以nginx和fpm為例,
正常情況下,我們配置啟動服務只需要啟動響應的service即可,例如

service nginx start && service php5-fpm start

但是,這樣做,nginx和fpm均為後臺程序模式執行,就導致docker前臺沒有執行的應用,
這樣的容器,後臺啟動後,會立即自殺,因為他覺得他沒事可做了.

解決方法:
1.最佳的解決方案是,將你要執行的程式以前臺程序的形式執行,當然,如果你的容器需要同時啟動多個程序,
那麼也只需要,或者說只能將其中一個掛起到前臺即可.
比如上面所說的web容器,我們只需要將啟動指令修改為:

service php5-fpm start && nginx -g "daemon off;"

這樣,fpm會在容器中以後臺程序的方式執行,而nginx則掛起程序至前臺執行,這樣,就可以保持容器不會認為沒事可做而自殺了.

2.對於有一些你可能不知道怎麼前臺執行的程式,提供一個投機方案,你只需要在你啟動的命令之後,
新增類似於 tail top 這種可以前臺執行的程式,這裡特別推薦 tail ,然後持續輸出你的log檔案.
還是以上文的web容器為例,我們還可以寫成:

service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log

把這條命令加到start.sh實現自啟

參考連結
https://www.jianshu.com/p/13d5912a6417
https://blog.csdn.net/qq_32434307/article/details/79480036
https://blog.csdn.net/wang_quan_li/article/details/48003811
https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/