如果一个页面大部分是script标签构成,80%以上是webpack打包。然后重写 window 数组的 push 方法为 webpackJsonpCallback,也就是说 window.push 其实执行的是 webpackJsonpCallback,window.push接收三个参数,第一个参数是模块的ID,第二个参数是 一个数组或者对象,里面定义大量的函数,第三个参数是要调用的函数。
跟进到 _0x7f9865 函数中,直接把算法扣下来:我们来分析下这是什么算法,倒着看,_0x70f89f、_0x1d4342 之类的是一些十进制数,keyStr.charAt 就是获取 keyStr 字符串特定位置的字符值,最后拼接起来:keyStr 就是源码中的 this,其值如下,长度为 65 位:这一串完全符合 Base64 编码索引表的特征,包含大写字母、小写字母、数字、加号和斜杠,64 位,还有一个填充字符,Base64 编码的基本流程如下,例如编码 Hello 字符串:首先,将 Hello 转换为 ASCII 码,得到 72 101 108 108 111;
Form Data 解决了,再来看看 Request Headers 里的 token 参数,由于它存在于请求头里,所以我们可以通过 Hook 的方式来查找其生成的地方:这里我们也可以直接搜索 token、setRequestHeader 之类的关键字,很容易在 common.js 里找到,当我们点击登陆,会有一个 csrfSave 的请求,返回的 data 值,经过 encrypt 方法加密后就是登陆请求头的 token 了。
之前我发过关于爬虫的帖子,有不少人也关注了我并在后台私信我,说他们也想学习下爬虫补贴下家用,问我到底哪家机构好。这真的是问对人了,首先我就是0基础自学的编程,从2012年入坑易语言再到2019年入坑Python,一开始学习的自动化办公,数据分析,量化投资再到现在的爬虫。