蘑菇街列表页mw-sign值计算

蘑菇街mw-sign值计算

  • 需求描述
  • 分析过程
    • 1.寻找加密位置
    • 2.分析传入参数
    • 3.mw-uuid
    • 4._mwp_h5_token和_mwp_h5_token_enc
    • 5.最终流程梳理
  • 结果展示
  • 关注我们

需求描述

在采集蘑菇街的时候,按照关键词搜索宝贝列表的接口中有mw-sign参数,经过测试发现此参数无法伪造,可以重放。为了脱离浏览器进行采集,需要将这个值解出来。

蘑菇街列表页mw-sign值计算_第1张图片

分析过程

1.寻找加密位置

代码没有混淆,加密位置比较好找:
蘑菇街列表页mw-sign值计算_第2张图片
这边可以看到 mw-sign 是z(this.buildQuery(e))这一步生成的

2.分析传入参数

下断点调试,这个过程调用了两次z方法

第一次的位置如下图:
蘑菇街列表页mw-sign值计算_第3张图片
传入的参数如下:
在这里插入图片描述
蘑菇街列表页mw-sign值计算_第4张图片
第二次传入参数是一串字符串:该字符串由部分固定参数,cookie,已经上一步调用z方法得到的加密值拼接而来
蘑菇街列表页mw-sign值计算_第5张图片

将js抠出来做个简单测试:
蘑菇街列表页mw-sign值计算_第6张图片

100028&pc-search-wall&unknown&1564034676371&NMMain@mgj_pc_1.0&f65f8c1e-6286-4b4a-a917-5061e238155b&mwp.pagani.search&19&b9cab4ab7f543491e2c4f6c556711345&39a9ae72d3faec64f157166036f84edd_1564026637963

结合请求参数,对这一串字符的组成部分进行简单猜测:
大致就是"mw-appkey",“mw-ckey”,“mw-h5-os”,“mw-t”,“mw-ttid”,“mw-uuid”,以及部分请求地址(“mwp.pagani.search/19/”)使用"&"拼接而成,
“b9cab4ab7f543491e2c4f6c556711345"是第一步调用z方法的计算结果,
“39a9ae72d3faec64f157166036f84edd_1564026637963"来自cookie中的”_mwp_h5_token”

那么方向就明确了 将这些参数一一解决即可,部分参数可以固定,下文只讲无法写死的参数

3.mw-uuid

抓包发现这个值是从cookie里来的
蘑菇街列表页mw-sign值计算_第7张图片

4._mwp_h5_token和_mwp_h5_token_enc

只带mw-uuid,请求目标地址,可以获得这两个参数:
蘑菇街列表页mw-sign值计算_第8张图片

5.最终流程梳理

  1. 第一次调用z方法计算中间值
  2. 请求蘑菇街https://list.mogujie.com接口获得mw-uuid
  3. 再次调用z方法计算mw-sign值

结果展示

蘑菇街列表页mw-sign值计算_第9张图片

关注我们

爬虫教程,思路分享,商务合作,请关注射线网络公众号

回复 蘑菇街JS ,可以获得我们帮你抠好的js,本文用于技术学习交流,请勿用于非法用途

你可能感兴趣的:(爬虫,C#)