HTS Realistic missions 4

Hack this siteのRealistic missions 4をやりました。いきなり難しくなったような。

ネタばれ



















Fischer's Animal Products

動物を殺して毛皮などを売っているサイトからメーリングリストのアドレスを盗み出してくれというミッション。

まずトップページのメーリングリスト登録用フォームを使うと、メールアドレスを保存しているデータベースのテーブル名が分かりました。
このテーブルのデータを盗み出せばいいわけで、必然的に攻撃対象はデータベースからの読み出しをしているであろう商品ページとなります。このページのURLは
..products.php?category=1
の様になっていてこのcategory=1の部分を変更すると表示されるデータをいろいろといじれたのでここからSQLインジェクションができそうです。

んでつまったのが違うテーブルからデータを読み出す方法。
SQL Injection Cheat SheetによるとUNIONコマンドを使えばできるとの事でした。

UNIONコマンドを使うポイントは二つのSELECTのカラム数が同じでなければいけないという点。

select item1, item2, item3 from table1 where .... 
union all select <ここがちょうど3つでなければいけない> from table2

このカラム数を調べる為にはORDER BYコマンドを使えば良いらしいです。

以上を上手く使えばクリア出来ます。後は調べたリストをMessege Centerから依頼者に送ればOK.