初心者による勉強法の試行錯誤
CTFの勉強法の推移
1.CTFを知る前 [策謀本] (17.7~18.4)
教授から勧められた「策謀本」を買ったが、当初はC言語始めて半年以内だったためわけわかめ状態で挫折。
この当たりで専門書を買うのがブームになり、本屋でハリネズミを見つけて購入(ここでCTFの存在を知る)。
その後CTFTimeに登録し、ハリネズミ本を読み進めるも知識不足で分からず、積む。
・・・とりあえずやってみて諦めかけた
2.常設問題、ハッキングラボ(18.5~19.9)
何かいいやり方はないかと探している際に、常設問題があることを知り、cpawctfやってみる。
面白いし、writeupがあれば解けるのでちびちびやりながら何とか埋めることができ、競プロ等もやったりしていた。
そんな中でseccon beginnersの申し込みをしようと思ったが時、すでに遅しで終わっていた。
ハッキングラボ本が出たので迷わず買い、kail linuxの設定をしたりwindowsのハッキングをしている間に19年の夏が過ぎた。
・・・常設問題をスローペースで解き、少しずつCTF周りの基本が分かり始めた
3.初心者向けの常設問題、勉強会に参加(19.10~19.12)
19年のseccon beginner 東京を申し込むと無事当選し、他の人たちを見てめちゃくちゃ刺激を受け、やる気が全開になった。
今までは、常設問題や専門書をやったりしていたが目標や参加者たちがイメージできずに楽観していた。 しかし、リアルに解いている人を見たり、することで強くなりたいと心から思った。そこから勉強方法などを調べ始めた。
常設問題を調べまくった結果、picoCTF、over the wireという超初心者でもwriteupを参考にしながらすこし解けるサイトを発見。 これならば、ヒントもあり初心者向けになっているため数をこなして力をつけようと思った。
picoCTFは毎日ひたすらやりこみ、over the wireのbanditを全てやりきった。 NRI secure netwarsも申し込み、無事にこれも当選。面白かったけど、全然解けなかったためもっとやろうと思う。
・・・成長スピードを意識し、他者に勝ちたい、強くなりたいと感じた。
・・・初心者向けの常設で経験を積み、オンライン大会でぶちのめされるを繰り返す
このころから基本知識も必要と感じ、「リバースエンジニアリング、徳丸本、python通信本」など図書館で借りまくった。 しかし、借りすぎて満足していた節があったが、リバースエンジニアリングについては何度も読んだため、一定の知識がついた
4.オンライン大会にも挑戦し、常設をやる(20.1~20.2)
就活もあり、ペースダウンしたがpicoCTFを引き続きやっていき、18,19を両方やり終えた。 オンライン大会等に挑戦するも、難しくてあまり解けない。stringsレベルのしょぼい問題しか解けない。 でもひたすら解いて、writeupを見たりしていた。
・・・このあたりで今の勉強スタイルについて考え直した。
・・・初心者向けの常設+オンライン大会をやっているが1人で全ての分野をまんべんなくやっている
・・・浅く広くが浅すぎ、成長スピードが遅すぎる。これは分野を絞ってやったほうがいいのではないか
5.「Pwn、web」ジャンルを主として挑戦中(20.3~)
分野を「Pwn」、「web」の2つに絞って挑戦をしていっている
やはり数をこなすことは絶対に必要であるため毎日手を動かすが、分野を絞ることで知識が分散するのを防ぐ
常設、専門書(徳丸本、策謀本)等で練習をし、オンライン大会でやってみて成果を見るという方針で今はやる
また変わるかもしれないが、現状はこの形でしばらくやってみて結果を出したい。
まとめ
CTFのおすすめの勉強法や常設問題等がありましたら、教えてもらえるとうれしいです。 ちなみに、以下に自分の知ってるオススメの常設問をのせておくので良かったら参考にしてください。 難しいですが、とても楽しい競技なのでみなさん頑張っていきましょう!
CTFショートカット
・最初はこれ
picoCTFはヒントもあり、writeupも充実しているため、全くIT知識が無い方でも検索力で解けるレベルになってます。 情報系の知識がある方なら入りとしてすごくやりやすく感じると思います。
2018game.picoctf.com 2019game.picoctf.com
2018のwriteup 2019のwriteup ↑ 非常にわかりやすく、とても参考にさせていただきました。 kusuwadaさんありがとうございました。
overthewire.org ↑ banditではssh接続が必要ですが、そのあたりも調べながらやると知識が付くのでおすすめです。
・次はこのあたり
上記をやった後にcpawctfをやると意外と解きやすいと思います。 僕は最初にcpawをやっていて、次にpicoだったためレベルダウンしましたが、picoの次にやるとすごくいいと思います。
企業のCTFなども問題数が少なめなので、じっくり取り組めるためオススメです。 mnctf.info score.maguro.run
・難しいやつ
ctf.lse.epita.fr ksnctf.sweetduet.info
「pwnとオンライン大会用ポータル」
pwn専用の常設です
pwnable.kr
pwnable.tw
オンライン大会です ctftime.org