BSidesSF CTF Writeup
Harekazeで参加。チームは3837ptで18位でした。 私は8問解いて1451pt入れました。
[Crypto 450] vhash
—- Due to a bug, the challenge might be easier than intended. Enjoy the free points! —-
サーバサイドのスクリプトがバグっていて、ハッシュが固定されている。cookieのusernameを書き換えるだけ。
FLAG:180e2300112ef5a4f23c93cfdec8d780
[For 40] easycap
TCPストリームを読むと書いてある。
FLAG:385b87afc8671dee07550290d16a8071
[For 666] matryoshka
地獄。有名なものからマイナーなものまで、様々な形式で多重にアーカイブ化されている。 途中までst98さんが解いてくれていた。詰まったところだけ下に記述する。
dact
fileコマンドを叩いても判別できなかったので、「"0x444354c3" magic」などでぐぐっているとDACT compressed dataとわかった。aptでアーカイバを入れて展開した。
freeze
fileコマンドを叩くと frozen file 2.1
と表示され、ぐぐると freeze
というコマンドに行き当たる。しかし、展開方法がなかなか見当たらなかった。悩んでいると、st98さんがFedoraのパッケージとGentooのパッケージを発見。Gentooのものを落としてビルドして、unfreeze
コマンドで展開した。
zpaq
7kSt
から始まるファイルが出てきて、ぐぐるとZPAQという形式だとわかる。しかし、Ubuntu 14.04のaptで入る zpaq
コマンドが古すぎて展開できなかったので、最新版のソースを落としてビルドした後、展開した。
展開後
全て展開し終えると、FLAC形式のファイルが出てくる。ビットレートが8bitで、サンプリング周波数が1Hzというあたりから、データ部分がテキストになっているのではないかと思った(わざわざFLAC(可逆圧縮)を使っていることもヒントになるかも)。というわけで、一旦WAVEに変換したのだが ffmpeg
のデフォルトだとビットレートが16bitに変換されてしまい、ここで無限に時間を溶かした。結果的には下のような感じでうまくいく。
$ ffmpeg -i file.flac -acodec pcm_u8 file.wav $ strings file.wav RIFF WAVEfmt LIST INFOISFT Lavf57.56.100 dataw .. - ... - .... . .. -. -.-. .-. . -.. .. -... .-.. . ... .... .-. .. -. -.- .. -. --. -- --- .-. ... . -.-. --- -.. .
モールス信号がでてきたので、適当なデコーダに投げる。
ITSTHEINCREDIBLESHRINKINGMORSECODE
[For 150] Latlong
渡されるファイルに対して file
コマンドを叩くとWAVEであることがわかる。Audacityなどで色々いじってみたものの、何もわからないので放置していたが、運営からヒントが出た。
Hint - “Ax25 will lead you in the direction”
ぐぐると、AX.25というアマチュア無線で使われるプロトコルがあるらしい。デコーダを探すと、Releases · h2so5/Invasive · GitHubを見つけた。
flag{f4ils4f3c0mms}
これヒントなしでどうやって解くんだろう…
[Pwn 30] easyshell
シェルコードを送るだけ。
FLAG:c832b461f8772b49f45e6c3906645adb
[Rev 10] Easy
strings
FLAG:db2f62a36a018bce28e46d976e3f9864
[Rev 75] Skipper
uname -n
の結果、/proc/version
の内容、cpuid命令の結果をそれぞれ正しいか比較している。1番目と2番目は chroot
を使って突破できたが、3番目をどうするか悩んでいた。苦し紛れにバイナリ中の比較対象の文字列を GenuineIntel
に書き換えるとFlagが出てしまった。(入力文字列や比較対象の文字列がFlagの生成に影響があるのかと思っていた)他の人のWriteupを読むと、認証部分をデバッガで飛ばしても良いらしく、つらい気持ちになった。
FLAG:f51579e9ca38ba87d71539a9992887ff
[Web 30] easyauth
cookieのusername変えるだけ。Flagとっておくの忘れてた。
感想
Forensicsしか解けないのつらい。