Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
POC-WP-XSS2Shell-CVE-2026-64638 — CVE-2026-64638(XSS2Shell)の機能的なPoC:WordPress Coreにおける認証前XSSからRCEへの攻撃チェーン。Dockerラボ+Python製の攻撃者サーバー+技術的分析と緩和策。 | Kitploit
ツール/GitHubGitHub/686f6c61/poc-wp-xss2shell-cve-2026-64638
脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育ペイロード開発ラボと実践
GitHub686f6c61/poc-wp-xss2shell-cve-2026-64638

POC-WP-XSS2Shell-CVE-2026-64638

CVE-2026-64638(XSS2Shell)の機能的なPoC:WordPress Coreにおける認証前XSSからRCEへの攻撃チェーン。Dockerラボ+Python製の攻撃者サーバー+技術的分析と緩和策。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
113日前未レビュー

XSS2Shell — CVE-2026-64638 の PoC

XSS2Shell (CVE-2026-64638) チェーンの教育用 PoC です。 pwn.ai が独自に発見し、2026年8月7日に公開した、WordPress Core の 認証前 XSS → RCE の脆弱性です。


目次

  1. エグゼクティブサマリー
  2. 法的免責事項
  3. チェーンアーキテクチャ
  4. 要件
  5. リポジトリ構成
  6. クイックスタートガイド
  7. エクスプロイトの検証
  8. 追加ドキュメント

エグゼクティブサマリー

CVE-2026-64638 は、WordPress のログイン画面 (wp-login.php) における、認証前の反射型クロスサイトスクリプティング (XSS) 脆弱性です。2026年8月6日に緊急のセキュリティリリースとして公開された 7.0.3 より前の、メンテナンス中のすべてのバージョンに影響します。CVSS v4.0 スコアは 8.9 と評価されました。

XSS2Shell という名前のチェーンは、細工されたユーザー名による失敗したログイン試行だけを起点に、攻撃者が以下を実行できることを示しています:

  1. PHP の strip_tags と WordPress の wp_kses_post という2つの構文解析器の差異を利用して、ログインページにライブ DOM 要素を注入する。
  2. WordPress 自身の JavaScript (user-profile.js) の実行フローを乗っ取り、同一オリジンへの REST JSONP リクエストを実行させる。
  3. jQuery.globalEval() により、JSONP レスポンスを WordPress オリジン上での JavaScript 実行に変換する。
  4. これらすべてを Paulos Yibelo (2022) の Same Origin Method Execution (SOME) テクニックと連鎖させ、管理者の認証済みセッション内でアプリケーションパスワードの承認ボタンを自動的にクリックさせる。
  5. 結果として得られるアプリケーションパスワード資格情報を取得し、悪意のある JavaScript を含むページを公開し、最終的にサーバー上で PHP を実行する ZIP 形式のプラグインをアップロードする。

その結果、攻撃者が制御するリンクへの管理者の 1 回のクリックを起点に、Webプロセスのユーザー (通常 www-data) 権限で WordPress サーバー上にリモートコード実行 (RCE) が発生します。


法的免責事項

このリポジトリには、厳密に教育および防御目的のコンテンツが含まれています。

  • 目的: トレーニング、自身の監査、パッチの検証を目的として、エクスプロイトチェーンをデモンストレーションすること。
  • 許可される使用: 自分が所有している、または明示的な書面による許可を得ている WordPress インストールに対してのみ実行してください。
  • 禁止事項: 同意のない第三者システムへのいかなる使用も禁止します。リポジトリの作者は、ここに含まれる内容の誤用について一切責任を負いません。
  • 責任: 運用者は、適用される法律 (スペインの LOPD/RGPD、米国の CFAA など) の遵守について単独で責任を負います。

PoC には自己完結型の Docker 環境が付属しており、その唯一の目的は、ローカルで再現可能なターゲットとして機能することです。


チェーンアーキテクチャ

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────┐
│  1. XSS pre-auth en wp-login.php                                    │
│     log=< area id=ajaxurl href=/?rest_route=/&_jsonp=...>           │
│     (discrepancia strip_tags ↔ wp_kses_post)                        │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  2. user-profile.js dispara .trigger('click')                       │
│     DOM clobbering de ajaxurl → petición POST al origen             │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  3. REST JSONP responde application/javascript                      │
│     jQuery.globalEval() ejecuta el callback en el origen WP         │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  callback = window.opener
                                           │            .approve.click
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  4. SOME: click() cruza la frontera opener→admin                    │
│     authorize-application.php#approve se pulsa en sesión admin      │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  5. WP crea Application Password → redirige a success_url           │
│     El atacante captura user_login + password en callback.php       │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  HTTP Basic REST
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  6. POST /wp-json/wp/v2/pages  → publica página con <script>        │
│     El admin visita la página → JS en origen WP con sesión admin    │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  7. fetch update.php?action=upload-plugin  → sube payload.zip       │
│     PHP del plugin es accesible directamente sin activarlo          │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  8. RCE confirmada: GET /wp-content/plugins/payload/shell.php       │
└─────────────────────────────────────────────────────────────────────┘

