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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-80099 — Newfoldプラグイン(wp-module-data <= 2.9.7)未認証 | Kitploit
ツール/GitHubGitHub/wayang1337/cve-2026-80099
脆弱性スキャナーパスワード攻撃エクスプロイトスクリプトと自動化ウェブアプリケーション悪用情報収集ポストエクスプロイトウェブセキュリティペネトレーションテストリモートアクセスツール
GitHubwayang1337/cve-2026-80099

CVE-2026-80099

7時間14分前未レビュー

Newfoldプラグイン(wp-module-data <= 2.9.7)未認証

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-80099 PoC

wp-module-data をバンドルする Newfold WordPress プラグインを対象とした、認証不要の認証バイパスおよび RCE エクスプロイト。

概要

このツールは、Newfold の wp-module-data モジュールにおける Bearer トークン検証の欠陥を悪用します。影響を受ける Newfold プラグインを使用している WordPress サイトが Hiive に接続されていない 場合、HiiveConnection::get_auth_token() は false を返します。この値は strrev() を経由してからハッシュ化されるため、シークレットソルトが公開定数へと縮退します:

root@kitploit:~
sha256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

ハッシュ化されるペイロードの他のすべての構成要素 (HTTP メソッド、リクエスト URL、リクエストボディ、タイムスタンプ) は完全に攻撃者が制御できるため、有効な Bearer トークンをオフラインで計算できます。脆弱なフィルターは rest_authentication_errors で実行されるため、偽造されたトークンは呼び出し元を 最初の管理者 として認証し、コアルートを含む WordPress REST API 全体へのアクセスを可能にします。そのアクセスはさらに完全なリモートコード実行へと悪用されます。

影響を受けるソフトウェア

プラグイン / モジュール影響を受けるバージョン修正済み
wp-module-data<= 2.9.72.9.8
bluehost-wordpress-plugin<= 4.19.0n/a
hostgator<= 3.2.0n/a
web<= 2.3.5n/a
crazy-domains<= 2.5.2n/a

検出は WordPress.org のプラグインスラッグ wp-plugin-web および crazy_blog も対象とします。

根本原因

vendor/newfold-labs/wp-module-data/includes/Data.php 内:

root@kitploit:~
public function authenticate( $errors ) {        // hooked on rest_authentication_errors
    ...
    $data = array(
        'method'    => $_SERVER['REQUEST_METHOD'],
        'url'       => Url::getCurrentUrl(),
        'body'      => file_get_contents( 'php://input' ),
        'timestamp' => dataGet( getallheaders(), 'X-Timestamp' ),
    );
    $hash     = hash( 'sha256', wp_json_encode( $data ) );
    $salt     = hash( 'sha256', strrev( HiiveConnection::get_auth_token() ) );
    $is_valid = hash( 'sha256', $hash . $salt ) === $token;

    if ( $is_valid ) {
        ... wp_set_current_user( <first administrator> ); return true;
    }
}

未接続のサイトでは、strrev(false) は strrev('') に強制変換されて '' を生成し、ソルトは空文字列のよく知られたハッシュになります。ハッシュチェーンへの他のすべての入力は攻撃者が制御できるため、トークンは完全に予測可能です。

機能

  • 静的アセットのフィンガープリンティングによる影響を受ける Newfold プラグインの検出
  • newfold-data/v1/verify/<hex> REST ルートによるモジュールの存在検出
  • 有効な Bearer トークンのオフライン偽造 (シークレット不要)
  • GET /wp/v2/users/me を呼び出してロールを検査することによるバイパスの検証
  • 複数のフォールバック手法を備えた完全な RCE チェーン:
    1. テーマエディターによる 404.php / index.php への書き込み
    2. ZIP によるプラグインアップロード
    3. 非アクティブなプラグインへのエディター書き込み、REST による有効化、および復元
  • オプションでウェブルートに設置される永続的な .fm.php ファイルマネージャー
  • スレッドワーカー、レジューム対応、およびスロットリングされた進捗表示を備えた大量スキャンモード
  • ポストエクスプロイト用の 2 つの認証パス: Newfold SSO マジックリンクログイン (wp-login.php への ModSecurity ブロックをバイパス) および従来の wp-login.php フォームログイン

要件

  • Python 3.7+
  • requests
  • urllib3 (オプション、TLS 警告の抑制のみ)

依存関係のインストール:

root@kitploit:~
pip install requests urllib3

使用方法

単一ターゲットのチェック

読み取り専用の検出およびバイパス検証:

root@kitploit:~
python3 exploit.py -u https://target.example

単一ターゲットの RCE

永続的なシェルまでの完全なチェーン:

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce

新しい管理者を作成する代わりに、最初の管理者のパスワードをリセット:

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce --takeover

大量スキャン

ターゲットリスト全体に対するチェックのみ:

root@kitploit:~
python3 exploit.py --list targets.txt

すべての脆弱なホストに対する完全なチェーン (明示的なオプトインが必要):

root@kitploit:~
python3 exploit.py --list targets.txt --mode rce --apply-rce

