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

目标环境

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

<?phpif(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

绕过黑名单 getshell

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

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

nginx + php,枫叶进行了测试,发现结果却有些区别:

成功上传后,访问却出现 Access denied 错误。

这也是枫叶预想的结果,fpm 存在一个 security.limit_extensions 配置,默认只解析 php 后缀的文件,多一个换行也不行。


没有账号? 忘记密码?
网站地图