要件

この PoC は、macOS または Linux での実行を想定しており、必要なものは次のとおりです:

  • Docker 24+ および Docker Compose v2 (ローカルターゲット用)。
  • Python 3.9+ (オプションのオーケストレーター用)。
  • PHP 8.1+ と zip 拡張機能 (ペイロード を手動で構築する場合に必要。オプション。構築済みの ZIP は payload/ に含まれています)。
  • Chromium または Firefox ベースの最新ブラウザ。

WordPress を手動でインストールする必要はありません。docker-compose.yml が、パッチ前の最終バージョンである脆弱な WordPress 7.0.2 を MariaDB とともに起動します。


リポジトリ構成

root@kitploit:~
POC XSS2Shell (CVE-2026-64638)/
├── README.md                       ← Este archivo
├── docker-compose.yml              ← Blanco: WordPress 7.0.2 + MariaDB
├── .env.example                    ← Variables de configuración
├── exploit.py                      ← Orquestador en Python (opcional)
├── attacker/                       ← Infraestructura del atacante
│   ├── index.html                  ← Página cebo con la cadena SOME
│   ├── callback.php                ← Receptor de la Application Password
│   └── server.py                   ← Servidor estático + PHP embebido
├── payload/                        ← Plugin ZIP malicioso
│   ├── build_payload.py            ← Generador del ZIP
│   ├── shell.php                   ← Webshell mínimo
│   └── payload.zip                 ← ZIP preconstruido (listo para usar)
└── docs/
    ├── ANALISIS.md                 ← Análisis técnico detallado
    └── MITIGACION.md               ← Guía de mitigación y hardening

クイックスタートガイド

1. ターゲットを起動する (脆弱な WordPress 7.0.2)

root@kitploit:~
cp .env.example .env
docker compose up -d

WordPress は http://localhost:8080 でアクセス可能になります。インストールウィザードに従い、管理者ユーザーを作成してください (例: admin / admin-password)。

Dockerfile はイメージを wordpress:7.0.2-php8.2-apache に固定しています。これはパッチ 7.0.3 より前の最終バージョンです。

2. 攻撃者インフラを起動する

root@kitploit:~
# En otro terminal, dentro de attacker/
python3 server.py

攻撃者サーバーは http://localhost:9000 で待ち受け、以下を公開します:

  • / → index.html (囮ページ)。
  • /callback.php → Application Password の受信側。

3. 管理者のクリックをシミュレートする

  1. http://localhost:8080/wp-admin に管理者としてログインします。
  2. ブラウザの同じセッションで、新しいタブを開いて http://localhost:9000/ にアクセスします。
  3. 「Approve Application」という1つのボタンが表示されます。それを押すと、チェーン全体が自動的に実行されます。

4. 資格情報の取得を確認する

server.py を実行しているターミナルに、次のような行が表示されます:

root@kitploit:~
[+] Application Password recibida para el usuario 'admin':
    XXXX XXXX XXXX XXXX XXXX XXXX

資格情報は attacker/captured_credentials.txt にも保存されます。

5. RCE を確認する

数秒後、index.html のオーケストレーターは次の操作を完了しています:

  • WordPress オリジンで JavaScript を実行するページを公開済みです。
  • payload.zip プラグインを wp-content/plugins/payload/ にアップロード済みです。

次のコマンドでコード実行を確認します:

root@kitploit:~
curl -sI http://localhost:8080/wp-content/plugins/payload/shell.php

Hacked: true ヘッダーと JSON ボディによって RCE が確認されます。


エクスプロイトの検証

チェーンが完了すると、次のエンドポイントが証拠となります:

リソース期待される証拠
GET /wp-content/plugins/payload/shell.phpヘッダー Hacked: true + JSON {"rce":true,"user":"www-data"}
attacker/captured_credentials.txt

追加ドキュメント

  • docs/ANALISIS.md — WordPress のソースコードへの参照を含む、チェーンの各フェーズの詳細な技術分析。
  • docs/MITIGACION.md — 推奨される緩和策、ハードニング、および パッチ 7.0.3 の検証。

クレジット

  • オリジナルの調査と公開: pwn.ai — https://pwn.ai/blog/xss2shell
  • 基盤となる SOME テクニック: Paulos Yibelo (2022)。pwn.ai のブログで公開され、2022年の Top Web Hacking Techniques にノミネートされました。
  • このリポジトリの PoC とパッケージング: 教育目的の自作です。

ライセンス

MIT ライセンスの下で配布されています。詳細は LICENSE ファイルを参照してください。

ツールをダウンロード
取得されたアプリケーションパスワード
wp-admin → アプリケーション → アプリケーションパスワード「SomeApp」という名前の新しいエントリ