1. 程式人生 > 其它 >ctfshow 吃瓜杯八月賽 Misc WriteUp

ctfshow 吃瓜杯八月賽 Misc WriteUp


目錄

1、Misc遊戲簽到

2、吃瓜

3、EZbingo

4、魔王

5、Dinner of Cyanogen

6、Music Game

7、一群強盜

1、Misc遊戲簽到

別問 問就是玩遊戲 套神說的) :多選殺戮 沒有殺戮就選背刺 少選能量瓶子 嚇死就對了^q^

打了小几十把 臉黑沒辦法 期間遇到過環境卡死 3段flag閃退 環境罷工(

八神說 是python的錯跟套神沒關係嗚嗚嗚

ctfshow{White_give_game_only_waste_your_timehahaha}

2、吃瓜

下載附件得到新建資料夾.jpg 010editor打開發現pk頭 說明為zip壓縮包

修改後綴為.zip後解壓開啟 得到

文字文件裡面的內容複製到瀏覽器開啟 為一個二維碼hhhh

掃描得到一串字元 一眼看出是打亂的flag

吃瓜圖片中 屬性發現花朵加密 密碼為sunny

然後 然後 我死在這個兩個西瓜了,,,瘋狂的想 兩個西瓜是不是兩個圖片 跟吃瓜本身圖片去進行一系列操作,,那天晚上思路被固定死了 (Tao:你想多了 而且是想太多了)

做夢夢到做出來了 早晨爬起來突然想起柵欄密碼,,好嘛 兩個西瓜就是柵欄2 將打亂的flag柵欄2解密 得到flag:

ctfshow{ch1_9ua_bei_kuai_1e}

3、EZbingo

手擼的 不懂原理 玩 就硬玩

ctfshow{yOu_w1N_tHE_BING0_G4me!}

4、魔王

後面群主加的簽到題 下載得到w3x字尾檔案 百度為魔獸爭霸3的地圖

開啟 提示為打敗大魔王得到flag em真給他打死了給了個假的flag(優美中國話

聯想到一題 超級瑪麗 於是用地圖編輯器開啟 尋找觸發事件編輯器

預期解:在遊戲中按下回車 輸入-ctfshow(其實相當於自定義了一個金手指作弊碼

ctfshow{ctfshow_chi_gua_bei_flag}

5、Dinner of Cyanogen

動態附件 下載解壓得到兩個doc檔案 letter開啟:得到第一段flag

another開啟報錯 兩者010editor開啟 發現均可為壓縮包(第一次發現這種神奇的檔案 )修改後綴為zip 發現another為加密壓縮包 密碼未知

觀察最後一個檔案 聯想到之前做的一個題目 最後一個檔案的大小跟crc32碼完全一致 故為明文破解

將未加密的壓縮包中的最後一個檔案解壓出來 用7zip壓縮 壓縮等級僅儲存 加密演算法ZipCrypto

arch開啟:

跑個2分鐘左右手動停止

原因:

​(又學到了新知識

將解密完的壓縮包開啟 在..\word\flag.xml中發現第二段 flag

將破解完的壓縮包 字尾改為doc 開啟得到:

發現信件內容剛好104個字元 13位

全選發現沒有顯示字型格式

說明字元經過處理 挨個看發現兩種格式 wingdings跟wingdings2 wingdings轉化為0 wd2轉換為1 再經過二進位制轉ascii

得到flag:

ctfshow{fe65ef83-0bfa-4f40-a5d0-ba216e650fc2}

(覆盤過程中手擼錯了一位 尬住

6、Music Game

這玩意覆盤覆盤了一個多小時屬實給我整麻了,,,

下載得到f1ag檔案 解壓得到f1ag.img

用DiskGenius載入(需要的可以找我要,,)

點選恢復檔案

開啟精選資料夾 找到字尾為.mcz的檔案 匯出來

搜尋關鍵字:

發現為malody的自制譜檔案

下載一個win版本的malody V 匯入譜子 編輯鋪面

手擼flag:(你ctf屆全是二刺猿)

ctfshow{bgm_is_nice}

7、一群強盜

下載得到附件 是一堆灰色的圖片 比賽時候聯想到圖片可能是異或操作或者進位制轉換,,然後就沒有然後了

復現:

觀察發現CRC32只有4種 聯想到比賽時候想到的進位制轉換 可能是四進位制

因為flag格式開頭為ctfshow 所以嘗試將“c”轉換為四進位制 剛好得到“1203” 猜想成立

嗯 我只會手擼 指令碼不會寫( 插個套神的指令碼吧

import zipfile
zipFile = zipfile.ZipFile('img.zip','r')
ziplist = ['']*72
for i in range(72):
    ziplist[i] = str(i)+'.png'
flaghex = ''
flag = ''
for i in range(len(ziplist)):
    zipfileinfo = zipFile.getinfo(ziplist[i])
    flagpj = str(hex(zipfileinfo.CRC)[2:])
    # 因為flag格式為ctfshow,所以直接找c的四進位制
    # print(ord('c')) 99 --> 1203
    if(flagpj == '7d349b41'):
        flag+='1'
    elif(flagpj == 'aa7b25f1'):
        flag += '2'
    elif(flagpj == 'd929ce96'):
        flag += '0'
    elif(flagpj == 'faac73ff'):
        flag += '3'
    else:
        print('error!')
print(flag)
#print(len(flag))

str1 = ''
for i in range(0, len(flag), 4):
    tmp = flag[i:i + 4]
    str1 += chr(int(tmp, 4))

print(str1)

記得最後將結果的空格字串轉換為下劃線

ctfshow{56_robber}