蘑菇街商品信息获取

蘑菇街商品信息获取

目标网站:https://www.mogu.com/

操作:搜索

搜索关键词:连衣裙

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、仅供学习

 

上一篇:mPEG-SS-PLA-SS-PEI 甲氧基聚乙二醇-双硫键-聚乳酸-双硫键-聚醚酰亚胺的制备


下一篇:我学编程时最后悔的事!