【作者主頁】:小魚神1024
【知識星球】:小魚神的逆向編程圈
【擅長領域】:JS逆向、小程序逆向、AST還原、驗證碼突防、Python開發、瀏覽器插件開發、React前端開發、NestJS后端開發等等
本文章中所有內容僅供學習交流使用,不用于其他任何目的,不提供完整代碼,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關!若有侵權,請聯系作者立即刪除!
前言
今天不忙,分析一下某魚、某寶的 sign 簽名算法,記錄一下。
前置分析
在請求參數中,發現有 sign 參數,如下:

如果請求不攜帶 sign, 會提示:{"api":"mtop.taobao.idlehome.home.webpc.feed","data":{},"ret":["FAIL_SYS_ILLEGAL_ACCESS::非法請求"],"v":"1.0"}
逆向分析
通過全局搜索 sign 關鍵字,找到 sign 參數的生成位置,如下:

打個斷點,重新請求,如下:

發現 sign 參數是 i(d.token + "&" + j + "&" + h + "&" + c.data) 得到的。
其中 token 是來自 cookie 中的 _m_h5_tk, j 是時間戳,h 是 appKey 為定值,data 是請求參數。
那么 i 函數應該就是 sign 的生成函數了,如下:

將其扣下來。如下:

其中固定時間戳,經過對比,發現 sign 簽名和網站上的 sign 簽名一致。
相關的js會放到知識星球里,僅供交流學習使用,有需要的自取!
參數驗證
寫個小例子,驗證下生成的參數是否正確,如下:

搞定!!
如果還有什么疑問,請在知識星球里留言。