いくつかの脆弱性スキャナーを使用して私のサイトをチェックしたところ、ブラインドSQLインジェクションのインスタンスが返されました。ただし、アドレスバーに次のように入力してこの脆弱性を悪用しようとしても、何も起こりません。
http://www.example.com/articles.php?id=-1' or 68 = '66; DROP ALL TABLES; --
これが機能しない理由はわかりません。すべてのテーブルを削除するためにアドレスバーに入力する必要がある正しいテキストは何ですか(そして、はい、これをサイトのバックアップコピーでテストしています)?
Webアプリケーションのvast majorは、クエリのスタックを許可しません。 PHP/MySQLアプリケーションを使用すると、mysqli::multi_query()
またはmysqli_multi_query()
関数を使用すると、クエリのスタックが可能になります。
これらのシステムは、サブ選択、ユニオン選択、ブラインドSQLインジェクション、_into outfile
_、またはloadfile()
を使用して利用できます。 SQLMapとHavijはどちらも、SQLインジェクションの利用を自動化するツールです。 SQLMapは、幅広い機能を備えた優れたツールであり、さまざまなインジェクションとDBMSをサポートしています。
サイトでアポストロフィ('
)を使用していない場合は、次のようにしてみてください。
http://www.example.com/articles.php?id=-1; DROP ALL TABLES; --