郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。

这篇文章是《2019年末逆向复习系列》的第一篇:《淘宝M站Sign参数逆向分析》

本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。

逆向背景

淘宝网的爬取大概是每一个爬虫工程师入行以来的终极目标之一了,如何自动化登录淘宝?如何模拟操纵淘宝网的滑块?相信这是很多爬虫群经久不息的话题了。我们这次的案例是逆向Web版的淘宝网–也可以说是淘宝M站,虽然现在M站基本没有什么数据可以爬,但是淘宝M站的JS逆向分析可以引用到其他淘宝系的网站去,接下来一起来分析一下淘宝M站的逆向流程。

分析流程与逆向破解

我们以这个链接为例M站淘宝,访问并打开开发者工具,寻找获取数据的URL,可以看到是如下的URL


可以看到这个URL是我们需要的接口,我们可以从这个接口获取数据,我们仔细观察一下这个接口的参数。

我们可以看到有很多参数,我们多用几个不同的URL请求就能发现哪些参数是固定值,哪些是变值,其中最重要的是sign参数,而且我们修改sign也会出现请求失败的情况。


所以,由图所示,sign这个参数是动态,我们需要逆向js破解。

1. 寻找Sign相关的Js文件

我们首先在全局搜索sign这个关键字,搜索结果如图

综合来看,有个mtop.js比较可疑,我们跟进去看一下,进入mtop.js文件我们再搜索下sign关键字。

嗯。感觉上很像,我们可以看到sign==j参数,也就是j=h(d.token+'&'+i+'&'+g+'&'+c.data),我们在如图位置打个断点。

可以看到d.token的值,既然我们知道signtoken,i,g,c.data有关,我们一一分析下这几个参数的构成。

2. 拆解Sign的构成

  1. c.data参数


如图所示,c.data的参数很明显能看得出来是我们发出请求是的data参数,这个参数我们明白了。

  1. token参数

token的话我们多试几次会发现没有变化,可是我们也没有找到它的来源,那么我们可以想想,是不是我们登陆的时候服务器返给我们的?我们搜索一下我们刚才的d.token值,发现这个值竟然存在在Cookie里。

这说明了什么?说明我们生成Cookie的阶段由服务器为我们set-cookie或者返回给我们关键的值让我们可以生成必要的cookie。我们清空一下我们的缓存,可以按如图所示快捷的清空。

我们再按刚才的套路重新达到我们之前打的断点位置。

可以看到,这个时候的token是空的,嗯,看来我们首次访问还没有生成,我们继续跟下去,同样生成了sign值,我们看看这个请求的结果。


可以看到,我们这次访问的结果是令牌为空,是不是就可以因为我们这次请求没有带token去访问,也就是这个请求可能会返给我们token,我们看看是不是在Cookie里面,如图所示,真的在,也就是_m_h5_tk_这个参数

到这里为止,我们就可以明确了解token参数的生成了。

  1. i参数
    很明显,i参数就是13位时间戳参数

  2. g参数
    g参数是一个固定值,12574478

到此为止,我们拿到了关于sign的所有部分,我们就得到了一个需要加密的字符串,接下来要寻找加密的算法。

3. 分析加密算法

我们现在要跟的是h算法,跟进去之后发现了很熟悉的部分

是不是感觉很像!算法揭秘:Md5算法,具体的算法思路大家可以看看漫画:什么是MD5算法?,也就是我们最后可以得出sign生成的逻辑

md5Hex(token&t&appKey&data)

4. 总结思路

从上面我们可以得到淘宝M站的加密思路,和我们刚刚的分析反着来。

代码实战

有了上面这个分析流程,我们就可以开始Coding了,以下是sign加密的流程。

以及测试的代码和实战例子

复习要点

从这个复习的案例我们可以总结下思路:

  1. 分析请求中哪些参数是必要的?
  2. 注意加密参数的生成算法中变化的部分,记住先清理缓存再开始分析。
  3. 记住常见的算法生成原理,这样我们既不必把加密算法扣到底。

