
CVE: CVE-2025-52021
タイトル: edit_product.php の product_id パラメータを介した時間ベースのブラインドSQLインジェクション
ベンダー / リポジトリ: PuneethReddyHC — https://github.com/PuneethReddyHC/online-shopping-system-advanced
影響を受けるバージョン: 1.0(テスト時点のブランチ/タグ master)
発見者: Hafiz Pradana Gemilang
開示状況: ベンダーに非公開で通知済み。ユーザーの安全のため、完全なエクスプロイトPoCは公開開示から除外されています。
Online Shopping System Advanced v1.0 の admin/admin/edit_product.php に、時間ベースのブラインドSQLインジェクションの脆弱性が発見されました。product_id GETパラメータは、適切な検証やパラメータ化なしにSQLクエリに挿入されます。攻撃者は時間遅延関数(例: SLEEP)を注入してサーバーの応答遅延を観察し、データベースの動作を推測することで、リモートSQLインジェクション箇所を確認できます。
注: このアドバイザリには、実行可能なエクスプロイトペイロードは意図的に含まれていません。概念実証の詳細は、修正を可能にするためにメンテナーに非公開で共有されています。
/admin/admin/edit_product.php?product_id=<値>
ローカルテスト用URLの例:
http://<ホスト>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0
product_id(GET)admin/admin/edit_product.phpproduct_id パラメータを受け入れ、それをパラメータ化なしでSQLステートメントに含める必要があります。データベースの SLEEP() セマンティクスを使用したタイミングベースの注入試行により、注入成功と一致する測定可能なサーバー側の遅延が発生しました:
SLEEP(6) → 観測された応答遅延 ≈ 6.01秒SLEEP(15) → 観測された応答遅延 ≈ 15.00秒SLEEP(0) → ベースライン応答遅延 ≈ 0.01秒これらの結果は、時間ベースの推測を可能にするブラインドSQLインジェクション箇所を示しています。テスト中に観測されたデータベース名: onlineshop。
この脆弱性の悪用に成功すると、攻撃者は以下を行うことができます:
推定深刻度: 高
product_id パラメータに送信します(テストは SLEEP() のバリエーションで実施)。完全なステップバイステップのPoCは公開アドバイザリから省略されています — 責任ある開示条件に基づく暗号化PoCについては、報告者に連絡してください。
$stmt = $pdo->prepare('SELECT * FROM products WHERE id = ?');
$stmt->execute([$product_id]);
product_id を整数として扱い、それに応じて検証します(例: filter_input(INPUT_GET, 'product_id', FILTER_VALIDATE_INT))。DROP、ALTER、GRANT、または管理者権限を避ける)。(ベンダー/メンテナーの利便性のために含まれています — PoCペイロードを公開しないでください)
sqlmap -u "http://<ホスト>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0" --dbms=mysql --batch --level=5 --risk=3 --technique=T --time-sec=6
発見者: Hafiz Pradana Gemilang
ベンダー / リポジトリ: https://github.com/PuneethReddyHC/online-shopping-system-advanced
免責事項: この公開アドバイザリは、ユーザーを保護するために悪用可能なペイロードを省略しています。完全な技術詳細とPoCは、合意された責任ある開示ポリシーの下で、リクエストに応じてベンダーに提供されます。