mayoko’s diary

プロコンとかいろいろ。

CTF で遊んでみた

唐突に ksnctf というので遊んでいたところ, picoCTF のほうが初心者向けでオススメと言われたので, そっちもやってみました。

今までに解いたのをバーッと書いていきます。
ksnctf.sweetduet.info
picoctf.com

ksnctf Easy Cipher

ksnctf.sweetduet.info

まず Cipher っていうのが分からなかったので問題文見た瞬間「は?」って思ったんですが, 暗号らしいです。要するに暗号解読すればいいんですね。
どうせ"FLAG" って言葉あるじゃろと思ったので, とりあえず FLAG が暗号化されてそうなところを探すと, "SYNT" が怪しいです。

で, なんかの暗号の本(エッセイみたいなやつ)で単語をスライドさせていくタイプのやつ(シーザー暗号というらしいです)は知っていたので, まずその可能性を考えたんですが, ord('S')-ord('F') = 13, ... みたいな感じで全部引き算すると 13 になります。なのでビンゴ!ということで全部 13 ずつスライドさせるコードを書きました。で, できた英文を読むと答えが得られます。

CTF のプロに聞いたところ, こういうのはまず 13 を試すのは定石らしいです。

ksnctf #!

ksnctf.sweetduet.info

shebang っていうらしいですね。へぇ。

ksnctf Math II

ksnctf.sweetduet.info

これも見た目「は?」ってなったんですが, これはむしろ競プロやってる人なら簡単なタイプです。

桁数を数えると, およそ 3900 桁です。101 乗すると その数になれば良いので, 求めるべき数は 10^38 と 10^39 の間です。よって, 二分探索ができそうです。巨大な数なので C++ だと余裕で オーバーフローしますが, python なら余裕です。

この調子で picoCTF も書いてるとめっちゃ長くなりそうなので一回切ります。。。