閑來無事簡單逆向一下小紅書PC端的接口簽名,x-t, x-s ,第一步簡單的的全局搜索一下查找一下簽名在那里出現
1695644678792.png
不得不說,小紅書取名就是這么尿性直接告訴你這是簽名的地方了,既然知道了就果斷debug一把,根據代碼很容看出來,最終就是window._webmsxyw 方法進行簽名了,在調試加密方法之前先把入參敲定,看看到底是哪幾個值參與了簽名
image.png
通過打印很容易猜到簽名就是api接口和請求參數直接進行簽名計算。
接下來就是來看看到底是如何加密的
image.png
找到簽名加密的入口,通過觀察代碼可以看到這是要一個閉包自執行函數,通過計數器不斷的入棧出棧,來完成程序的執行,將整段代碼摳出,然后新建代碼段進行debug 調試,根據入口處的執行方法在方法 _ace_8cba0下斷點,通過打印可以發現這個函數的取值執行過程,再經歷了一段時間的調試分析,最終摸清楚了執行過程,接下來就是要要放到獨立環境中執行。
一般這種情況下就是補環境,根據上面的調試過程發現需要補window 對象,document ,navigator,canvas, cookies 等等,再將環境補全后執行,發生成異常RegExp對象缺失,繼續補,補完環境后發現執行的結果跟瀏覽器中結果差異很大,因該是缺參數了,又是一通折騰,最后發現,cookie對象的a1,xsecappid 會參與簽名,入參中的參數i必須是對象形式,環境監測中字段的x2必須是 '0|0|0|1|0|0|1|0|0|0|1|0|0|0|0'
image.png
簽名版本是“1”
image.png
最終得到正確的結果,
image.png
將結果拿到python中進行檢查,效果不錯,至此打完收工
image.png