この記事では、SQL に関する関連知識を提供します。主にブラインド インジェクションに関する関連問題を紹介します。ブラインド インジェクションでは、データベース内でクエリされたデータ結果が 1 文字に切り詰められます。論理的なステートメントの構築. 皆様のお役に立てれば幸いです。
## 推奨学習: 「SQL チュートリアル 」
SQL インジェクション - ブラインド インジェクション1. 復習 エラーインジェクションは主にWebサイトのページ上に元のエラー情報が存在し、データベース内のデータを元のエラー情報に表示する場合に使用されます。エラーエコーとも呼ばれます。
原則: ユーザーの制御不能な入力により、攻撃者は悪意のある SQL ステートメントを任意に入力して SQL セマンティクスを変更し、データベースやオペレーティング システムにリスクを引き起こす可能性があります。
2 です。挿入、更新、および削除の構文にはデータ クエリ機能がなく、データベース内のデータはページ上に存在しません。登録、情報変更、データ追加など
Core データベースに問い合わせたデータ結果を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)>03. 取得するデータの長さを計算します
and (select length(group_concat(schema_name)) from information_schema.schemata)>10 --+4. テーブルを取得します
5. カラムを取得します
6. データを取得します
and if(((select database())='a'),sleep(5),0)--+
python sqlmap.py -h 查看sqlmap可使用的参数 -u 网站的url 向sqlmnap提供注入点
–dbs すべてのデータベース名を取得します
SQL チュートリアル "
以上がブラインド SQL インジェクションについての簡単な理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。