日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

聚美app之 _sign参数分析

發布時間:2024/4/11 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 聚美app之 _sign参数分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天我們要分析的app 是聚美優品, 版本號v8.781 (當前最新版),小伙伴們可以去各大應用商定自行下載。

轉載請注明出處:
https://blog.csdn.net/weixin_38819889/article/details/122488891?spm=1001.2014.3001.5501

同系列文章推薦下:
1.聚美app之 _sign參數分析
2.大潤發優鮮app之paramsMD5參數分析
3.美圖秀秀 sig參數分析
4.貝殼app Authorization參數分析
5.豆瓣app sig參數分析
6.半次元app之data參數分析

1.先來抓個包


經分析該app沒有殼,里面有一個antifraud_sign參數加密,使用postman發起請求,發現不攜帶該參數,也可以拿到數據。說明服務器并沒有對該參數做校驗,但是我們處于研究的目的,就好好分析一下。

2.jadx靜態分析

直接搜索文本antifraud_sign,看到第一個地方(params.put(“antifraud_sign”, md5);),這里面還有一個MD5,剛好參數長度也是32位 很像,來跟進去看一看。

來到這里,可以看到antifraud_sign = a(params, currentUnixTime, f());,這個a()方法是個啥,跟進去看一看。

然后又來到這里了。

大概的看了一下邏輯,params 參數是一個map字典,currentUnixTime 一看就是時間戳,token 就是校驗用戶身份的。處理的邏輯大概就是 把傳遞的params做了一個a(params)的處理,然后對字典排個序,拼接成字符串,再在尾部拼接個時間戳和token(算是鹽值),最后返回的時候讓a(sb.toString(), "UTF-8")方法處理下。

這是a(Map<String, String> params) 方法。

這是a(String s, String charset)方法,一看關鍵詞就是MD5,和我們開始猜想幾乎差不多,確定了這里就是加密的地方。

3. frida動態調試

打開frida服務,運行命令:

frida -U com.jm.android.jumei -l hook_sig.js

js命令如下:

Java.perform(function (){var BaseJuMeiSign = Java.use("com.jm.android.jumei.baselib.jmtoken.BaseJuMeiSign");BaseJuMeiSign.a.overload("java.util.Map","long", "java.lang.String").implementation = function(v1,v2,v3){console.log("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");var it = v1.keySet().iterator();var result = "";while(it.hasNext()){var keystr = it.next().toString();var valuestr = v1.get(keystr).toString();result += keystr + "=" + valuestr + "&";}console.log("Sig入參-參數v1:" + result);console.log("Sig入參-參數v2:" + v2);console.log("Sig入參-參數v3:" + v3);var res = this.a(v1,v2,v3);console.log("Sig加密后的數據:" + res);console.log("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");return res;}BaseJuMeiSign.a.overload("java.lang.String", "java.lang.String").implementation = function(n1,n2){console.log("md5入參-參數n1:" + n1);console.log("md5入參-參數n2:" + n2);var md5_res = this.a(n1,n2);console.log("md5加密后的數據:" + md5_res);return md5_res;}})

效果如下圖所示:

處理的邏輯并不是很復雜,接下來python還原一下,效果如下:


然后就成功的計算出 _sign 值了和 frida hook出來的結果一模一樣,但是有一點和抓包拿到的值不一樣,奇怪了,想半天沒發現問題出在哪里,算了,先這樣吧。

完事,手工。

總結

以上是生活随笔為你收集整理的聚美app之 _sign参数分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。