2019年末逆向复习系列之淘宝M站Sign参数逆向分析
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。
这篇文章是《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
的值,既然我们知道sign
和token
,i
,g
,c.data
有关,我们一一分析下这几个参数的构成。
2. 拆解Sign的构成
c.data参数
如图所示,c.data
的参数很明显能看得出来是我们发出请求是的data
参数,这个参数我们明白了。
token参数
token
的话我们多试几次会发现没有变化,可是我们也没有找到它的来源,那么我们可以想想,是不是我们登陆的时候服务器返给我们的?我们搜索一下我们刚才的d.token
值,发现这个值竟然存在在Cookie
里。
这说明了什么?说明我们生成Cookie
的阶段由服务器为我们set-cookie
或者返回给我们关键的值让我们可以生成必要的cookie
。我们清空一下我们的缓存,可以按如图所示快捷的清空。
我们再按刚才的套路重新达到我们之前打的断点位置。
可以看到,这个时候的token
是空的,嗯,看来我们首次访问还没有生成,我们继续跟下去,同样生成了sign
值,我们看看这个请求的结果。
可以看到,我们这次访问的结果是令牌为空,是不是就可以因为我们这次请求没有带token
去访问,也就是这个请求可能会返给我们token
,我们看看是不是在Cookie
里面,如图所示,真的在,也就是_m_h5_tk_
这个参数
到这里为止,我们就可以明确了解token
参数的生成了。
i参数
很明显,i
参数就是13位时间戳参数g参数
g
参数是一个固定值,12574478
到此为止,我们拿到了关于sign
的所有部分,我们就得到了一个需要加密的字符串,接下来要寻找加密的算法。
3. 分析加密算法
我们现在要跟的是h
算法,跟进去之后发现了很熟悉的部分
是不是感觉很像!算法揭秘:Md5算法
,具体的算法思路大家可以看看漫画:什么是MD5算法?,也就是我们最后可以得出sign
生成的逻辑
md5Hex(token&t&appKey&data)
4. 总结思路
从上面我们可以得到淘宝M站的加密思路,和我们刚刚的分析反着来。
代码实战
有了上面这个分析流程,我们就可以开始Coding
了,以下是sign
加密的流程。
以及测试的代码和实战例子
复习要点
从这个复习的案例我们可以总结下思路:
分析请求中哪些参数是必要的?
注意加密参数的生成算法中变化的部分,记住先清理缓存再开始分析。
记住常见的算法生成原理,这样我们既不必把加密算法扣到底。
号主介绍
多年反爬虫破解经验,AKA“逆向小学生”,沉迷数据分析和黑客增长不能自拔,虚名有CSDN博客专家和华为云享专家。
私藏资料
呕心沥血从浩瀚的资料中整理了独家的“私藏资料”,公众号内回复“私藏资料”即可领取爬虫高级逆向教学视频以及多平台的中文数据集
小学生都推荐的好文
Python2寿命只剩一个月啦!还不快赶紧学起Python3酷炫到爆的新特性!
搜狗微信下线了怎么获取公众号文章?最新方式手把手教你
万物皆可Hook!重新捡起Hook神器-Xposed框架
下一代容器架构已出,Docker何去何处?看看这里的6问6答!!
日志太多怎么搞?一套爬虫监控系统全搞定!
- 点赞
- 收藏
- 关注作者
评论(0)