nginx 解析php漏洞
測試過nginx諸多版本,都有該漏洞。
漏洞場景: nginx + php-cgi
漏洞重現:
在網站根目錄上傳一個文件1.jpg
內容為:
1 <?php
2 echo 111;
3 ?>
復制代碼
這樣訪問: http://yourdomain/1.jpg/123.php ?//這里的123隨意定義,寫成abc也行,關鍵后邊是.php
這樣就能解析php了 ?結果為
111
這似乎很危險,如果作為系統管理員的你不知道該漏洞,那么別有用心的小人在你的網站上傳了本是php內容的“圖片”,畢竟你的網站是允許上傳圖片的。,如果他上傳了***,那么后果不堪設想。
至于原理,等會再講,先說說如何解決該漏洞。
解決方法也很簡單,打開php.ini
設置 cgi.fix_pathinfo=0
注意,默認這個參數是注釋掉的,當然默認值肯定不是0,所以有必要把注釋號去掉,打開該參數。
為什么會有這樣的漏洞呢?這是因為:
nginx的location對請求進行選擇的時候會使用URI環境變量進行選擇,其中傳遞到后端Fastcgi的關鍵變量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name決定,而通過分析可以看到$fastcgi_script_name是直接由URI環境變量控制的,這里就是產生問題的點。
轉載于:https://blog.51cto.com/2853725/1390978
總結
以上是生活随笔為你收集整理的nginx 解析php漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSP页面中的pageEncoding和
- 下一篇: 动态规划算法php,php算法学习之动态