某觀鳥平臺逆向分析

1.抓包:

發現url:https://api.xxxxxxx.cn/front/record/activity/search

請求頭三處加密,requestId、sign(疑似md5)、timestamp(時間戳)

微信截圖_20240114210318

表單數據加密:

微信截圖_20240114210908

請求返回數據加密:

微信截圖_20240114211557

2.分析:

通過抓包,發現請求頭、表單、返回的數據均有加密,如果你逆向的網站比較多會發現,一般加密的地方都在一起,網站大概率會使用JSON.stringify,來將數據轉換爲json字符串之後再進行加密,因此可以使用hook斷點。

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

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

hook JSON.stringify代碼:

(function() {
    var stringify = JSON.stringify;
    JSON.stringify = function(params) {
        console.log("Hook JSON.stringify ——> ", params);
        debugger;
        return stringify(params);
    }
})();

將hook代碼注入控制檯,翻頁斷點:

微信截圖_20240114204048

找到上一個棧:

微信截圖_20240114204132

可以看出RequestId是由getUuid生成:

sign由MD5(e + d + c)生成:

微信截圖_20240114220151

timestamp由Date.parse(new Date())生成:

微信截圖_20240114220307

發現表單是使用RSA加密,並且用setPublicKey方法設置了要使用的公鑰。然後,使用encryptUnicodeLong方法對參數e進行加密。

微信截圖_20240114220655

使用hook JSON.parse找到返回數據解密位置,和上面hook代碼一樣的操作:

(function() {
    var parse = JSON.parse;
    JSON.parse = function(params) {
        console.log("Hook JSON.parse ——> ", params);
        debugger;
        return parse(params);
    }
})();

微信截圖_20240114222047

微信截圖_20240114222227

找到解密位置:

微信截圖_20240114222347

跟進後,發現解密代碼由AES解密:

微信截圖_20240114222756

微信截圖_20240114222945

3.扣代碼:

將js代碼複製下來,平且補全代碼

微信截圖_20240114221450

微信截圖_20240114223432

20240114223306.png

更多網安技能的在線實操練習,請點擊這裏>>

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章