蘑菇街商品信息获取

蘑菇街商品信息获取

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

操作:搜索

搜索关键词:连衣裙

1、分析:

打开控制台,输入关键词,鼠标向下滑动有新请求发生,查看请求发现在?data中携带数据

 

查看与分析请求参数:

 

乍一看好像只有mw-uuidmw-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):

 

此处处理theaders的值,打印一下t.headersthis.buildQuery(e)的值对比一下

 

可以看出第一部分是将我们的传入值进行拼接,第二部分结合js可以知道是t.versionz(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、仅供学习

 

posted @ 2021-10-12 15:56  是四不是十  阅读(404)  评论(0编辑  收藏  举报