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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
xss2shell-check — CVE-2026-64638(XSS2Shell)用の非破壊型検出器 — WordPress の認証前 XSS 反射プリミティブ | Kitploit
ツール/GitHubGitHub/sanaullahamanullah/xss2shell-check
防御ツール脆弱性スキャナーウェブ脆弱性スキャナー脆弱性分析情報収集ウェブセキュリティペネトレーションテスト
GitHubsanaullahamanullah/xss2shell-check

xss2shell-check

CVE-2026-64638(XSS2Shell)用の非破壊型検出器 — WordPress の認証前 XSS 反射プリミティブ

リポジトリを見る
5日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

xss2shell-check

WordPress の wp-login.php における CVE-2026-64638("XSS2Shell") 反射プリミティブを検出する、非破壊・依存関係ゼロの検出ツールです。

背景

CVE-2026-64638 は、WordPress コアにおける認証前の反射型 XSS です。 2026-08-07 に PWN.AI によって公開され(CVSS 8.9、CWE-79)、7.0.3 で修正され、 全サポート対象ブランチ(6.9.6、6.8.7、6.7.6、6.6.6、6.5.9、…)にバックポートされています。

根本原因は、PHP の strip_tags() と WordPress の KSES サニタイザーの間の パーサー差分 です。

  • strip_tags() は < の後に空白が続くタグを認識しないため、 < area id=x> のようなユーザー名はプレーンテキストとして生き残ります。
  • KSES にはそのようなルールがなく、テキストを再パースして、ログインエラーメッセージ内の 生きた <area id="x"> 要素 に変換します。

これにより、攻撃者が選択した id/class/href 属性による DOM インジェクションが 可能になります。これは公開されたマルチステージチェーン (DOM クロバリング → REST JSONP → アプリケーションパスワード窃取 → プラグインアップロード → ログイン済み管理者被害者への RCE)の背後にあるプリミティブです。

このツールの機能

(ランダムなマーカーユーザー名による失敗ログインという)2 つの非破壊プローブを実行します。

  1. RAW_HTML — <b>marker</b> がエラーレスポンス内でエスケープされずに出現します。
  2. AREA_BYPASS — < area id=marker> が strip_tags() を生き残り、 レスポンス内でライブ/正規化された要素(例: area id="marker")として再出現します。

ペイロードは何も実行しません。このツールは、攻撃者の HTML がライブ DOM として レンダリングされるかどうかのみを測定します。オプションの追加機能:

  • --version — フィードの <generator> タグを介してコアバージョンをフィンガープリントします。
  • --jsonp — 公開されたチェーンで使用される REST JSONP エンベロープ(_jsonp/_envelope)が 到達可能であることを確認します。

使用方法

root@kitploit:~
python3 xss2shell_check.py https://example.com
python3 xss2shell_check.py --jsonp --verbose https://example.com
python3 xss2shell_check.py --version https://example.com
python3 xss2shell_check.py --json https://example.com

Python 3.6+、標準ライブラリのみ。依存関係はありません。

終了コード

コード意味
0脆弱(VULNERABLE、反射プリミティブが存在)
1修正済み / 脆弱ではない(PATCHED / NOT VULNERABLE)
2エラー(ERROR、到達不能、WAF チャレンジ、予期しないレスポンス)

検出マトリクス

検出に関する注意点

  • 脆弱性のシグネチャは正規化された要素(<area id="…">)です。 属性の引用符の形式は KSES の世代によって異なります(旧カスタムパーサー: <area id=x>、DOMDocument: <area id="x"> / <area id="x" />)ので、 すべての形式をマッチングします。再パースを伴わない生の < area …> の通過は、 ブラウザ上では無害なテキストでありプリミティブではありません — これは RAW_TEXT_ONLY として報告され、誤検知(false positive)にはなりません。
  • バージョン表示は 参考情報のみ です。修正済みバックポート(6.9.6、6.8.7、 6.7.6、6.6.6、6.5.9、4.7.34、…)は 4.7.0–7.0.2 系の 内部 に該当し、 ブランチごとに考慮されています。反射チェックが引き続き信頼できる判定基準です。
  • リクエスト: 1 回の GET(ログインページ — WAF/スティッキークッキーと リダイレクト後の実効 URL も取得)+ 一意のランダムマーカーを使用した 2 回の POST。 POST のリダイレクトは POST として再送信されます。WAF によるブロックは、 黙って「脆弱ではない」とするのではなく終了コード 2 として表面化します。
  • カスタムの login_errors フィルタや CDN/WAF がレスポンスを書き換える場合、または ログインエラーがユーザー名をエコーしない場合は、偽陰性(false negative)が 発生する可能性があります。

免責事項

許可されたセキュリティテストのみを対象としています。このツールは、自分が所有する、 または明示的な書面による許可を得て評価するシステムのみをテストすることを意図しています。 無許可のテストはほとんどの法域で違法です。

参考リンク

  • Criminal IP — WordPress の脆弱性 CVE-2026-64638: ログインページの XSS からサーバーサイドコード実行へ
  • CUHK ITS — WordPress の認証前 XSS 脆弱性 "XSS2Shell"(CVE-2026-64638)

ライセンス

MIT

ツールをダウンロード
フラグ目的
--versionコアバージョンをフィンガープリント(フィードの generator タグ、フォールバックとしてホームページの meta)
--jsonpREST JSONP エンベロープ(_jsonp/_envelope)が到達可能かも確認
-v, --verboseプローブレスポンスのスニペットを表示(レポート用の証跡)
--json機械可読な JSON 結果を出力(CI / 自動化用)
観測される挙動判定終了コード
<b>marker</b> がエスケープされずにエコーされるRAW_HTML — 脆弱0
< area id=marker> がライブな <area id="marker"> に再パースされる(引用符・void 形式は問わない)AREA_BYPASS — 脆弱0
ユーザー名が HTML エスケープされるESCAPED — 脆弱ではない1
タグが除去されテキストのみ残るSTRIPPED — 脆弱ではない1
生の < area …> が通過するが再パースされないRAW_TEXT_ONLY — 無害なテキスト、脆弱ではない1
エコーがまったくないNOT_REFLECTED — 脆弱ではない1
プローブがブロックされる(HTTP ≥ 400 / チャレンジページ)、またはターゲットに到達できないERROR2