利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

转载自:https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html

目标环境

比如,目标存在一个上传的逻辑:

<?php
if(isset($_FILES['file'])) {
$name = basename($_POST['name']);
$ext = pathinfo($name,PATHINFO_EXTENSION);
if(in_array($ext, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) {
exit('bad file');
}
move_uploaded_file($_FILES['file']['tmp_name'], './' . $name);
}

可见,这里用到了黑名单,如果发现后缀在黑名单中,则进行拦截。

然后,我们用docker启动一个默认的Apache PHP(Apache版本在2.4.0到2.4.29即可):

docker run -d -p 8080:80 --name apache php:5.5-apache

将上述代码放置在容器内的/var/www/html目录下,设置好写权限,即可进行测试。

绕过黑名单getshell

正常上传php文件,被拦截:

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

可以上传1.php.xxx,但是不解析,说明老的Apache解析漏洞不存在:

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

我们利用CVE-2017-15715,上传一个包含换行符的文件。注意,只能是\x0A,不能是\x0D\x0A,所以我们用hex功能在1.php后面添加一个\x0A

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

然后访问/1.php%0A,即可发现已经成功getshell:

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

上一篇:redis3.0 集群在windows上的配置(转)


下一篇:iptables防火墙常用配置介绍