天天看點

BugKu 貓片(安恒) [MISC]

題目連結:https://ctf.bugku.com/challenges/detail/id/22.html

題目作者: 未知

提  示:

描  述: hint:LSB BGR NTFS

解題思路:

拿到題目,是一隻🐱

BugKu 貓片(安恒) [MISC]

既然是圖檔題,就先來正常掃描。

zsteg

發現圖檔在

bgr

,

lsb

模式下藏了一個不太對勁的檔案。(ps:直接根據題目提示也可以得出此結論)

BugKu 貓片(安恒) [MISC]

然後用圖檔神器

StegSlove

Data Extract

選擇圖檔模式并預覽

BugKu 貓片(安恒) [MISC]

看檔案頭是修改過的png檔案,儲存為

flag.png

。然後通過010Editor将檔案頭多餘的

FF FE

删除。發現是一個半截的二維碼,遂想到修改圖檔高度值,在010Editor中将高度值修改為與寬度一緻

BugKu 貓片(安恒) [MISC]

儲存後得到完整二維碼。這個二維碼是個反相二維碼,可以用ps一類的做一下色彩反相,如果不想麻煩直接拿手機掃可以掃出來。

BugKu 貓片(安恒) [MISC]

掃出來是一個百度網盤的連結:https://pan.baidu.com/s/1pLT2J4f

下載下傳得到一個

flag.rar

的壓縮包,打開沒啥特别的東西,隻有一個txt文檔

BugKu 貓片(安恒) [MISC]

binwalk掃描隐寫也沒有東西,010Editor發現了一個

flag.pyc

,但改來改去都不對

BugKu 貓片(安恒) [MISC]

題目中提示NTFS,應該是NTFS隐寫,剛開始遇到了奇奇怪怪的問題,上網搜了搜,還是因為沒用

WinRAR

解壓造成的。解壓壓縮包一定要用WinRAR,一定要用WinRAR,一定要用WinRAR!!!然後選中清單中的pyc檔案,導出檔案。

BugKu 貓片(安恒) [MISC]

pyc是py編譯後的檔案,可以用

uncompyle xxx.pyc > xxx.py

反編譯,也可以用網上的線上反編譯工具。

BugKu 貓片(安恒) [MISC]

反編譯完成,是一個加密函數,并給出了加密後的清單。根據加密函數開始寫解密函數。

def decode(ciphertext:list):
    ciphertext = ciphertext[::-1]
    flag = ''
    for i in range(len(ciphertext)):
        if i % 2 == 0:
            flag += chr(int(i) ^ (int(ciphertext[i]) - 10))
        else:
            flag += chr(int(i) ^ (int(ciphertext[i]) + 10))
    return flag


ciphertext = ['96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', 
'64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
print(decode(ciphertext))
           

運作解密程式并将加密後的清單作為參數傳入,得到flag

flag{[email protected]_Cl3veR_C1Ever!}
           

繼續閱讀