跳至主要內容

ASIS CTF 2016 Odrrere

Odrrere這題拿到的原圖如下

odrrere


參考先前CTF png-uncorrupt writeup來了解png的結構

PNG會由下圖的格式組成

zzz

分為四個部分DATA長度(4Bytes)、資料類型(4Bytes)、DATA、Checksum(4Bytes)

或是IEND的形式只有三個部分

例如開頭0000 00b8為資料長度184 Bytes

4944 4154 是IDAT – Chunk Type

後面一大串則是DATA

最後4 Bytes 810e 463b為Checksum

zzz

解題過程

剛拿到圖片第一眼明顯此題是要修復PNG

基於先前的writeup 先檢查CRC是否有錯誤

此部分可以用PNGchecksum工具檢查

但是仍然沒異狀

因此跑pngcheck -vvf odrrere.png來檢查是否有資料錯誤

發現在第二個IDAT的部分有error

xxxx

因此過程中也猜測Error是否DATA超出length但也不是

後來修修補補某些Byte拿到了下面破碎的圖

odrrere

其實當下沒有想到是圖片IDAT的順序錯誤所以先拼拼湊湊補了起來

更好的解法可以參考asis-ctf-quals-2016-odrrere

將13個IDAT用hexedit依照正確順序0,12,8,4,9,10,6,7,3,5,2,11,1擺放後Flag顯而易見

odrrere

 

 

分類:CTF

搶先發佈留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 Compete Themes 設計的 Author 佈景主題