Nginx %00空字節執行php漏洞


 

Nginx如下版本:
0.5.*, 0.6.*, 0.7 <= 0.7.65, 0.8 <= 0.8.37
在使用PHP-FastCGI執行php的時候,URL里面在遇到%00空字節時與FastCGI處理不一致,導致可在非php文件中嵌入php代碼,通過訪問url+%00.php來執行其中的php代碼。如:http://local/robots.txt%00.php會把robots.txt文件當作php來執行。

nginx %00

目前還有許多nginx的低版本服務器存在此漏洞,要養成禁止上傳文件目錄下執行php的好習慣。

nginx %00 漏洞 

nginx %00

臨時解決辦法,在nginx虛擬機配置或者fcgi.conf配置加如下代碼:

if ($request_filename ~* (.*)\.php) {
    set $php_url $1;
}
if (!-e $php_url.php) {
    return 403;
}

當然升級到最新版本的nginx可以很好解決問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM