Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/ynsmroztas/wpsniper
偵察脆弱性スキャナーウェブ脆弱性スキャナー脆弱性分析情報収集ウェブセキュリティペネトレーションテスト
GitHubynsmroztas/wpsniper

WPSniper

CVE-2026-87902 検出ツール。WordPress get_page_template LFI クラス。検出専用。許可されたラボ環境向け。

リポジトリを見る
19時間10分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

WPSniper — CVE-2026-87902 detector

WPSniper

WordPress Core 向けの CVE-2026-87902 検出ツール。

get_page_template() は、ページテンプレートの解決時に、有効なテーマ外にある読み取り可能なローカル .php ファイルを含めてしまうように誘導される可能性があります。WPSniper はサイトをフィンガープリントし、公開済みの page_id を選び、インクルードクラスをプローブし、プローブ本文に固有の強力な PEAR バナーが確認された場合にのみ VULN を出力します。

検出のみ。ウェブシェルなし。pearcmd の config-create なし。OS コマンド実行なし。

root@kitploit:~
python3 WPSniper.py -u https://lab.wordpress.local --shell

パイプライン:

root@kitploit:~
subfinder -d lab.example -silent | httpx -silent | python3 WPSniper.py -t 8

記述された範囲。自分のラボ。それが実行するためのライセンスのすべてです。


Redacted WPSniper lab session

クラス

WordPress は、URL 由来で URL デコードされた pagename クエリ変数からページテンプレート名を構築します:

page-{$pagename}.php

次に locate_template() がそのファイルをインクルードします。影響を受けるビルドでは、解決されたパスが許可されたテーマディレクトリ内に留まるよう強制されません。pagename 内の二重エンコードされたトラバーサルは、sanitize_title を通過して get_page_template() が一度デコードし、テーマツリーの外へ抜け出すのに十分な状態で残ります。

閉じたインクルードの前には 2 つの前提条件があります:

  1. 有効な親テーマまたは子テーマに、名前が page- で始まるトップレベルディレクトリが存在すること(WordPress が文書化している page-templates/ — Twenty Twelve、Twenty Fourteen、Neve、Hestia、Sydney など)。
  2. Web サーバーアカウントにとって読み取り可能な .php ターゲットが存在すること。検出ツールはインクルードのオラクルとして標準の PEAR CLI バナーを使用します。検出ツールはそれを書き込みません。

RCE は、これらの条件に加えて書き込み可能/実行可能なガジェットが揃った場合に 起こりうる 後続事象です。その後続事象は このリポジトリには含まれていません。

CVE の発見者クレジット: Robert (ressl)、WordPress HackerOne 経由。アドバイザリ: GHSA-7hp8-65ch-5whp。


WPSniper detect flow

オペレーターが行うこと

バージョンテーブルは組み込みです。4.7.0–7.1.1 が影響を受ける範囲です。修正済みポイント: 7.1.2、7.0.6、6.9.9、6.8.10 … 4.7.37 まで遡ります。

確認ルール

ブログ記事に「pearcmd」と書かれたマーケティングページはヒットではありません。

VULN となるのは、以下のすべてが真である場合のみです:

  • プローブ本文ダイジェスト ≠ ベースライン ?page_id= ダイジェスト
  • 少なくとも 1 つの 強力な トークンがプローブに固有である(PEAR Version:、Usage: pear、PEAR_Config、Commands for pear、config-create、DEPRECATED: PEAR commands、pear.php)
  • 弱いトークン pearcmd / PEAR のみは破棄される。特にそれが既にベースライン HTML に含まれていた場合はなおさらです

INFO = 影響を受けるバージョンおよび/または page-templates ディレクトリが存在するが、インクルードが閉じていない。INFO でクリティカルを報告しないでください。

SAFE = 修正済みブランチ、またはインクルードがベースラインと同一。

SKIP = WordPress ではない、不正な URL。

/etc/passwd はこの CVE にとって誤ったオラクルです。locate_template() は .php を付加します。対話型の passwd コマンドは、それを自分の目で確認するために存在します。root:x:0:0: のスタンザが現れるのは異例であり、手作業で検証する必要があります。

