Home 2021 MyFirstCTF Write-up
文章
取消

2021 MyFirstCTF Write-up

雖然沒有解很多題,但還是放上來好了XD

Cat Slayer ᶠᵃᵏᵉ | Nekogoroshi

trial and error

Judgement

看起來用到 sha256 ,無法破解那就建表吧 然後因為有可能會有重複的 hash 值,所以再建一個表,慢慢對(感覺應該有更快的方法,但我想不到 qqq)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from hashlib import sha256
import string
s = ")g;Fk@>2g;2V2J?d5G3_9V2<dR2i5GZ@<?2)g\j_2V&?2;@[F@ek2_3\"=k&;2)\F2J9LL4g[W2\"[2<)RZ23@<?2elFZ?2=@jZ23@=F2Yi52;lL5Vj2J?2J9\e@eW23e2lF330"
charset = string.printable[:93]
cand = string.ascii_letters + string.digits + '_{}'
dic1 = {}
dic2 = {}
for i in cand:
    dic1[charset[int(sha256(i.encode()).hexdigest(), 16) % len(charset)]] = i

for j in s:
    print(dic1[j], end='')

print()

for i in cand:
    for j in cand:
        hashi = int(sha256(i.encode()).hexdigest(), 16) % len(charset)
        hashj = int(sha256(j.encode()).hexdigest(), 16) % len(charset)
        if (i != j) and (hashi == hashj):
            dic2[i] = j
            print(i, end='')
            print(j, end='')
            print(' ', end='')

OUTPUT

1
2
8IS3{iX_IS_4_BeaZ215l4_Kay_0Z2siKe_8IrD5_4Re_SiN3i7{_51oQ{RS_8r3_BlOOmIN6_oN_K8ys_1iKe_7h3se_QiDs_1iQ3_Y0Z_ShOZ4D_Be_Blr7i76_17_h311}
cd cK dc dK kw kQ n7 qF qH q5 t2 uZ vG v3 wk wQ xE x9 x{ A8 Ex E9 E{ Fq FH F5 Gv G3 Hq HF H5 Kc Kd LM L4 ML M4 Qk Qw TX XT Zu 2t 3v 3G 4L 4M 5q 5F 5H 7n 8A 9x 9E 9{ {x {E {9

手動把相同的字母對刪掉,手動改原先輸出的 string 成合文法的句子 最後結果如下

1
AIS3{iX_IS_4_BeaZ215U4_Kay_0Z2siKe_9IrD5_4Re_SiN3i7{_51oQ{RS_9r3_BlOOmIN6_oN_K9ys_1iKe_7h3se_QiDs_1iQ3_Y0Z_ShOZ4D_Be_BUr7i76_17_h311}

questionnaire

問卷填完,FLAG!

Microchip

從原始碼來看,他是 4 個 4 個為一組進行運算,在反過來輸出,而其中的 key 因為只會用到 4 個,所以用 Output 中的前四個 bytes 對應 AIS3 便可解出 key[4] = [69, 42, 87, 10],接著就寫個程式逆回去吧

1
2
3
4
5
6
7
8
output = "=Js&;*A`odZHi'>D=Js&#i-DYf>Uy'yuyfyu<)Gu"
key = [69, 42, 87, 10]
for i in range(0, 40, 4):
    for j in range(4):
        num = ord(output[i+3-j])-key[j]
        while num < 33 or num > 126:
            num += 96
        print(chr(num), end='')

[祝賀] 新垣結衣新婚快樂 發錢囉

下載下來發現是張圖片,直接丟到 binwalk

咦有個壓縮檔,丟 foremost 看看有沒有什麼東西吧

咦多了一個 output,進去看看吧

然後就翻翻翻,找到 FLAG 了!

本文章以 CC BY 4.0 授權