CTF for beginners in tokyo 2016 Impressions
ってなわけで自己紹介除いた最初のブログ。
2016/10/22(土)に行われたctf4b 東京に運良く当選したので行ってきました。
講座の感想としては
Web
正直に言うと知ってる内容が大半だったかな。と(いやまぁctf4bだからね
ただ、ディレクトリトラバーサルに関しては、
Webアプリの脆弱性に入る前のヘッダ見た段階でApache使ってるのは気づけたけど、
普段使ってるWindows用のApache基準で考えちゃったせいで、今回使われてたラズパイ鯖で動いてるRaspbianのApache2だと構造が違うことに気づけず、
結果的に演習用のindex.phpしか取れなくて、面白いもの取れなかったからもっと視野を広げて覚えるべきだなぁと思った。
あとは単純に勘違いでずーっと.htaccess取ろうと必死になってた(謎
SQLiに関してはもともと苦手だったし、普段チームでctfやるときは強いやつが居るから任せてるから、基礎だけできればいいかなぁと思ったら
演習でも基礎しかやらず、それどころか単純に演習ページの入力欄まっさらでも全部表示されたからちょっと悲しかった(´・ω・`)
Forensics
パケット眺めてあれこれいじってflag出す簡単なお仕事。
演習1のBase64とURLエンコードは普段、適当なWebサービス
kujirahand.com
とか
urlencode.net
とか使ってて、普段shellでとか全然やらないから今回もテザリングに切り替えてやった。一々切り替えるのがちょっとめんどかった。
統計は初めて知ったけど正直
wiresharkは個人的にはプロトコルとか統計から追うよりもTCPストリーム追ってそれっぽいの探したほうが早いイメージ、量にもよるんだろうけど #ctf4b
— koba@WhiteCat (@_wh1tecat) 2016年10月22日
と思ってこんなツイートしてた。
まぁダミーとかギッシリの嫌がらせがしてあるやつとかだったらものすごい便利なんだろうなとは思った。覚えとく。
演習3はbinwalk使うのは直ぐ解ったけど、運営から配布されたlinuxだとVmware Toolsが使えなくてファイルのD&Dが出来ず、
面倒だったからBash on Ubuntu on Windowsでやってみたら何故か処理くっそ遅くて詰みかけた。
まぁ先にやったstringsコマンドでflag出てたんで本番だったらflag取れてたんですけどね。
Reversing
概念とか仕組みは理解できてるけどこれまでいろんな先人様方に上達する方法を聞いてきて、ひたすら読んで考えて数を積むしか無いと言われて挫折しかけて、
SQLiと同じでチームに強いやつがいるからctfではぶん投げてたけど、常設型とかで出てきても全然解けてなかったから
そろそろ本腰入れたいなぁ。と思ってたから凄いちょうどいい機会だった。
そして解った。
俺は普段、割りとマイルールを作ってその通りに動きたい!ってタイプなんだが、ガッツリそれが出た。
演習のアセンブリは16進数表記だからメモも16進数にして・・・解りづれえ・・・ ってか解説スライド10進数にしてる・・・でもなんか10進数で書きたくない・・・ あああー・・・
ってなりながらやってたせいで、マイルール捨てれば演習が切り替える前に余裕で終わってただろうに演習3あたりで追いつかなくなってた。
ちなみに実際にとってたメモを少し貼ると
Q.3 mov [ebp-0x4]<-eax{0} mov eax{0}<-[ebp-0x4]{0} sub eax{0}-0x1 = -1(10) mov [ebp-0x8]<-eax{-1(10)} mov eax{-1(10)}<-[ebp-0x8]{-1(10)} lea edx<-[eax+0x3]{-1(10)+0x3 = 0x2} mov eax{-1(10)}<-[ebp-0x4]{0} imul eax{0}*edx{0x2} = 0x2 mov [ebp-0x8]{-1(10)}<-eax{0x0} A.[ebp-0x8]=0x0(16) 0(10)
っていう感じにどこに何が入るのか一々とって、中の数字を最初は()でくくってたけど、-とかついたら16進数にするの面倒だし、
演習のスライドでは答え10進数になってるから解りやすいように{}でくくるのに直して、
10進数で表記した場合は後ろに(10)ってつけることで表したりとかしてた。
見直してみてもめんどくさいなぁ・・・ でもやっぱ見直しても解りやすいんだよなぁ・・・
ってなわけで本腰入れて始めるためにはもっと楽だけど解りやすいマイルール作ってからやるべきだなと思った。
まぁでもそれを知れただけでもとてもいい機会だったと思う。
本当はこの記事で感想とwriteupまとめて書く予定だったけど予想以上に長くなってしまったので分けて書こうと思います。