某試寶登錄頁面測試

滲透逆向 · 3 天前 · 24 人浏览
某試寶登錄頁面測試

這裏看到參數只有一個需要解密
2024-12-02T13:54:53.png
然後下斷點,找到這個位置,Object(c.b)(data.password, "AmrGowGCtUwd/2PgTyrJuV==")
2024-12-02T13:55:55.png
2024-12-02T14:04:45.png
進入 Object(c.b)可以看到是一個通用庫加密方式,找到在綫網站,輸入密鑰 AmrGowGCtUwd/2PgTyrJuV== 測試
2024-12-02T14:00:18.png

分析 Object(c.b) 對應的函數

函數功能

根據提供的函數定義,可以得出以下結論:

  • 功能: 這個函式 r 主要用於 加密 資料。
  • 加密方式: 使用的是 TripleDES 加密算法,以 ECB 模式進行加密,並採用 PKCS7 填充。
  • 輸入參數:

    • e: 需要加密的原始資料(明文)。
    • t: 加密使用的密鑰,以 UTF-8 格式解析。
  • 輸出結果:

    • 返回加密後的密文,以字符串形式表示。

函數解析

  1. 引入加密庫: 函數中使用了 o 物件,這個物件很可能是引入的加密庫(例如 CryptoJS)的一個命名空間,提供了加密相關的函數和常量。
  2. 密鑰解析: o.enc.Utf8.parse(t) 這部分將傳入的密鑰 t 從 UTF-8 字符串轉換為加密庫可以使用的內部表示形式。
  3. 加密操作: o.TripleDES.encrypt(e, n, { ... }) 這一行是核心加密操作:

    • e: 需要加密的明文。
    • n: 已解析的密鑰。
    • mode: o.mode.ECB, padding: o.pad.Pkcs7:指定加密模式為 ECB,填充方式為 PKCS7。
  4. 返回密文: 最後將加密後的結果轉換為字符串返回。

Object(c.b) 的關係

回到原問題的 Object(c.b),根據上下文推測,c.b 很可能是一個變數或函式,指向了這個加密函數。使用 Object() 將其轉換為對象,可能是為了確保在某些情況下能正確調用函數。

潛在問題與改進

  • 密鑰安全性: 密鑰的安全性至關重要。密鑰應該妥善保管,避免洩露。建議使用更安全的密鑰管理方式,例如將密鑰存儲在服務器端,並使用安全的傳輸方式。
  • 加密模式: ECB 模式雖然簡單,但存在安全風險,尤其是當加密的數據有明顯的模式時。建議使用更安全的加密模式,例如 CBC 或 GCM。
  • 填充方式: PKCS7 填充是一種常用的填充方式,但也有其他選擇。可以根據具體需求選擇適合的填充方式。
  • 加密庫: 選擇可靠的加密庫非常重要。不同的加密庫在性能、安全性、易用性等方面可能有所差異。

結論

這個函數實現了一個簡單的 TripleDES 加密功能,但存在一些安全性和可優化的地方。在實際應用中,建議根據具體需求選擇更安全的加密算法、模式和填充方式,並注意密鑰的管理。


再然後是 headers 裏面的字段:sign
2024-12-02T14:00:43.png
sign參數就是由:rs()(o + c + r + n + o)得來,rs()函數進入後是一個md5。
2024-12-02T14:01:52.png
所以可以得到:md5(o + c + r + n + o)
2024-12-02T14:05:48.png
n和o找到了,時間戳和一個固定值,c是cookie裏面的uu值取出來的,最後結果就是:
n = (new Date).getTime()
md5('12b6bb84e093532fb72b4d65fec3f00b' + cookie_uu + "/user/loginErrorCount" + n + '12b6bb84e093532fb72b4d65fec3f00b'),

本站立足于美利堅合衆國,請讀者自覺遵守當地法律!如有違規,本站不承擔任何法律責任! This site is based in the United States of America, readers are requested to abide by local laws! If there are any violations, this site does not bear any legal responsibility! Theme Jasmine by Kent Liao