一、Apache HTTPD多后缀解析漏洞
1.1、漏洞原理
形如:index.php.asc.cdb 格式的,就是多后缀。Apache对文件名后缀的识别是从后往前进行的,当遇到不认识的后缀时,继续往前,直到识别。index.php.asc.cdb ,在特定配置下,Apache会将其解析为PHP文件,利用此特性,我们可以绕过上传文件后缀检测,达到上传webshell的目的。
配置如下:
AddHandler application/x-httpd-php .php
或者
<FilesMatch ".+\.ph(ar|p|tml)">
SetHandler application/x-httpd-php
</FilesMatch>
影响版本
使用module模式与php结合的所有版本,apache存在未知扩展名解析漏洞;使用fastcig模式与php结合的所有版本,apache不存在此漏洞。
Apache可识别后缀:
Windows:/apche/conf/mine.types中
Ubuntu:/etc/mime.types
1.2、漏洞复现
<?
phpinfo();
?>
访问apache.php.jpeg时,以php格式运行。
二、Apache HTTPD换行解析漏洞
2.1、漏洞原理
它可以通过mod_php来运行PHP网页,在解析PHP时,1.php\x0A 将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。这个漏洞的产生和Apache无关,主要是由于用户配置不当产生的。
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex disabled
DirectoryIndex index.php index.html
<Directory /var/www>
Options -Indexes
AllowOverride ALL
</Directory>
前三行代码:将所有.php结尾的文件当做php文件进行解析。
$:正则表达式匹配字符串结束位置,若存在换行,则匹配换行符为结尾。
利用$和换行符可以绕过黑名单机制。
2.2、漏洞复现
1、点击上传evil.php文件,上传失败。 2、上传evil.php/x0A,上传成功。 3、访问http://ip:8080/evil.php%0A ,解析成功。
/x开头的编码为十六进制编码,转为%即可在url中执行。
|