某些环境下绕过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)

三、结论

1、phpstudy和wamp以及centos用yum方式安装的lamp环境不能解析phtml和pht

2、ubuntu和debian利用apt-get方式安装的lamp环境就能解析phtml和pht,原因和上图分析是一样的。

备注:
利用这些环境特性和黑名单就能绕过限制,达到上传webshell的目的,在平常渗透测试当中也许会是一个突破点