たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

初めてのCTFチャレンジ

CTFというものがあるらしい。
キャプチャー・ザ・フラッグ - Wikipedia


広範囲にITの知識が問われると。


これは


勉強の素材になりそう!!


ということで、数年ぶりのプログラミングやってみました。
実際はプログラミングだけでなく、パケット解析などインフラに近い部分を触ることもあるそう。
でも解析にプログラミングもするのかな。楽しみ。


今回は暗号文からFLAGを見つけ出す問題に挑戦。


サイト:書きサイトの2問目。
ksnctf


解法の流れは下記のように行った。
1.とりあえず「fvzcyr」でググってみるか。
2.シーザー暗号というものらしい。
3.なん文字ずれているか調べてみよう。
4.なん文字ずれているかわかったので、全体も変換してみよう。
5.お、、、FLAG発見!!


課題としては文字の操作があげられるかと思う。文字→数値に変換する。今回の場合ASCIIコードに変換し(ord)、
その値に対して数値を足してズレを計算した。


ASCII文字コード : IT用語辞典


その際に、「大文字」「小文字」で番号のレンジが異なっていることを忘れてはならない。
そうでないときちんと変換できないので、小文字の変換を確認した後は大文字の変換も
プログラムに組み込もう。

 
 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