REST API に触れる前に静的アセットプローブを使用して事前フィルタリング:

root@kitploit:~
python3 exploit.py --list targets.txt --brand-filter

最初の N 台の脆弱なホストで停止:

root@kitploit:~
python3 exploit.py --list targets.txt --stop-after 5

前回の実行を再開:

root@kitploit:~
python3 exploit.py --list targets.txt --resume

オプション

フラグ説明
-u, --url単一ターゲットのベース URL
--list1 行につき 1 つのターゲット URL を含むファイル
--modecheck (検出のみ) または rce (完全なチェーン)、デフォルトは check
--takeover新しい管理者を作成する代わりに、最初の管理者パスワードをリセット
--output大量モード用の JSONL 出力パス、デフォルトは cve_2026_80099_results.jsonl
--vuln-list脆弱なホストのベア URL リスト、デフォルトは vuln.txt
--threads大量モードのワーカー数、デフォルトは 20
--timeoutリクエストタイムアウト (秒)、デフォルトは 15
--fast-timeout高速プローブのタイムアウト (秒)、デフォルトは 6
--retriesリクエストごとの再試行回数、デフォルトは 1
--proxyHTTP(S) プロキシ URL
--all-out脆弱なものだけでなく、すべての大量行を書き込む
--apply-rce大量モードで脆弱なホストに対して RCE チェーンを実行
--brand-filterNewfold プラグインの静的アセットを使用して事前フィルタリング
--stop-afterN 台の脆弱なホストで大量スキャンを停止、0 はすべて実行
--quietターゲットごとの進捗行を無効化
--resume出力に追記し、すでに存在するターゲットをスキップ

RCE チェーンの詳細

管理者コンテキストが確認されると、ツールは 3 つの手法を順に試行します:

  1. テーマエディターシェル — アクティブなテーマの 404.php または index.php に小さな PHP ペイロードを書き込みます。ペイロードは、存在しない任意の URL (404.php の場合) またはサイトルート (index.php の場合) をリクエストすることでトリガーされます。

  2. プラグインアップロードシェル — 最小限のプラグインを含む ZIP を構築し、wp-admin/update.php?action=upload-plugin 経由でアップロードし、プラグインの PHP ファイルに直接アクセスします。

  3. 非アクティブプラグインエディターチェーン — REST API 経由でプラグインを一覧表示し、非アクティブなものを選択し、plugin-editor.php 経由でそのメインファイルに cmd-shell を書き込み、PUT /wp/v2/plugins/<slug> 経由で有効化し、任意のフロントエンド URL でシェルをトリガーし、ウェブルートに .fm.php を設置し、その後プラグインを無効化して元のファイルを復元します。このパスは、テーマエディターをブロックする、wp-content への直接アクセスをブロックする、またはループバックヘルスチェックを通じて編集を元に戻すホストを生き残るように設計されています。

成功すると、永続的な .fm.php ファイルマネージャーがウェブルートに設置されます。以下をサポートします:

  • ?cmd=<shell command>
  • ?cat=<path> でファイルを読み取り
  • ?put=<path>&data=<base64> でファイルを書き込み
  • ?ls=<path> でディレクトリを一覧表示

出力ファイル

  • cve_2026_80099_results.jsonl — スキャンされた各ターゲットの JSONL レコード。脆弱なエントリには vuln: true、admin、admin_id が含まれ、RCE が成功した場合は shell (設置されたファイルマネージャーまたはシェルの URL) も含まれます。
  • vuln.txt — 脆弱またはシェル化された各ターゲットのベア URL を 1 行に 1 つ。

注意事項

  • このツールは、ローカルプロキシ経由で大量スキャンが漏洩するのを避けるため、trust_env = False によりシステムおよび環境のプロキシを無視します。
  • Bearer トークンは、サーバーが認識する正確な URL (スキーム、ホスト、リクエスト URI) に対して計算され、Url::getCurrentUrl() の動作と一致します。リクエストは最初に準備され、トークンは準備された URL から導出されます。
  • PHP 互換の JSON エンコーダーは、json_encode のデフォルト動作を再現します。これには、エスケープされたスラッシュ、\uXXXX 非 ASCII エスケープ、およびアストラル文字の UTF-16 サロゲートペアが含まれ、ハッシュ化されるペイロードがバイト単位で一致します。
  • 401 を返す失敗したプローブは、通常、ターゲットが修正済み (モジュール >= 2.9.8)、サイトが Hiive に接続されている (実際のトークン、不明なソルト)、または中間装置が Authorization ヘッダーを削除していることを意味します。403 は通常、別の rest_authentication_errors フィルターが干渉したことを示します。

免責事項

このツールは、許可されたセキュリティテストおよび研究のみを目的として提供されています。所有しているシステム、またはテストに対する明示的な書面による許可を得ているシステムに対してのみ使用してください。コンピュータシステムへの不正アクセスはほとんどの法域で違法であり、深刻な民事および刑事罰を受ける可能性があります。作者は、このソフトウェアの誤用または損害に対して一切の責任を負いません。

ツールをダウンロード