某些环境下绕过php后缀黑名单上传webshell

某期三个白帽,某牛的出的题被秒,他利用过滤黑名单的方式防止上传。做题的人就是直接上传phtml绕过黑名单的,但是我之前还不知道phtml还被能解析成php。

于是我本地测试,却发现我本地的phtml后缀解析不了。我本地的环境phpstudy集成环境。

我然后又在我的kali虚拟机里面测试,发现可以解析phtml。当时感觉好奇怪于是我就翻了翻了我kali里面的apache配置文件

kali是debian系的,/etc/apache2的目录下就是apache2的所有配置文件

某些环境下绕过php后缀黑名单上传webshell_第1张图片

其中apache2.conf是主要的配置文件,*-enabled表示在是用的配置,*-available表示是可用的配置。

我们来看看apache2.conf中的配置。

某些环境下绕过php后缀黑名单上传webshell_第2张图片

在文件的尾部包含了包含了模块的配置,而php5模块配置就是在mods-enabled里面

某些环境下绕过php后缀黑名单上传webshell_第3张图片

可看见php5.conf是../mods-available/php5.conf的软连接。看看php5.conf

某些环境下绕过php后缀黑名单上传webshell_第4张图片

终于找到原因啦,只要符合这个正则的后缀名都可以被当做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的目的,在平常渗透测试当中也许会是一个突破点

你可能感兴趣的:(技术分享)