用于非侵入式检测 XSS2Shell 的 Nuclei 模板。XSS2Shell 是 WordPress Core 中一个预认证的 differential parser,允许在登录页面中注入 DOM 元素,并作为 XSS → RCE 攻击链的基础。
⚠️ 此模板仅检测净化缺陷(HTML 响应中的标记反射阶段)。它不会执行完整的利用链(DOM clobbering、JSONP/SOME、Application Password 窃取或插件上传)。严格用于获得明确授权的资产。
WordPress Core 在渲染 wp-login.php 中的“用户未注册”错误消息时,会在两个不同过滤器之间不加一致转义地将提交的用户名插入 HTML:
wp_strip_all_tags()(基于 PHP 的 strip_tags())仅在 < 后面紧跟着一个字母时才识别标签 —— < 后的空格会使过滤器将内容视为纯文本。wp_kses_post() 随后应用,使用自己的 tokenizer,它容忍该空格并将字符串重建为真实的 HTML 元素(<area>、<div> 和 在白名单中)。<button>结果是,未经认证的攻击者可以在登录页中注入任意 DOM 元素,这些元素与 user-profile.js 脚本的遗留处理器、ajaxurl 变量的 DOM clobbering 以及 REST API 的 JSONP 相结合,允许在 WordPress 源站执行 JavaScript,并在完整攻击链中实现对管理员账户的 RCE。
由 pwn.ai 发现并披露。已在 WordPress 7.0.3 中修复(向后移植至 4.7 分支)。
该模板向 /wp-login.php 发送一个 POST 请求,log 字段中的 payload 包含:
< area id=xss2shell-marker href=/x>< div id=xss2shell-div>
如果 WordPress 存在漏洞,wp_kses_post() 会在响应中将这些字符串重建为真实的 HTML 元素。该模板使用两个 regex matcher(条件为 and)来确认两个标签都被重建出现,从而减少部分反射输入的 WAF 造成的误报。
# Validar sintaxe do template
nuclei -t CVE-2026-64638.yaml -validate
# Rodar contra um alvo único
nuclei -t CVE-2026-64638.yaml -u https://target.com
# Rodar contra uma lista de alvos
nuclei -t CVE-2026-64638.yaml -l targets.txt
# Debug (ver request/response completos)
nuclei -t CVE-2026-64638.yaml -u https://target.com -debug-req -debug-resp
| Resultado | Significado |
|---|---|
| 命中 | 注入的标签被反射为真实 HTML → 存在 differential parser → 目标存在漏洞(未修复) |
| 无命中 | payload 已被转义或移除 → 目标已修复(WordPress ≥ 7.0.3)或由会规范化标签内空格的 WAF/代理保护 |
升级到 WordPress 7.0.3 或更高版本。该补丁已回溯到从 4.7 起的所有受维护分支。
此模板仅供安全研究和授权的渗透测试使用。在未经明确授权的情况下对系统使用本模板是违法的。作者对滥用不承担任何责任。
Renzi