
Grocery Store Management System 1.0 で発見された SQL インジェクションの脆弱性
Grocery Store Management System 1.0(anirudhkannan 作成のPHP/MySQLベースのWebアプリケーション)の search_products.php コンポーネントにおいて、高深刻度の SQLインジェクション の脆弱性が確認されました。
この問題は、ユーザーが制御する scost パラメータに対する不適切な入力検証と、安全でないSQLクエリの構築に起因します。この欠陥により、攻撃者はSQLロジックを操作し、機密データの漏洩、データの改ざん、またはデータベース全体の完全な侵害につながる可能性があります。
Grocery/search_products.phpこの脆弱性は、未検証のユーザー入力をSQLクエリに直接連結しているために発生します。
数値の製品コスト値を表すことを意図したPOSTパラメータscostが、以下の処理を行わずにSQLのWHERE句に埋め込まれています。
これにより、攻撃者は任意のSQLブール式を注入し、クエリの動作を変更して、ブールベースのSQLインジェクション手法を使用してデータベースの内容を抽出することが可能になります。
この脆弱性は、search_products.phpへの標準的なPOSTリクエストを通じて悪用されます。悪意のある式が入力されると、バックエンドは測定可能な応答の差異(TRUE/FALSEのバリエーション)を返し、ユーザー入力がSQLロジックに影響を与えることを確認します。
scost入力フィールドに対するサーバーサイドの検証の欠如これらの条件が組み合わさることで、攻撃者は意図されたSQLロジックを変更することが可能になります。
この脆弱性は、攻撃の複雑さが低く、認証が不要であり、データベースへの完全な読み取り/書き込み影響があるため、高と評価されています。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
推定重大度: 高 (9.8)
この脆弱性は、scostパラメータに細工された値を渡すことで悪用できます。
攻撃者は以下のことが可能です。
(悪用を防ぐため、詳細なペイロードは意図的に省略しています。)
脆弱性を修正するには:
scostが数値のみを受け付けるようにするパッチが利用可能になるまで: