【總結】註冊碼洩露原理以及例題

蚁景网安实验室發表於2024-08-09

引言

題目給了小明的機器碼:1653643685031597

使用者user_id:xiaoming

可以看到題目採用了SIMD指令集

【總結】註冊碼洩露原理以及例題

該指令格式在CTF和攻防對抗中經常出現,可以提高執行效率的同時也可以增加逆向的難度。

對於此類指令和題目,我們分析的方法是:遇到查意思,查的多了就跟看正常程式碼一樣,採用動態分析。

機器碼修改

將內建的機器碼改為題目給的:1653643685031597

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

修改成功:

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

得到flag的時候跟machine這個有很大關係。

【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

動態分析

machine_id處理

【總結】註冊碼洩露原理以及例題

在這個加密函式中

【總結】註冊碼洩露原理以及例題

發現了MD5特徵

經過動調拿到函式加密後的結果

【總結】註冊碼洩露原理以及例題

與我們的猜測是相符的

【總結】註冊碼洩露原理以及例題

可以發現最終md5(機器碼)變成

【總結】註冊碼洩露原理以及例題

user_id處理

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

和除錯machine加密一樣,最終MD5(user_id)變成:

【總結】註冊碼洩露原理以及例題

最終處理

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

經過之前相同的加密

【總結】註冊碼洩露原理以及例題

變成這個數字:1228240365737281

然而這還沒完,居然進行兩次相同加密

【總結】註冊碼洩露原理以及例題

再次加密後的結果:0502036271810858

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

【總結】註冊碼洩露原理以及例題

可以發現此題出的很好,利用了密碼比較的漏洞,沒有將密文給出,而是將生成的密文在中間給出,從而造成了資料洩露。

得到flag

回顧加密流程,可以發現

f(key) = f( f( f(md5(machine)) + f(md5(user_id)) ) )

那麼題目給了得到flag的machine和user_id,可以得出

Key =f( f(md5(machine)) + f(md5(user_id)) )

所以最終flag:

flag{1228240365737281}

更多網安技能的線上實操練習,請點選這裡>>

相關文章