SECCON2015オンライン予選
ViibarのAdventCalendarの2015/12/07分のネタも兼ねてます。
初級者なので初級者らしく簡単な問題のWrite-up。
一緒に参加していた方のQiitaの記事 ->
先に感想っぽいもの
- 開始時からしばらくの間は二日酔いで頭痛がひどかった・・・
- あとLinuxの実行環境がいまだにCentOS6.5だったりするのでGLIBCのバージョンが合わなくて実行できないケースが結構あって辛い・・・
- CTFで使う環境を決めて用意しないとつらいのでなんとかしないと、という毎度の振り返り
- あとは単純に功夫が足りてない
Writeup
Reverse-Engineering Android APK 1
Binary100の問題。
apkの解析というとapktoolをつかってsmaliを読むのが思いつきましたが、今の環境には何も入ってないのでやったことないけどjarからデコンパイルを試してみることに。 dex2jarをつかってjarファイルに変換してJD-GUIでコードを見てみる。難読化とかされてないのでかなり普通に読めるコードになってますね。
真ん中あたりのフラグワードっぽいのがあるので(1000 + calc()) * 107
の結果を求めればオッケーなことがわかります。
calcについてはlibcalc.soをロードしてcalcを呼び出しているので逆アセしてみればオッケー。
自分はIDAさんがFreeでLinuxは逆アセできないのでobjdumpで見てみると単純に7を返しているだけなので計算すればそれがフラグワードですね。
Unzip the file
Crypt100の問題。
パスワード付きの暗号化ZIPを解凍して中からフラグワードゲットする問題。
さすがにBrute Forceはないなと思っていたので、内容を確認するとbacknumber08.txt
とかテキストファイルが2つある。
これが過去のSECCONのバックナンバーでWebで検索すると出てくるので、そこからファイルを引っ張ってくると既知平文攻撃ということでpkcrack
先生でサクッと復号できる。
このflagファイルがZIP形式なんですが、内容を見るとdocxなのがわかる。
word/document.xmlの内容からフラグワードを引っ張ってきて入れたらincorrect
だと言われてなんで?ってなったんですが、ファイルをdocxにしてワード上でフラグワードをコピペするとスペースがあったという罠でした。
Connect the server
Web/Network100の問題。
ブラウザでアクセスしたら落ちてきたファイルにフラグがあったので整形して入力したらおわた。
時間足らなかった系
下記意外にも手を出してたけど手がかりがつかめたのだけ。
Steganography 1
ヘッダを見るとgifなんだけど内容的にサイズが大きいので中身を眺めてたらPNGがあるのがわかったのでPNGを切り出す。 PNGもだいぶサイズがでっかかったので何かあると思ったけど取り組んだのが終了30分前だったのでここでタイムアウト。 JPGとかも入っているぽい感じなんですかね。