ホームページ  >  記事  >  データベース  >  ブラインド SQL インジェクションについての簡単な理解

ブラインド SQL インジェクションについての簡単な理解

WBOY
WBOY転載
2022-06-01 11:47:274923ブラウズ

この記事では、SQL に関する関連知識を提供します。主にブラインド インジェクションに関する関連問題を紹介します。ブラインド インジェクションでは、データベース内でクエリされたデータ結果が 1 文字に切り詰められます。論理的なステートメントの構築. 皆様のお役に立てれば幸いです。

ブラインド SQL インジェクションについての簡単な理解

## 推奨学習: 「

SQL チュートリアル

SQL インジェクション - ブラインド インジェクション

1. 復習

エコー インジェクションは主に、データベース内のデータを Web サイトのページに直接表示するために使用されます。

エラーインジェクションは主にWebサイトのページ上に元のエラー情報が存在し、データベース内のデータを元のエラー情報に表示する場合に使用されます。エラーエコーとも呼ばれます。
原則: ユーザーの制御不能な入力により、攻撃者は悪意のある SQL ステートメントを任意に入力して SQL セマンティクスを変更し、データベースやオペレーティング システムにリスクを引き起こす可能性があります。

リスク: データ操作、ログインバイパス、ファイル操作、コマンド実行、レジストリ操作。

防御: フィルタリング、プリコンパイル。

2. ブラインドインジェクション脆弱性シナリオ

1. データベース内のデータはページに直接表示されず、クエリ結果が判定され、判定結果が画面上に出力されます。ページです。たとえば、ログイン ボックス

2 です。挿入、更新、および削除の構文にはデータ クエリ機能がなく、データベース内のデータはページ上に存在しません。登録、情報変更、データ追加など

3. ブラインドインジェクション原理

Core データベースに問い合わせたデータ結果を1文字に切り詰め、それから同時に論理ステートメントを構築します。データベースへのクエリの結果は、ページ表示が異常かどうか、ページがデモされているかどうかで判断されます。

4.分類

1.boolブラインドインジェクション

該当するデータがデータベース内にあれば正常に表示されますが、そうでない場合は異常となります。

2. タイムブラインドインジェクション

どのようなデータを入力してもページの効果は全く同じであり、ページが遅延しているかどうかでデータベース内のクエリの結果を判断できます。

5. プロセス

1. 疑わしい注入ポイントを見つけ、入力ポイントを見つけ、データベースと対話する場所を見つけます

2. SQL インジェクションに悪意のあるものが含まれているかどうかを判断します。 SQL ステートメントを作成して送信します。ページの応答情報は期待と一致しており、インジェクションが存在することを示しています。
3. データベース名を取得します

1.获取当前数据库名
	and ascii(substr((select database()),1,1))=115
2.获取所有数据库名
	and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata)>0
3. 取得するデータの長さを計算します

and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+
4. テーブルを取得します

5. カラムを取得します
6. データを取得します

6. タイム ブラインド インジェクション

and if(((select database())='a'),sleep(5),0)--+

7. まとめ

タイム ブラインド インジェクションは、エコー、エラー レポート、およびブール インジェクションが発生できる場所であればどこでも発生する可能性があります。ブール型のブラインド インジェクションを実行できる場所ですが、その逆はできません。

8.sqlmap

SQL インジェクション自動化ツールは python2 で開発され、python3 と互換性があります。 sqlmapを利用すると、Webサイトへの人々のリクエストプロセスを実際にシミュレートし、得られたデータを収集・分析・表示することができます。

python sqlmap.py -h	查看sqlmap可使用的参数
                 -u 网站的url	向sqlmnap提供注入点

ブラインド SQL インジェクションについての簡単な理解 –dbs すべてのデータベース名を取得します

ブラインド SQL インジェクションについての簡単な理解

-D ライブラリを指定します --tables 指定したデータベース内のすべてのテーブルに関する情報を取得します


ブラインド SQL インジェクションについての簡単な理解

-D ライブラリを指定します-T テーブルを指定します--columns


ブラインド SQL インジェクションについての簡単な理解

-D ライブラリを指定します-T テーブルを指定します-C 列 1、列2 --dump


ブラインド SQL インジェクションについての簡単な理解

-r 'ファイル名'


ブラインド SQL インジェクションについての簡単な理解

推奨学習: "

SQL チュートリアル "

以上がブラインド SQL インジェクションについての簡単な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。