不安全的配置导致apache未知后缀名解析漏洞分析

Apache HTTPD不安全的配置导致未知后缀解析漏洞

该环境版本:

  • PHP 7.x 最新版
  • Apache HTTPD 2.4.10 稳定版(来自debian源)

由此可知,该漏洞与Apache、php版本无关,属于用户配置不当造成的解析漏洞。

漏洞分析

图中的配置文件中高亮部分也是此漏洞的关键所在

不安全的配置导致apache未知后缀名解析漏洞分析

<FilesMatch ".+\.ph(p[345]?|t|tml)$"> SetHandler application/x-httpd-php </FilesMatch>

原本apache中的配置应该是如上是通过正则去匹配php文件,而这里运维人员通过如下配置,而导致这个漏洞的关键配置在docker下是在/etc/apache2/conf-available/docker_php.conf

这句话的作用也是为了让Apache把PHP文件交给php_moudle解析,只要文件后缀出现php都会当作php文件解析

不安全的配置导致apache未知后缀名解析漏洞分析

访问http://your-ip/uploadfiles/apache.php.jpeg即可发现,phpinfo被执行了,该文件被解析为php脚本。

进一步可以利用Apache解析漏洞进行getshell。