Winja CTF 2021

久々に一人で参加した。最終結果は53/112だけど、トップがずば抜けてその後って感じなので渋い。

問題の出し方がおもしろかった。

f:id:Bigdrea6:20210306204826p:plain

建物とかをクリックすると問題が現れる。ただ見づらい

解けたやつ二問と途中までいったやつ二問を書く。

Hazzy(250pt)

chal.gifが渡される。数字がたくさんでてくるので、静止画に直して順番に書き出していく。

オンラインでGIFをJPGに変換

数字が25までなので、26文字のアルファベットに当てはめていけばいいことが分かる。

適当にコードでも手作業でもいいから直す。

#solve.py (python3)
num=[15,13,7,19,15,6,21,14,14,25,12,15,12] al="abcdefghijklmnopqrstuvwxyz" print("flag{Hazzy",end="") for i in range(len(num)): print(al[num[i]-1],end="") print("}")

flag : flag{Hazzy_omg_so_funny_lol}

(最後に"?"あったかも。忘れた)

これ、"_"を自分でいい感じに入れなきゃいけないのは良くないと思う。

 

Crucial First Aid(300pt)

パスつきのzipが渡される。johnとhashcatを使いましょう。

なんかもろもろのアップデートでgpuとhashcatの紐づけが壊れてて、それを直すのに時間を食われた。ctf中にやることではなかった。

$ ./zip2john -o patient_imp_data.png imp_patient_data.zip | cut -d ":" -f 2 > patient.hash

$ hashcat -m 17220 -a 3 -w 4 patient.hash

$ hashcat -m 17220 -a 3 -w 4 patient.hash --show

passは2611。

解凍すると、画像二枚を手に入れる。data1の方をstringsで見るとflagがある。

flag : flag{crucialfirstaid_you1_f0und_Me}

 

二枚画像あるのでサブのフラグありそうだったけど諦め。

 

途中まで?いったやつ。flagを得ないと問題がわからないので、問題はぽいやつを書いておく。

Bank api(200pt)

encrypt.phpを見に行くと画像がある。このクレジットカードの名前と番号を用いて、login.phpのfogot passwordのパスワード変更を行う。

そしたら、ヒントのpythonファイルをもらえる。

#!/usr/bin/env python

f1 = open('f1.txt').read()
f2 = open('f2.txt').read()

message = []
for i in range(len(f1)):
	if( f1[i] == f2[i] ):
		message.append(f1[i])

print (message)

ここでつんだ。

 

Hexcode(100pt)

pdfが埋め込まれているのでそれをダウンロードする。

これにはpassがかかっているのでcrackしようとこころみた。しかし7文字以上あるようなので、諦める。

ファイル名で調べると明らかに4要素の内、一つの要素だけ名前に含まれていないので、これがパスだろうとあたりをつけて解凍した。解凍すると、マンチェスターユナイテッドとか16進数っぽいのが並んでたりした。

タイムあっぷ。