iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Security

資安小白的密碼學從0到1-CryptoHack平台解題紀錄系列 第 26

【Day 25】Symmetric CryptoGraphy07 - Flipping Cookie

  • 分享至 

  • xImage
  •  

前言

今天也是來解一題,gogo,需要一點昨天CBC decrypt的基礎知識,就知道它在幹嘛這樣╰(°▽°)╯
https://ithelp.ithome.com.tw/upload/images/20231006/20162613BUtSbtbC12.png

Writeup

題目

網址 : https://cryptohack.org/courses/symmetric/flipping_cookie/
https://ithelp.ithome.com.tw/upload/images/20231006/20162613pJ5JAKCwi9.png

思路

這題會用到一個叫做"bit flipping"的攻擊手法
這我看了好多但觀念還是有點模糊,所以不多做解釋,
請自行去找自己覺得看得懂的解釋XD

等我哪一天突然懂了再回來改( •̀ ω •́ )✧

解法

  • CBC decrypt
    https://ithelp.ithome.com.tw/upload/images/20231006/2016261385kRLXAiAx.png
    我們只看最左邊那一組

    Ciphertext = c1, Block Cipher Decryption = d(),
    Plaintext = p1 = "admin=False;expi"
    目標,把p1從"admin=False;expi"變成"admin=True;00000"

由圖可得知
p1 = iv ^ d(c1)
-> d(c1) = p1 ^ iv

而我們能改的是值iv
所以接下來我們的目的為
更改iv值,讓
new_iv ^ d(c1) = "admin=True;00000"

設 "admin=True;00000" = new_p1

new_p1 = new_iv ^ d(c1)
-> new_iv = new_p1 ^ d(c1)

把最d(c1) = p1 ^ iv 代入
-> new_iv = new_p1 ^ p1 ^ iv
-> new_iv = "admin=True;00000" ^ "admin=False;expi" ^ iv

就可以來寫code了!

ciphertext 為網站按下get_cookie那邊的submit得出來的

from pwn import *
ciphertext = "f4f87ca5e728039e47038e2bdd4df1132e9215c89e8f80d2b8e10029438954ab608fb612156b5e3777c33b7974814f34"
iv = ciphertext[:32]
new_p1 = "admin=True;00000"
p1 = "admin=False;expi"
new_iv = xor(bytes.fromhex(iv), new_p1.encode(), p1.encode()).hex()
print(ciphertext[32:])
print(new_iv)
  • output
    https://ithelp.ithome.com.tw/upload/images/20231006/20162613TE9Df2u4Yt.png

之後在網站輸入,即可獲得flag
https://ithelp.ithome.com.tw/upload/images/20231006/20162613gscudH0wlI.png

flag : crypto{4u7h3n71c4710n_15_3553n714l}

小結

利用xor的特性解題
這篇未來會再修,等我更了解它後再回來XD


上一篇
【Day 24】Symmetric CryptoGraphy06 - ECB_CBC_WTF
下一篇
【Day 26】Symmetric CryptoGraphy08 -Symmetry
系列文
資安小白的密碼學從0到1-CryptoHack平台解題紀錄31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言