蘑菇街商品信息獲取
操作:搜索
搜索關鍵詞:連衣裙
1、分析:
打開控制台,輸入關鍵詞,鼠標向下滑動有新請求發生,查看請求發現在?data中攜帶數據
查看與分析請求參數:
乍一看好像只有mw-uuid和mw-sign兩個加密參數,不着急看看js代碼,找到它調用的js並進入js,搜索關鍵詞mw-uuid
可以看到參數列表中大部分都在這,同理搜索mw-sign在同文件下。將return打上斷點,頁面向下滑動,成功斷住
對相應的參數進行分析:
mw-appkey:此處可以將它設置為固定值:100028
mw-ttid:為字符串拼接,也能將它設置為固定值:NMMain@mgj_pc_1.0
mw-t:為13位時間戳
mw-h5-os:固定值unknown
mw-uuid:處理cookie值,獲取_mgjuuid的值
mw-sign:兩次處理e值
重點:
1、cookie生成
分析請求流程,可以得到一共設置了兩次cookie
第一次設置cookie:單純的get請求,請求后設置__mgjuuid,那么mw-uuid解決
第二次設置cookie:請求參數和之前的基本一致
最后的參數:mw-sign:加密z(this.buildQuery(e))
this.buildQuery(e):
此處處理t的headers的值,打印一下t.headers和this.buildQuery(e)的值對比一下
可以看出第一部分是將我們的傳入值進行拼接,第二部分結合js可以知道是t.version和z(t.getDateString())和token
t.getDateString()為輸入的data值,那么只需分析z()函數就行了
打上相關斷點:
可以看到這是加密data參數,分析三元表達式發現會執行最后一個函數v.bytesToHex(n),加密長度為32位,使用常規加密碰碰運氣
那么z函數就是md5加密,參數分析完成。
2、整體流程
a) 請求https://portal.mogu.com/api/util/getUuid?callback=callback_1001獲取___mgjuuid的值,並設置cookie
b) 請求https://api.mogu.com/h5/mwp.darwin.multiget/3/設置cookie,值為token
c) 請求https://api.mogu.com/h5/mwp.pagani.search/19/獲取數據
3、結果
a)
4、代碼
略
5、僅供學習