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/