Apache HTTPD 多后綴解析漏洞
Path httpd/apache_parsing_vulnerability
Apache HTTPD 支持一個文件擁有多個后綴,并為不同后綴執行不同的指令。比如,如下配置文件:
AddType text/html .html
AddLanguage zh-CN .cn
其給.html后綴增加了media-type,值為text/html;給.cn后綴增加了語言,值為zh-CN。此時,如果用戶請求文件index.cn.html,他將返回一個中文的html頁面。
以上就是Apache多后綴的特性。如果運維人員給.php后綴增加了處理器:
AddHandler application/x-httpd-php .php
那么,在有多個后綴的情況下,只要一個文件含有.php后綴的文件即將被識別成PHP文件,沒必要是最后一個后綴。利用這個特性,將會造成一個可以繞過上傳白名單的解析漏洞。
漏洞環境
運行如下命令啟動一個穩定版Apache,并附帶PHP 7.3環境:
docker-compose up -d
漏洞復現
環境運行后,訪問http://your-ip/uploadfiles/apache.php.jpeg即可發現,phpinfo被執行了,該文件被解析為php腳本。
http://your-ip/index.php中是一個白名單檢查文件后綴的上傳組件,上傳完成后并未重命名。我們可以通過上傳文件名為xxx.php.jpg或xxx.php.jpeg的文件,利用Apache解析漏洞進行getshell。


Vulhub 文檔
推薦文章: