初心者が ImaginaryCTF 出てみたので WRITE UP 書いてみた
CTFを解き始めてまだ数ヵ月の自分ができる範囲でやってみた。
(まぁ、といっても解けた問題は少ないんですが...)
- 解けた問題一覧
- Chicken Caesar Salad (50pts) - Crypto
- Hidden (50pts) - Forensics
- Imaginary (100pts) - Misc
- Spelling Test (100pts) - Misc
- Vacation (100pts) - Forensics
- Lines (150pts) - Crypto
Chicken Caesar Salad (50pts) - Crypto
これはCaesar cipherなので、cyberchef等で探せばすぐに終わります。
qkbn{ePmv_lQL_kIMamZ_kQxpMZa_oMb_aW_pIZl}
Hidden (50pts) - Forensics
.psdファイルなので、フォトショップのファイル(?)らしい。
なので、以下のサイトを用いて行うと
https://www.photopea.com/
ictf{wut_how_do_you_see_this}
が赤のボックスの後ろに隠れている
Imaginary (100pts) - Misc
netcatでサーバに繋ぐと数学の問題が出てくるのでそれを解いて送り返すというのを300回行うことになる。ただ、まれに問題ではなく文字列が問題として出てくることがあるので例外として処理する必要があるっぽい。
なので、pythonで処理させて解いてみると以下のようなフラグが入手できる
#Spelling Test (100pts) - Misc
wordがlistで出てくるのでgooglespreadsheetで関数を用いて一括翻訳し翻訳できないところをlistとして抜き出す。それを予測の翻訳で差分をとってflagが出る。
⇒ictf{youpassedthespellingtest}
#Vacation (100pts) - Forensics
以下の写真の場所を特定し、緯度経度をflagとして答えを出せというものらしい
画像検索すると全く異なる場所に飛ばされてしまうので、画像の電柱の旗から「city of south lake tahoe」の文字が読み取れと検索すると場所が出てくるので、あとは「sugar pine bakery」と検索すると詳しい場所が特定できる。
flagは「38.94730200596602, -119.96089901908834」を四捨五入してictf{38.947_ -119.961}
となる。
#Lines (150pts) - Crypto
RSA暗号と似たような形式の問題で単純な有限体の計算を求められている感じです。
ここでメッセージはmsg = bytes_to_long(b":roocursion:")
より
\begin{align}
flag=\frac{encrypt(flag)*msg}{encrypt(msg)} \ \ \ mod\ p \\
\end{align}
以上のように計算するとictf{m0d_4r1th_ftw_1c963241}
というflagを入手できる。
#解いた感想
数ヵ月なのでweb,pwnの問題が全くと言っていいほど解けないので要練習かなぁ...としみじみ思いました。
初めてQiita使ってみたので誤植等がありそうで怖いですがなにとぞご容赦ください...