SQL注入各種類の説明と利用(二)
3.一般的なWebサイトアーキテクチャ
一般的なフレームワークによって
具体的にどのようなモデルを採用するかは、掃面ツールや、得られたウェブサイトのデフォルトエラー情報などで得る必要がある.
4.情報の取得、権限の付与
あるポイントに注入があることを知ってから、データベースの内容を取得するには、
2つ以上の
基本的な構文は次のとおりです.
アプリケーションが最初の(元の)クエリから得られたデータを返すと、最初のクエリの後に
もちろん、このような使いやすい文には制限があります.
使用
2つのクエリで返されるカラム数は同じでなければなりません
ふたつ
通常、終端注入の場合にのみ、より速く推測して利用できます.そうしないと、元の
例:
0 x 01カラム数を決定するには:
元の文に一致する列の数が正常に一致するまで、
これは
0 x 02カラムタイプを決定するには:
ここではまず最初の列を数字と推測し,戻り結果が正しくなければ文字と判断する.
それでも正しくない場合は
もちろん、どの方式にも当てはまらない場合があります
注入文は遮断できず、完全ではない
一般的なフレームワークによって
のタイプを判断することができますasp + access
asp + mssql
asp.net + mssql
php + mysql
Jsp + oracle
Jsp + mysql
具体的にどのようなモデルを採用するかは、掃面ツールや、得られたウェブサイトのデフォルトエラー情報などで得る必要がある.
4.情報の取得、権限の付与
あるポイントに注入があることを知ってから、データベースの内容を取得するには、
union
を使用します.UNION
注入UNION
は、データベース管理者が頻繁に使用し、管理できる演算子の1つです.2つ以上の
SELECT
文に接続できるクエリー結果基本的な構文は次のとおりです.
SELECT colum1,colum2,colum3,…,columN FROM table1
UNION
SELECT colum1,colum2,colum3,…,columN FROM table2
アプリケーションが最初の(元の)クエリから得られたデータを返すと、最初のクエリの後に
UNION
演算子を注入し、別の任意のクエリを追加することで、データベース・ユーザーがアクセスできるテーブルを読み取ることができます.もちろん、このような使いやすい文には制限があります.
使用
UNION
データルールの取得:2つのクエリで返されるカラム数は同じでなければなりません
ふたつ
SELECT
文が返すデータベースに対応するカラムは、同じタイプまたは互換性がある必要があります.通常、終端注入の場合にのみ、より速く推測して利用できます.そうしないと、元の
SQL
文が便利に利用できることを知っておく必要があります.UNION
文の構築例:
0 x 01カラム数を決定するには:
UNION SELECT null,null,null,…,null FROM dual
元の文に一致する列の数が正常に一致するまで、
null
の数を徐々に増やします.これは
という原理を利用していますORDER BY
を使用して原語文列の数を決定し、半減ルックアップ法を使用して推測効率を向上させることができます.0 x 02カラムタイプを決定するには:
UNION SELECT 1,’2’,null,…,null FROM dual
ここではまず最初の列を数字と推測し,戻り結果が正しくなければ文字と判断する.
それでも正しくない場合は
null
(バイナリタイプである可能性がある)を維持し、その後、部分的または全タイプの判断を順次完了するもちろん、どの方式にも当てはまらない場合があります
Union
適用されない場所注入文は遮断できず、完全ではない
SQL
クエリー文Web
ページにはSQL
クエリー文が2つあり、クエリー文の列数が異なります.