Subscribed unsubscribe Subscribe Subscribe

しゃろの日記

CTFのwriteup置き場になる予定(`・ω・´)

CTF2年生になった

1ヶ月後↓

……ということで書きます(`・ω・´)

CTFを始めるまでのお話

文章力が残念なので時系列の箇条書きです……。

  • 高専在学中
    • 授業でC言語を学ぶ(stdio, stdlib, stringくらいはそれなりに使えるという程度)
    • 自由制作みたいな授業で、必要に迫られてJavaC#も覚える(ただしJavaは1年で忘れる)
    • ゲームのメモリ書き換え系のチートで遊ぶのにハマる(仮想メモリ空間やエンディアンのことはここで身についた)
    • 某所にいたプロが「こんなツールを使って解析してるよー」とOllyDbgを紹介しているのを見かける
      →今度はプログラムの動的解析にハマり、プログラムに簡単なパッチを当てたりして遊ぶようになる(ここでx86アーキテクチャに結構慣れた)
  • 就職後
    • 就職してから忙しくなり、しばらくこの分野から離れる
    • しばらくして出向になったものの、出向先で仕様書とかがなかなか回ってこず、「とりあえず自習してて」と言われてアイドル率約70%になる (なお現在もあまり改善されていない模様)
    • 暇すぎて仕方がないので、QAサイトでIT系の質問に答えて暇を潰すようになる(これはこれで知見がたまって良かった)
    • QAサイトの質問から「競プロ」というものがあることを知り、CodeIQやAOJやpaizaにハマる。ついでにRubyも覚える
      f:id:Charo_IT:20151001115959p:plain
      ↑AOJのsolve数が1年でこれくらいになる程度に暇。solve数の割にレーティングが微妙⊂⌒っ*-ω-)っ
    • @ITか何かの記事でDEFCONを知り、DEFCONについて調べていたらhorityさんのブログの記事にたどり着く
    • ksnctfを始める(2014/10)

CTFを始めてからのお話

  • 2014/11
    • 「SECCONオンライン予選の予行演習も兼ねて出てみるかー」というノリで、9447にてCTF実戦でびゅー(サービス問(1pt)と簡単なrev問(25pt)があったので0ptは免れた)
  • 2014/12
    • ADCTF(dodododoが主催した、一日1問出題×25日分というCTF)
       ぱっと見では難しそうでも、一日じっくり考えたり試行錯誤したりしていたらフラグが出た! ということが何回もあり、初心者の自分にとってとても学びが多かったCTF
    • SECCONオンライン予選
  • 2015/01
    • OverTheWireでpwnに挑戦し始める
    • OverTheWireのNarnia, Behemoth全完
    • katagaitai勉強会に参加
  • 2015/02
    • 村人Bを倒す
    • この頃からCTFは片っ端から出る方針にする
    • 情報発信の練習にということで、writeup公開用にブログ(ここ)を作る
  • 2015/03
    • OverTheWireのUtumno, Maze全完
    • Codegateで1問も解けず無事死亡(*´ω`*)
    • 何かB-Sides Vancouver 2015でpwn全完
  • 2015/04
    • PlaidCTFにfuzzi3で参加し、初めてのチーム戦
  • 2015/05
    • ksnctf全完
    • ASIS CTF Quals 2015でバイナリ系がいい感じに解ける
    • scryptosからお誘いを受け、チーム加入
  • 2015/06
    • Hardening 10 MarketPlaceに参加
  • 2015/07
    • katagaitai勉強会2の資料(pwn)をいただく
  • 2015/08
    • SECCON 2015 横浜大会に参加し、無事フリー素材化(白目)

雑なまとめ

CTFを始めるまでにやっていたことがCTFや実務で役に立っているように感じます。

情報収集すること・たくさん手を動かすこと・問題を解いてて詰まったら図を描くこと、大事。

おまけ:常設CTFのお話

pwnの練習でお世話になっている常設CTF

  • OverTheWire……初心者におすすめ
    • Bandit……linuxコマンドの使い方とか
    • Leviathan……簡単なrev問。ここでgdbに慣れた
    • Natas……Web問。スクリプトを書く系のsqliの練習になった
    • Narnia, Behemoth, Utumno, Maze……pwn
      EIP取ってシェルコードに飛ばして終了という問題がほとんどなので実戦でのお役立ち度は限定的だが、pwnに慣れるのには良かった (FILE構造体のvtableを上書きする問題もあったりする)
  • pwnable.kr……問題のレベルが幅広い。pwnに慣れてきたらどぞ
  • ED CTF……難しめだけど深い。お気に入りなので早く全完したい(`・ω・´)