apache httpd多后綴解析漏洞復現


apache httpd多后綴解析漏洞復現

一、漏洞描述

Apache Httpd支持一個文件擁有多個后綴,不同的后綴執行不同的命令,也就是說當我們上傳的文件中只要后綴名含有php,該文件就可以被解析成php文件,利用Apache httpd這個特性,就可以繞過上傳文件的白名單。

該漏洞和apache版本和php版本無關,屬於用戶配置不當造成的解析漏洞

二、漏洞原理

由於管理員的錯誤配置, AddHandler application/x-httpd-php .php,在有多個后綴的情況下,只要一個文件含有.php后綴的文件即將被識別成PHP文件,沒必要是最后一個后綴。利用這個特性,將會造成一個可以繞過上傳白名單的解析漏洞。

三、漏洞環境搭建與復現

1、使用docker搭建漏洞環境,啟動環境

docker-compose up -d

2、瀏覽器訪問http://172.17.0.1/

  

3、直接上傳一個php文件,提示Unsupported filetype uploaded

  

4、查看配置文件,下圖即可看到,管理員錯誤配置導致解析漏洞

  

5、利用apache解析漏洞,上傳一個phpinfo.php.jpg或者phpinfo.php.jpeg的文件,下圖可以看到成功上傳

  

6、瀏覽器訪問http://172.17.0.1/uploadfiles/phpinfo.php.jpg,發現phpinfo被執行了,該文件被解析為php腳本

  

四、漏洞防御

1、使用SetHandler,寫好正則

<FileMatch ".+\.php$">

SetHandler application/x-httpd-php

</FileMatch>

2、禁止.php這樣的文件執行

<FileMatch ".+\.ph(p[3457]?|t|tml)\.">

Require all denied

</FileMatch>


免責聲明!

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



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