1.抓包:
發現url:https://api.xxxxxxx.cn/front/record/activity/search
請求頭三處加密,requestId、sign(疑似md5)、timestamp(時間戳)
表單數據加密:
請求返回數據加密:
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代碼注入控制檯,翻頁斷點:
找到上一個棧:
可以看出RequestId是由getUuid生成:
sign由MD5(e + d + c)生成:
timestamp由Date.parse(new Date())生成:
發現表單是使用RSA加密,並且用setPublicKey方法設置了要使用的公鑰。然後,使用encryptUnicodeLong方法對參數e進行加密。
使用hook JSON.parse找到返回數據解密位置,和上面hook代碼一樣的操作:
(function() {
var parse = JSON.parse;
JSON.parse = function(params) {
console.log("Hook JSON.parse ——> ", params);
debugger;
return parse(params);
}
})();
找到解密位置:
跟進後,發現解密代碼由AES解密:
3.扣代碼:
將js代碼複製下來,平且補全代碼
更多網安技能的在線實操練習,請點擊這裏>>