某些環境下繞過php字尾黑名單上傳webshell
某期三個白帽,某牛的出的題被秒,他利用過濾黑名單的方式防止上傳。做題的人就是直接上傳phtml繞過黑名單的,但是我之前還不知道phtml還被能解析成php。
於是我本地測試,卻發現我本地的phtml字尾解析不了。我本地的環境phpstudy整合環境。
我然後又在我的kali虛擬機器裡面測試,發現可以解析phtml。當時感覺好奇怪於是我就翻了翻了我kali裡面的apache配置檔案
kali是debian系的,/etc/apache2的目錄下就是apache2的所有配置檔案
其中apache2.conf是主要的配置檔案,*-enabled表示在是用的配置,*-available表示是可用的配置。
我們來看看apache2.conf中的配置。
在檔案的尾部包含了包含了模組的配置,而php5模組配置就是在mods-enabled裡面
可看見php5.conf是../mods-available/php5.conf的軟連線。看看php5.conf
終於找到原因啦,只要符合這個正則的字尾名都可以被當做php檔案執行。符合的字尾包括 php、php3、php4、php5、phtml、pht等
後來我還去測試了其他的一些apache+php的環境
windows
phpstudy和wamp兩個整合環境
linux
ubuntu、debian和centos用源的方式安裝lamp.(apt-get和yum)
結果
phpstudy和wamp以及centos用yum方式安裝的lamp環境不能解析phtml和pht
ubuntu和debian利用apt-get方式安裝的lamp環境就能解析phtml和pht,原因和上圖分析是一樣的。
備註
利用這些環境特性和黑名單就能繞過限制,達到上傳webshell的目的,在平常滲透測試當中也許會是一個突破點