2014年3月9日日曜日

SECCON 2013 CTF 全国大会 write up [Hanoi]

[Hanoi]

1日目の終了30分前に公開された問題です。

まず
http://han01.tower/
にアクセスする。

ID/Passを入れると先に進めそうだが、当然分からない。

下にあるUSERのリンクは
readfile.php?filename=id.txt&accesscode=17d976822ca25f949ff8f552fd00ff3d
となっていて、クリックすると、そのファイルと思われる内容が表示された。PASSの方は後述。

accesscodeは"id.txt"のMD5なので、
これを、
readfile.php?filename=index.php&accesscode=828e0013b8f3bc1bb22b4f57172b019d
として開くと、index.php が表示された。
-----
Access granted to index.php!
if ($_SERVER[REQUEST_METHOD] == 'POST')
{
 echo "ACCESS DENIED!
";
}
//
// stage1:
// KEY{!2345&QwertY}
// Hint to Next Step:
// Did you inspect whole web contents on this server?
//
?>
-----
1つめのフラグをゲット。


画面下部のPASSのリンクをクリックしても、USERと同じ様には表示されない。
accesscodeがid.txtの時と同じなので、これをpass.txtのMD5に置き換えると内容が表示された。
daemon:fb0d7f74e509b6a4a9dd10eb8179122b36209fcb
backup:a48f53309f72df9fe7124c65605c328c0c4dd415
これをパスワードーに突っ込めば…と思い、いくつかのオンラインサイトで試してみるも解読できず。(あとで聞いたのですが、これは改行込みの文字列のハッシュ値で、撹乱ネタだった様です。)

また、チームメイトが readfile.php で readfile.php 自身を表示させてみると、このプログラムで表示できるファイル名が index.php, id.txt, pass.txt, readfile.php に制限されていることが分かった。


初日終了後、ホテルで作戦会議。
pass.txt のハッシュは、フォーマット的にはSHA1ハッシュ値と思われるが、チームメイトが john the ripper に入れてもやっぱり答えが出てこない。何か違う方式かな?と思いつつも分からぬまま…。



2日目
1つめのフラグを取得した際のメッセージに従ってチームメイトがniktoでスキャンすると、こんなのが。
+ OSVDB-3093: /squirrelmail/src/read_body.php: This might be interesting... has been seen in web logs from an unknown scanner.

http://han01.tower/squirrelmail/src/read_body.php
とすると、確かに動いてる。

ログイン画面にいく。
http://han01.tower/squirrelmail/src/login.php

ここに、昨日見つけたファイルに入っていた daemon, backup で認証できるかも!と思ったものの、パスワードが解析出来ずログインはできず。
じゃ、このリスメールに何か脆弱性があるのかな?と探してみるが、インストールされていたのは最新バージョンで分からず。


しばし時間が経って…。
チームメイトが最初のページの塔を動かすgifアニメのファイル top.gif の最後に、pcapらしきテキストが入っていることを発見する。
これはオンライン予選の時にあったのと同じではないですか!
早速別のチームメイトがファイルを切り出して確認したところ、10.100.6.3 に、10.100.6.1 の逆引きクエリを投げていた。
実際に引いてみると以下の様に。

$ dig -x 10.100.6.1 @10.100.6.3
; <<>> DiG 9.8.3-P1 <<>> -x 10.100.6.1 @10.100.6.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27125
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;1.6.100.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.6.100.10.in-addr.arpa. 3600 IN PTR hanoi.
;; AUTHORITY SECTION:
10.in-addr.arpa. 3600 IN NS haruna.great.

hanoi ねぇ…。FLAGに入れてみても反応は無し。
手詰まりのまま終了。


han01 と hanoi の違いをもっと強く疑問に思ったり、
10.100.6.1
10.100.6.3
があるんだから、
10.100.6.2
もあるんじゃないの?な思考に至らなかったのが残念。



0 件のコメント:

コメントを投稿