つい最近、私たちのクライアントは侵入テスト会社によってサイトをテストされました。レポートでは、あるフィールドで何らかの形でSQLインジェクションが実行される可能性があると述べています。それらは、DBサーバーのバージョンと検出したいくつかのテーブルのみを示しています。
そのフィールドでSQLインジェクションを一生懸命実行しようとしましたが、関連する結果を得ることができません。そのフィールドへのSQLインジェクションの問題は私が推測することです:
- フィールドはぼかし時にAJAXによって検証されます
- フィールドにはJS検証があり、入力は数値のみである可能性があります(他の文字は削除されます)
- フィールドのAJAX検証は、SQLを使用してDBに値を検出できるかどうかを尋ね、yesの場合は1を返し、そうでない場合はfalseを返します(単純
SELECT 1 FROM table WHERE column = '{$value}'
) 。 - 次に、検証メソッドはtrueまたはエラーメッセージを返し、これはJSON形式でフォームに返されます
このすべてのために、私はいくつかのデータを返すSQLインジェクションを実行する方法を知りません...私は挿入、更新、削除クエリを実行できることを知っているので、確かにSQLインジェクションがありますが、選択からいくつかのデータを取得する方法このフィールドとその検証方法を使用してクエリを実行しますか?
HEY GUYS! 「SQLインジェクションはありますか?」とは尋ねていません。または「SQLインジェクションは悪いことですか?」-SQLインジェクションがあり、それが非常に悪いことは知っていますが、私の質問は、上記の条件を知っている間にデータを取得するSQLインジェクションをどのように実行できるかです...
下のコメントは役に立たない...