SU CTFに出た(後編)
"Touran City-1" recon 150
電話使用者のフルネームを見付けろという問題。
reconなのにphone_backupとかいうファイルを渡されて中にはANDROID BACKUPとか書いてある。
展開できるかなぁと思って調べてみるとJava製のクソっぽい展開ツールは見つかったけど気持ち悪いのでさらに探すと http://forum.xda-developers.com/showthread.php?t=1572600にdd if=mybackup.ab bs=24 skip=1 | openssl zlib -d > mybackup.tarでできるよという記述を見付ける。
tarを展開するとAndroidにインストールされていたアプリ一覧が出てくるが、問題文が"Monsters Inc. has decided to..."から始まるようなものなのでおそらくinc.monsters.commandserviceが本命とわかる。
中を見てみるとapkファイルとアプリケーションの設定ファイルが手に入る。
apkを逆コンパイルして眺めるとhttp://ctf.sharif.edu:8085/と通信していることがわかるのでとりあえずブラウザでアクセス。ログインを要求される。
とりあえず設定ファイルに書かれていたdeviceidとpassword(c6bce:tj4d67hwrfs)でログインを試みたら入れた。しかしNO MESSAGESとか言われる。
ここで放置して他の問題をやっていたのだけど、あるときisAdminとかいうCookieが記録されているのに気付き、どの問題だ?と思って調べてみたらこの問題のものだとわかった。NOと設定されていたので迷わずYESに書き換えてリロード。
いっぱい出てきてわからん、がソースを見ると各選択肢にdeviceidらしきvalueが設定されているのでc6bceで検索して名前ゲット。
Flag: Lenna Aubut
面白い問題ではあったけどどう考えてもreconではないような・・・
"Our bank is yours" web&forensics 200
なんとも説明しづらいんだけども、シナリオとしては"XSS入りのオンラインバンキングへのリンクを踏まされてしまい、暗証番号入力用のスクリーンキーボードの配列とマウス座標が1秒おきに送信されてしまう"みたいな感じ。
問題文として渡されるpcapファイルの意味さえ読み解ければこの問題はやるだけ、だけど死ぬほどめんどくさかった。
61534がID、4793162305がパスワード。
XSS入りリンクを送るパケットもSMTPで記録されているので、あとはオンラインバンキングのサイトにアクセスして入手したIDとパスワードでログインするだけ。
Flag: 1bcef0620c8505a894fa61d911029c07
"Commercial Application!" reverse 200
今度はAndroidアプリとAESの合わせ技みたいな問題。
作った順序としては逆なんだけどGuess the numberのプログラムをちょっと弄れば解ける。
暗号文が逆コンパイルしたプログラムから得られるのであとは鍵とIVを見つけ出せばいい。
じゃあどこにあるんだ、ということでさらに読み進めていくとどうやらSQLでどこかから読んでるっぽい。
APKを展開した下assetsディレクトリにdb.dbなるあからさますぎるファイルがあるので適当に読む。
列名が意味わからんが例によってプログラムを読み返すとe列がIV、f列が鍵らしい。
あとはやるだけ。
Flag: fl-ag-IS-se-ri-al-NU-MB-ER
"Reverse Me" reverse 200
簡単なWindowsのreversing。Ollyでステップ実行して1文字ずつ調べていった。バカなので簡単な解き方を知らない。
Flag: BZ9dmq4c8g9G7bAY
まとめ
イラン人は信用ならん
SU CTFに出た(前編)
チームTakedashiで出て1790ptで36位でした。微妙?
Sharif Universityとかいうところが主催しているらしい。イラン?
以下writeupですが長くなったので2つの記事に分けます。
"What is this" steganography 20
与えられた2枚の画像を重ねるだけ。
Flag: AZADI TOWER
"Guess the number" reverse 30
jarファイルが与えられるので逆コンパイル。
my_number / 5 == guess_numberなので、引数に309137378を与えて実行。
Flag: a7b08c546302cc1fd2a4d48bf2bf2ddb
"Recover deleted file" forensics 40
extundelete --restore-all disk-imageでELFが出てくるので実行して終わり。
Flag: de6838252f95d3b9e803b28df33b4baa
"Iran Pro League" web 80
解けないなぁと思って放置してたけど終了50分前に解けた。
ただのSQLiで、SELECT * FROM information_schema.columnsというような感じの文を実行させてテーブル一覧を抜き、flagで検索したらtable_schema: corner、table_name: flagとかいうのが見つかるのでSELECT * FROM corner.flagを実行させる。
http://ctf.sharif.edu:55474/?p1=corner&p2=flag
Flag: eca883cb69ad6614d487c525a7d5d2a3
"Hear With Your Eyes" steganography 100
steganoでWAV渡された瞬間どう考えてもスペクトルに何か描いてあるタイプの奴なのでスペクトルを吐かせる。
Flag: e5353bb7b57578bd4da1c898a8e2d767
スペクトルの解析にどっかで拾ってきたFFTのサンプル改造した物使ってるんですが誰かいいツールあったら教えてください。
@misodengaku つ Sonic Visualiser
— akiym (@akiym) 2014, 9月 28
感謝です
"Huge Key" crypto 100
AESで暗号化されたファイルと暗号化に使ったスクリプトが渡される。
よく読むとキーは先頭2byte以外0x00なので総当たりで解く。
間違えてPKCS7として処理させてたら死ぬほど遅かったのでParallel.Forでやってるが、実際実行すると一瞬で終わるので出力からflagで検索かけると見つかる。
Flag: e3565503fb4be929a214a9e719830d4e
CSAW CTF 2014 Qualification Roundに出た
bonsaiとかいう謎のチームに混ぜて貰って参加した。結果は43位らしい。プロの多いチームだ
みんなで集まってワイワイやろうやみたいな話になって都内某所で合宿みたいなことをした。
自分で解いたわけじゃないんだけどまぁやったところだけまとめてみる。
trivia
retとlivectfのやつを解いた
psifer school 200
ステージ1~3まで別々の暗号方式で暗号化された文章が出てきて、復号化してキーを見つけ出して送り返す、を1ステージ辺り10秒でこなす、みたいな問題。
ステージ1は単なるシーザー暗号、ステージ2は転置式暗号?(よくわかってない、ぼくに転置じゃないすかこれって言ってきた人顔と名前一致してないので連絡貰えると嬉しいです)、ステージ3はヴィジュネル暗号。
自分で解けたのはステージ1とステージ3がヴィジュネル暗号であるということを見付けたところぐらい。結局は__math氏がサッと解いてしまった。プロだ
weissman 300
アーカイブから圧縮されたままのファイルを切り出してくるやつ
圧縮されたファイルを展開しようとしてハッシュ形式がわからなくて詰んだやつ
徹夜で展開ルーチンをCで書いていたらなんかガバガバなことになってどうにもならなくなったので仮眠を取ってからC#で書き直した。
ハッシュ形式さえわかっていれば解けていた、かもしれない。
結局はチーム内のプロ(こちらも顔と名前が一致しない、確かライブか何かに行っていた方)が無理矢理解いてしまった、すごい
おはり
みんなでワイワイ問題を解くのは楽しかったです。また機会があればやりたいですね。
あと銭湯で鍵を無くしかけた件に関しては本当にご迷惑をおかけしました。完全に厳しい。
ALPSの謎テンキー
秋葉原の東京ラジオデパートで特価50円で売っていた謎テンキー(元は950円だったっぽい)を2つ買った、のはいいんだけどピンアサインが完全に謎なので適当に調べた。
一昨日ラジオデパートの1階か2階の処分品コーナーで3つぐらい売ってたうちの2つを買ったので運が良ければまだ残ってるかもしれない。
回路図にしてみれば中身が理解できるかと思ったら全然そんなことはなかった。任意のスイッチを押すとそれに繋がるピン間が導通する、例えば5のスイッチを押すと3ピンと7ピンが導通する、しかしどうも間に抵抗が入っているらしく30Ωぐらいの抵抗がある、抵抗測れば同時押しが検出できるとかそういうことなのかな?
No cON Name CTF Quals 2014に出た
おい竹田氏のせいでScoreBoard落ちたぞ。 pic.twitter.com/qbq2hFWiCV
— むにむに (@yagihashoo) 2014, 9月 13
肝心の競技の方は100ptしか取れませんでした
mlab CTFに出た
mlabCTF Linux challenge(#mlabctfl4b)を開催した | In the Spica
身内で試験的?に初めて企画したものなので無名どころの騒ぎではないんだけど楽しそうなので出てきた。
結果は1位だったけどまぁ全体で20人ぐらいだしそんなもんなのかなという感じ。
以下開催者による問題解説(mlabCTF Linux challenge (#mlabctfl4b)の答えと反省 | In the Spica)には載せられていないLv3問題のwriteup。問題が入ったVMはここからダウンロードできる。
42.[Trace]
この中から最後に編集したファイルを見付けろ、という問題。
開催者本人がvim好きなのを知っていたし、そうでなくとも開始直前の説明でvim好きをアピールしていたのでvimなんだろうな、と思ってホームディレクトリを眺めると.viminfoがある。
これでFLAG_flag-9.txtが得られる・・・のだけどFLAGの形式が指定されておらず実質解けたのにsubmitできなかった。残念。
43.[Can not remove.]
fileとquestionという2つのファイルがあり、fileを削除してquestionを実行すればFLAGが得られる、けどfileが簡単には削除できない、という問題。
つい最近似たような問題を解いたのでquestionを1つ上のディレクトリに移動して実行したらFLAGゲット。
FLAG_NANTUTTE_TUCCHATTA
44.[Can you read?]
question44という謎のファイルがあって問題文は"Read question44.bmp"。
とりあえずSSHでWindowsに持ってきて表示してみるとまともに表示されない。
普通には読めないが、バイナリエディタのビットイメージ表示で続きがなんとか読めたので読んでFLAGゲット。
FLAG_MNGTIMEKRR
46.[????]
45は解けなかった、けど代わりにファイルだけはあったけど問題が公開されずsubmit出来なかった46の方を。
question46.docxというファイル名を見た瞬間なんとなくわかるけどこんな感じのドキュメントが渡される。
docxが出てきたらとりあえずZIPとして解凍、するとバラバラに並んでいた画像ファイルが連番で出てくる。
FLAG_C@nUR3@d?
感想
初開催でかなりごたついていたけれど楽しかったです。全部の問題にFLAG凡例付けるのは必須なんじゃないかなと思いました。
今回はCTFというよりはむしろLinux実習という側面(というかこっちがメインらしい)もあってかなり簡単でちょうど楽しめるぐらいでした。次回も楽しみにしてます
SANS Netwars Tournament 2014に出た
Final scores for Netwars in Tokyo. Well done to all the students! pic.twitter.com/n4g178NVwR
— timmedin (@timmedin) August 31, 2014
というわけで5位だった。
ステッカー(講師に質問した人は全員貰える)とCTFで5位以上が貰えるメダル。ギリギリ。
内容に関してやCTFのwriteupについては余り詳しく書けない(制限されてる)のが残念ですが、とにかく濃い内容で楽しかったです。
講義やった後CTFみたいな形式ってかなり貴重な機会だと思います。しかも交通費補助があったりいろいろすごい。
また来年とかもやるのであれば興味ある人はどんどん参加すればいいと思う。