Easy WP SMTP(v1.3.9)0 day漏洞被攻击的过程和复现
字数 1237 2025-08-18 11:38:36
Easy WP SMTP (v1.3.9) 0day漏洞分析与复现指南
漏洞概述
Easy WP SMTP插件v1.3.9版本存在一个严重的0day漏洞,允许未经身份验证的攻击者通过AJAX请求执行管理功能,包括修改WordPress设置、创建管理员账户等。该漏洞于2019年3月被发现并修复,官方在v1.3.9.1版本中修复了此漏洞。
漏洞影响
- 影响版本:Easy WP SMTP v1.3.9及以下
- 影响范围:所有使用受影响版本插件的WordPress网站
- 漏洞类型:权限绕过/功能滥用
- CVSS评分:高危(具体评分未提供,但实际影响严重)
漏洞原理分析
漏洞存在于easy-wp-smtp.php脚本的admin_init()函数中:
function admin_init() {
if (defined('DOING_AJAX') && DOING_AJAX) {
add_action('wp_ajax_swpsmtp_clear_log', array($this, 'clear_log'));
add_action('wp_ajax_swpsmtp_self_destruct', array($this, 'self_destruct_handler'));
}
// 其他功能代码...
}
关键问题:
- 函数通过
admin_init钩子在用户访问管理区域时运行 - 包含查看/删除日志、导入/导出配置、更新数据库选项等功能
- 没有进行用户权限检查,任何登录用户都可以触发
- 由于使用AJAX和
admin_init钩子在admin-ajax.php上运行,未经认证的用户也可以执行
攻击流程
- 攻击者通过大规模爆破尝试获取有效账户
- 发现目标网站使用易受攻击的Easy WP SMTP插件(v1.3.9)
- 发送特制的AJAX请求(如
action=swpsmtp_clear_log) - 利用插件功能修改WordPress设置:
- 开启用户注册功能
- 创建管理员账户
- 修改网站首页地址
- 注入恶意脚本实现跳转
- 清除攻击痕迹(如清空阻止的IP列表)
漏洞复现步骤
环境准备
- 安装WordPress
- 安装Easy WP SMTP v1.3.9插件
- 确认网站注册功能已关闭
攻击复现
-
创建攻击文件(POC),内容如下:
<?php // 构造恶意请求的代码 ?> -
正常请求该文件应返回
0 -
上传攻击文件到目标服务器
-
访问网站登录界面,验证注册功能是否被开启
-
尝试注册新账户:
- 通过邮箱验证流程
- 确认新注册账户具有管理员权限
-
检查是否成功创建攻击者账户(如
devipentesting99)
漏洞利用后果
- 网站完全被控制
- 首页被修改/注入恶意脚本
- 多个插件/主题页面被植入恶意代码
- 可能上传多个Webshell
- 日志被清除,增加溯源难度
防御措施
- 立即更新:升级到Easy WP SMTP v1.3.9.1或更高版本
- 应急响应:
- 修复被更改的文件
- 删除所有可疑的Webshell
- 检查并删除恶意创建的用户账户
- 安全加固:
- 使用Web应用防火墙(WAF)
- 定期备份网站和日志
- 关注最新漏洞公告并及时更新
- 监控措施:
- 监控异常用户注册活动
- 关注SMTP插件的异常行为
参考资源
总结
Easy WP SMTP v1.3.9的0day漏洞由于缺乏权限检查,允许攻击者完全控制WordPress网站。该漏洞被广泛利用,导致大量网站被入侵。管理员应及时更新插件,并实施全面的安全监控措施以防止类似攻击。