インストール

root@kitploit:~
python3 -m pip install -r requirements.txt
python3 WPSniper.py -u https://lab.wordpress.local

requests が必要です。

フラグ

--shell はパイプラインでは無視されます。これは意図的なものです。

対話型シェル

root@kitploit:~
python3 WPSniper.py -u https://lab.wordpress.local --shell
root@kitploit:~
[email protected] ▶
  1 fp        version / theme / patched?
  2 pages     REST published pages
  3 theme     page-templates directory
  4 probe     PEAR include + baseline diff   (no write)
  5 diff      same, print Δ + tokens
  6 passwd    try …/etc/passwd               (this class includes *.php)
  7 include P include a .php path without suffix
  8 save      last body → /tmp/wpsniper-probe.html
  9 help
  0 exit

すべてのプローブは完全な URL とコピー&ペースト可能な curl を出力します。それをレポートで使用してください。2 つ目のリクエストをでっち上げないでください。

7 include は、あなたが既に配置した許可されたラボファイル用です。ヘルプテキスト内の例の名前は目撃マーカーであり、ドロッパーではありません。

ラボセッション(編集済み)

root@kitploit:~
WPSniper v1.3   CVE-2026-87902  get_page_template LFI
[radar] target  https://lab.wordpress.local
[radar] generator=6.8.3  theme=twentytwelve  status=affected
[radar] page_id=2
[radar] theme dir /wp-content/themes/twentytwelve/page-templates/ → 403

VULN  lab.wordpress.local  unique=['PEAR Version:','Usage: pear'] Δlen=+18420

patched  7.1.2 · 7.0.6 · 6.8.10 · backports to 4.7.37

このページのホストはラボのラベルです。実際の顧客ホスト名は公開のスチルに含めるべきではありません。

パッチ

7.1.2 またはあなたのブランチ用のバックポートにアップグレードしてください:

7.0.6 · 6.9.9 · 6.8.10 · 6.7.9 · 6.6.9 · 6.5.12 · 6.4.12 · 6.3.12 · 6.2.13 · 6.1.14 · 6.0.16 · 5.9.18 … 4.7.37 まで遡ります。

7.1.2 はまた、解決されたテンプレートパスが許可されたテーマディレクトリ内に留まることを要求します。それが実際の修正であり、WAF ルールではありません。

このリポジトリが行わないこと

  • ウェブシェルなし、pearcmd config-create なし、system() ラッパーなし
  • インターネットを大量スキャンするプレイブックなし
  • すべての WordPress 6.x ボックスが RCE であるという主張なし
  • 主要な確認としての生の /etc/passwd なし

所見が必要な場合: WPSniper が既に出力した curl、固有の強力なトークン、およびベースラインダイジェストの不一致を添付してください。

免責事項

許可されたセキュリティテストのみ。あなたが所有していない、または書面による許可を持っていないホストに対してこれを実行することは、ツールではなくあなた自身の問題です。

リンク

  • サイト: ynsmroztas.github.io
  • X: @ynsmroztas
  • CVE: CVE-2026-87902

mitsec · Yunus Emre Öztaş

ツールをダウンロード
ステップアクションシグナル
1ホーム + generator + /feed/WordPress? バージョン? テーマスラッグ?
2REST /wp-json/wp/v2/pages または HTML 内の page_id=テンプレートパスが実際に実行されるための公開済みページ
3GET /wp-content/themes/{slug}/page-templates/200 / 401 / 403 = ディレクトリが存在
4ベースライン ?page_id=N とプローブ pagename= の比較本文ダイジェスト + 固有の強力な PEAR トークン
フラグ意味
-u URL単一ターゲット
-l fileURL リスト
stdinsubfinder | httpx | WPSniper
-t Nリストに対するスレッド数(デフォルト 6)
-q静かな行 + サマリー
--shell単一の -u に対する対話型プローブ
--timeout秒(デフォルト 14)