利用最新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文件,被拦截:

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

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

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

 

转载于:https://www.cnblogs.com/nul1/p/8719238.html

DedeCMS 是国内较为流行的网站内容管理系统之一,但其在安全性方面曾暴露出多个漏洞CVE-2019-8933 是 DedeCMS 的一个严重文件上传漏洞,攻击者可利用漏洞上传任意格式的文件(包括可执行脚本),从而可能导致服务器被远程控制。 ### 漏洞成因分析 该漏洞主要存在于 DedeCMS 后台的文件上传功能中,具体出现在 `/dede/media_add.php` 或相关媒体上传模块中[^1]。由于系统对上传文件的类型校验不严格,攻击者可通过构造特定的请求绕过文件类型限制,上传包含恶意代码的脚本文件(如 `.php` 文件)。 关键问题点包括: - **MIME 类型校验缺失或可伪造**:部分版本未正确验证上传文件的 MIME 类型。 - **文件名处理逻辑缺陷**:未正确过滤特殊字符或双扩展名,例如 `image.php.jpg` 可能被误认为合法图片。 - **白名单机制不完善**:某些配置下使用黑名单而非白名单方式校验文件类型,容易被绕过。 ### 漏洞影响范围 受影响的版本主要包括 DedeCMS 5.7 SP2 及其之前的版本。若未及时更新补丁,部署于公网的站点将面临较高风险[^1]。 ### 利用方式与危害 攻击者通过上传恶意 PHP 脚本,可在服务器上执行任意命令,进而实现数据窃取、网站篡改、挂马传播等行为。此类攻击通常通过以下步骤完成: 1. 登录后台(可通过其他漏洞获取管理员权限); 2. 使用上传接口上传恶意文件; 3. 访问上传的文件以触发代码执行。 ### 修复方法与缓解措施 #### 1. 官方补丁升级 最直接且推荐的方式是升级至官方发布的安全版本。DedeCMS 在后续版本中加强了文件上传的安全校验机制,并优化了文件名解析逻辑。 #### 2. 手动修补核心文件 对于无法立即升级的系统,可以手动修改相关文件以增强安全性。以 `media_add.php` 为例,需加强对上传文件类型的判断逻辑: ```php // 修改前可能存在如下宽松的判断 if(preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[a-zA-Z0-9]{1,5}$#i', $filename)) // 修改后建议采用白名单机制 $whitelist = array('jpg','jpeg','png','gif','bmp','swf'); $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); if(!in_array($ext, $whitelist)) { ShowMsg("禁止上传非法文件类型!", "-1"); exit(); } ``` 此外,还需检查并加固以下文件中的上传逻辑: - `/dede/upload.php` - `/include/dialog/select_images.php` - `/include/upload.class.php` #### 3. 配置服务器限制 在 Web 服务器层面增加防护策略,例如 Apache 或 Nginx 中设置上传目录的脚本执行限制: ##### Apache 示例: ```apache <Directory "/path/to/uploads"> php_flag engine off </Directory> ``` ##### Nginx 示例: ```nginx location ~ ^/uploads/.*\.(php|php5)$ { deny all; } ``` #### 4. 权限最小化原则 - 确保上传目录无执行权限; - 使用独立域名或子路径存放上传文件; - 定期扫描上传目录是否存在可疑文件。 ### 安全建议 - 定期更新系统及插件,关注官方安全公告; - 对所有上传操作实施严格的白名单控制; - 启用 WAF(Web 应用防火墙)进行实时攻击检测与拦截; - 加强后台访问控制,启用二次认证机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值