PicoCTF - AES-ABC
tags: PicoCTF CTF Crypto
Background
Source code
1 | |
Recon
這一題也蠻有趣的,可以先看一下他怎麼加密的
- 先把ppm file的header, data parse出來
- 在51行用AES-ECB加密data,而我們知道ECB mode就很不安全
- 在53行再把每一個block分出來並在開頭的地方插入initial vector
- 57-62行的for-loop,就是把兩個block相加再mod UMAX就是對應的下一個block的值,意即:
\(c[0] \leftarrow Initial\ Vector=AES[0]\\ c[i+1] \leftarrow (AES[i+1]+c[i])\ \% \ 2^{128}\\ k*2^{128} \leftarrow AES[i+1]+c[i]-c[i+1],\ k \in \{0,1\}, \{AES[\ ], c[\ ]\} \in 2^{128}\) 所以綜上所述,我們可以把ciphertext還原成AES的版本,這樣應該可以看到flag的一些資訊,即使不知道一開始的key也可以(從最後面的block算回來) \(AES[i] \leftarrow k*2^{128}-c[i-1]+c[i]\)
Exploit
1 | |
Flag: picoCTF{d0Nt_r0ll_yoUr_0wN_aES}