SHA2017CTF Crypto200: Secure Login Writeup

題目提供了一個用 RSA 作加密的系統。

你的目的是找出一個 signature (\(s\)),使得本來的訊息 \(m \equiv s^d (\text{mod } n)\) 以  ticket:admin|root|  起首。

它提供了兩個 signing 的功能,一個 [1] 是把  ticket:user|*|* 簽署,另一個 [3] 是把你的訊息前面加了一個 \xff  後簽署。

然而我們想要的是  ticket:admin|root|*,可以怎樣做呢?

發現到 [1] 有一個 implementation problem:他沒有檢查信息的總長度。

所以我們可以這樣做:找出一個 payload 使得 ticket:user|user|payload (這是一個很長的訊息) 除以 \(n\) 的餘數是  ticket:admin|root|lol

寫了一段代碼解決,得到 flag:  flag{8f898e19de410591acbcdbfae798d603}

 


發表迴響