読者です 読者をやめる 読者になる 読者になる

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 も書いてるとめっちゃ長くなりそうなので一回切ります。。。