web-dev-qa-db-ja.com

SQLインジェクションの手法(ブールベース、UNIONクエリベース、スタッククエリ、時間ベースのブラインド)

これら2つのSQLインジェクション手法について知りたいのですが。 SQLデータベースの勉強を終え、先生がSQLインジェクションについて教えてくれたので、このトピックに興味を持つようになりました。これを自動的に行うツールを発見しましたが、脆弱なパラメーターが特定されるステップのみを理解しました。

ありがとうございました

1
d. fritoti

ブールベースのSQLインジェクションは、サーバーが情報を返さない場合に役立ちます。 sqlステートメントがtrueまたはfalseを返すかどうかに基づいて応答が異なると判断できる場合、サーバーが情報を返さなくても、後で情報を取得する方法があります。

たとえば、パスワードフィールドがブールベースのSQLインジェクションに対して脆弱であり、正しいパスワードを入力した場合、 'And 1 = 1-SQLサーバーにログインします。同じことを1 = 2で行うと、無効なパスワードと表示されます。

その攻撃ベクトルにselectステートメントを挿入しようとしても、何も返されません。

これは、ブールベースのSQLインジェクションが役立つ場所です。言う攻撃ベクトルを作成できます

SQL疑似コード:(データベースの最初の列の最初の文字の25より大きいASCII値)

それがあなたをログインさせるならば、あなたは、あなたがそのキャラクターを手に入れるまで、それが55よりも大きい、と言うことができます。次に、完全な列名を取得するまで、2番目の文字で同じことを行うことができます。

すべてのテクニックを駆け抜けることはできませんが、そこにはたくさんのリソースがあります。訓練するための最良の方法は、脆弱なものを回転させることだと思います。次に、sqlmqpを実行し、burpスイートなどを介してトラフィックをプロキシします。次に、ツールが実行していることを正確に確認できます。

3
joe