2019年末逆向复习系列之淘宝M站Sign参数逆向分析相关推荐

  1. 2019年末逆向复习系列之百度指数Data加密逆向破解

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是公众号<云爬虫技术研究笔记>的<2019 ...

  2. 2019年末逆向复习系列之Boss直聘Cookie加密字段__zp_stoken__逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是公众号<云爬虫技术研究笔记>的<2019 ...

  3. 2019年末逆向复习系列之今日头条WEB端_signature、as、cp参数逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是公众号<云爬虫技术研究笔记>的<2019 ...

  4. 2019年末逆向复习系列之努比亚Cookie生成逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是<2019年末逆向复习系列>的第二篇:< ...

  5. 淘宝U站运营推广方法

    淘宝U站/优站分促销类和导购类, 导购类的需要对某个行业深入了解和喜欢,专业的挑选商品和写程序,虽然暂时流量不高,但是长期坚持下去一定有好的结果. 折扣类的站点比较多,也出了很多个日进斗金的大站,但不 ...

  6. 大数据系统开发综合实践(淘宝双11大数据批处理分析系统、NBA 、淘宝购物大数据实时展示、Spark GraphX)

    cqupt || xmu--大数据系统开发综合实践 代码放在了GitHub上 链接 task01 大数据批处理系统 淘宝双11大数据批处理分析系统 task02 大数据查询分析计算系统 NBA 统计大 ...

  7. 淘宝u站是什么?淘宝u站是干啥的?

    淘宝u站刚刚兴起不久,一些朋友还不熟悉,很多人会问淘宝u站是什么?淘宝u站是干啥的?针对这个疑问,就在这里给大家解释一下淘宝u站是什么?淘宝u站是干啥的? 淘宝u站是什么? 淘宝优站是以小站集合的形式 ...

  8. 如何刷淘宝优站使用人数

    淘宝优站的使用人数不好刷,除了出钱请人刷,或者辛苦的到处推广,没有找到什么好的方法,一直想找到一个省事的方法,于是像搜刷喜欢一样搜相关的互刷软件,结果无功而返,搜到的基本是些刷使用人数的人发的广告. ...

  9. 最新仿淘宝B站购物直播小程序+带货完整PHP源码下载

    正文: 最新仿淘宝B站购物直播小程序+带货完整PHP源码下载,由于演示图太长了,所以我分别载图了两张,完整的演示图直接发压缩包了,有兴趣自行去查看. 当前版本已经修复直播间相关的一些BUG,还有商品新 ...

最新文章

  1. iOS开发系列--UITableView全面解析
  2. python爬取公众号推荐_python爬搜狗微信获取指定微信公众号的文章
  3. aspectj表达式如何书写_化学平衡常数的表达式书写
  4. 武汉大学计算机学院2019考研复试,2019年武汉大学硕士研究生复试及录取名单汇总...
  5. iphone换机数据迁移_苹果手机换华为、小米怎么同步数据?来了!
  6. 垃圾邮件过滤——学习笔记
  7. Unity3D中的线性插值Lerp()函数解析
  8. 框架-vue-cli
  9. C语言每日一练——第88天:汉诺塔问题(河内塔)
  10. 微信小程序笔记 -- 数据库
  11. 10.29 逻辑回归和交差熵
  12. 国家集训队论文99~08年全版
  13. 基于VC++的WEB浏览器的实现
  14. 学会用Word制作拼音田字格练习本,简单实用更省钱,宝妈必学
  15. 十进制转换为二进制(短除法)
  16. .Net获取公司所有员工前一天钉钉考勤记录
  17. XILINX FPGA时钟资源
  18. WEB前端期末大作业——关于酒店主题网站设计——高级酒店公寓网页(4页)
  19. 企业二维码故障报修的过程演示
  20. 实现strStr()

热门文章

  1. hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动
  2. linux 用 grep 查找单个或多个字符串(关键字)
  3. 数据结构-单链表实现
  4. Effective Java之慎用重载(四十一)
  5. AttributeMap类详解
  6. 03.elasticsearch-mapping-param解析
  7. 苹果mac电脑修改并快速linux网络配置
  8. 详解C语言中 # 和 ## 的用法
  9. java形状_形状等于()
  10. node.js 执行php,node.js - 如何利用php执行nodejs文件