1. 程式人生 > >i春秋第二屆春秋歡樂賽CryMisc題目WriteUp

i春秋第二屆春秋歡樂賽CryMisc題目WriteUp

    CryMisc__writeup

把CryMisc.zip解密後得到crypto.zip和jiami.py,crypto.zip是被加密過的,而jiami.py則是加密指令碼, 
這裡寫圖片描述 
其中密碼是隨機的15位字元的md5值,基本不可能爆破,而這裡是使用本身這個jiami.py和gogogo.zip一起加密成crypto.zip,這裡就存在著zip的明文攻擊,用winrar(不能用7zip或者好壓)把jiami.py壓縮成jiami.zip,使用archpr選擇“明文攻擊” 
這裡寫圖片描述 
因為密碼長度過長,導致無法直接獲取到,但是點選“確定”可以另存為已經解密好的crypto_decrypted.zip,解壓其中的gogogo.zip得到AESencrypt.py、AES.encryt、RSA.encrypt,其中AESencrypt.py內容是模仿勒索軟體,先AES加密,然後把key通過RSA進行加密。這裡RSA檔案只需要先分解即可,直接上指令碼。 
這裡寫圖片描述


執行後可以得到AES的key為copy__white__key(這裡也是稍微給後面的解密一點提示)、得到next.zip,解壓後得到encrypt.py、first、second,其中encrypt.py就是對flag.jpg檔案進行zip處理為2個檔案。只要熟悉python程式碼,寫個解密程式碼很簡單。 
這裡寫圖片描述 
得到flag.jpg 
這裡寫圖片描述
這裡我為了容易做,使用了一張flag的百度百科上面的圖片,如果可以細心的看到圖片左下角的百度百科字樣,去下載原圖,然後對比後發現flag.jpg後面多出的資料其實是一個psd檔案(原理是用copy命令把jpg檔案和psd檔案合併在一起) 
這裡寫圖片描述 
也可以通過8BPS頭和8BIM字樣推測是psd檔案,用photoshop開啟 
這裡寫圖片描述

最頂層的文字是假的,這裡關鍵在於鎖定的“背景”層,看似是新建圖片時所留下的預設背景圖,而本題就是把flag隱藏在裡面,把上面2層隱藏掉,然後對背景色另存為png格式(這樣才能完好的保留顏色),使用stegsolve開啟,並按下向左的按鈕 
這裡寫圖片描述 
就呈現出一幅二維碼,掃描就得到flag{409d7b1e-3932-11e7-b58c-6807154a58cf} 

這圖的原理是前景色為(255,255,254),人眼無法識別它跟白色的區別,而如果使用photoshop的油漆桶填充的時候,注意把預設的容差32改為容差0才可以看出區別。