初めてのCTFチャレンジ
CTFというものがあるらしい。
キャプチャー・ザ・フラッグ - Wikipedia
広範囲にITの知識が問われると。
これは
勉強の素材になりそう!!
ということで、数年ぶりのプログラミングやってみました。
実際はプログラミングだけでなく、パケット解析などインフラに近い部分を触ることもあるそう。
でも解析にプログラミングもするのかな。楽しみ。
今回は暗号文からFLAGを見つけ出す問題に挑戦。
サイト:書きサイトの2問目。
ksnctf
解法の流れは下記のように行った。
1.とりあえず「fvzcyr」でググってみるか。
2.シーザー暗号というものらしい。
3.なん文字ずれているか調べてみよう。
4.なん文字ずれているかわかったので、全体も変換してみよう。
5.お、、、FLAG発見!!
課題としては文字の操作があげられるかと思う。文字→数値に変換する。今回の場合ASCIIコードに変換し(ord)、
その値に対して数値を足してズレを計算した。
その際に、「大文字」「小文字」で番号のレンジが異なっていることを忘れてはならない。
そうでないときちんと変換できないので、小文字の変換を確認した後は大文字の変換も
プログラムに組み込もう。
f = open("easycipher.txt") text = f.read f.close for j in s.chars do for j in text.chars do check = j.ord check += i if check > 122 then check = check - 26 if 65 <= check && check < 65+26 then check += 13 if check >= 65+26 then check -= 26 end end if 97 <= check && check < 97+26 then check += 13 if check >= 97+26 then check -= 26 end end print(check.chr) end