ハックバーを使用して、WebサイトでSQLインジェクションを実行してみました。サーバーはSQLエラーに応答しませんでした。
私もsqlmapを使ってみました:
sqlmap -u http://website/login.php?op=login --dbs
sqlmap -u http://website/login.php?id=1 --dbs
[10:06:33] [CRITICAL] all tested parameters appear to be not injectable.
だから私の質問は:Webサーバーがエラーを表示していなくても、SQLインジェクションを取得することは可能ですか?
はい、それはBlind SQL Injectionと呼ばれ、非常に困難ですが不可能ではありません。
多くのtrue/false値をクエリできる場合、それはコンテンツベースのブラインドSQLインジェクションです。
もう1つの一般的な方法は時間ベースのブラインドSQLインジェクションであり、基本的には、データベースに時間のかかる操作を実行するように指示します。 Webサイトがすぐに応答を返さない場合、WebアプリケーションはブラインドSQLインジェクションに対して脆弱です。ほとんどの場合、スリープ操作が使用されます。
yoursite.com/index.php?id=1337 and if(1=1, sleep(42), false)
ページができるだけ早くリロードしない場合は、脆弱です。
ブラインドSQLインジェクションと呼ばれる概念があります。パラメータはインジェクションに対して脆弱ですが、エラーはプログラム内から内部的に処理され、攻撃者はエラーメッセージを表示できなかったり、エラーが発生したりする状況を扱います。
チェックアウト このチュートリアル 、それはより詳細に物事を説明します。