ScrapeCenter爬⾍平台之SPA6案例
前⾔
Scrape Center是著名爬⾍⼯程师崔庆才发布的⼀个爬⾍案例平台,平台整合了⽬前⽐较主流的⼀些反爬案例,每个案例对应着⼀些知识点,适合学习交流。其实在分析和学习逆向的⼀些⽂章⾥,每个⼈都有所保留,如崔⼤所说:
sqldatasource连接数据库如果拿别⼈的站或者 App 来做案例的话,⽐较容易触犯到对⽅的利益,风险⽐较⾼,⽐如把某个站的 JavaScript 逆向⽅案公布出来,⽐如把某个 App 的逆向⽅案公布出来。如果此时此刻没有对⽅联系你的话,⼀个很⼤原因可能是规模太⼩了别⼈没注意到,但不代表以后不会。
4的反码是多少我会⼀些⽐较富有代表性的案例进⾏分析并编写代码,以供互相交流。如果⼤家有更好的切⼊点,也希望能够多加点拨。
分析
本次⽬标是平台中的SPA6案例,就是下⾯这张:
按F12打开开发者⼯具开始抓包,点击下⼀页,可以很清楚的在XHR请求中到请求的URL:
既然崔⼤已经把题⽬说出来了,也就不需要卖什么关⼦了,直接token的⽣成吧
全局搜索token并查看,确定哪个是我们需要的。看了⼀圈,基本确定是这个地⽅,limit offset token,正好是URL⾥的三个query参数:
这⾥有混淆,不太⽅便看,可以先⾃⼰处理⼀下混淆再分析,因为这边的逻辑不是太复杂,我就不做反混淆了,直接⼲了。Ctrl+F搜索_0x1f9ad2,到token来源,下个断点:
然后开始断点调试
果然停在了这⾥,_0xdcd0b3['a']是⼀个函数,点击F11进到⾥⾯。
调⽤了this['_vm']['_data']['$$state'],继续F11跟进:
做了⼀个判断,这⾥不知道怎么办就去控制台打印。
_0xf5267f为undefined,那⼀定就是⾛后⾯的流程了。继续单步调试,经过了⼏层循环以后来到了这⾥:
通过for循环向_0x37b6c5这个数组中push了⼀些东西。继续F9步进,先看看数组⾥都有啥。
两个参数,第⼀个是url的path,第⼆个是10位的时间戳。也正是对上了崔⼤题⽬中的关键字:时间限制。这⼀步虽然经过了混淆,也不难猜出做了什么。⾸先⽤“,”拼接列表,前⾯的“SHA1”告诉我们,很可能⽤了SHA1加密。接下来在下⾯打个断点,再回到⽹页中点个页码重新触发断点:
一键编程下载手机版
控制台输出看看:
得到经过疑似SHA1加密的值为"c0d0a47f62c7e3596d55c63d2bf403792e50bb5b"。
个SHA1在线加密⼯具验证⼀下:
⼀⽑⼀样。回到代码中继续分析:
这⼀步继续加盐,在sha1加密后的字符串后继续拼接','和时间戳。
爬虫软件 app
然后进到encode⽅法,替换了些字符串,不管他,继续看:
看个球,我⼀路瞎按F9跟丢了····
二进制转换八进制用什么方法好,回来了,还是这⾏:
做了⼀个三段式判断,如果_0x5af706为真则执⾏“:”前⾯的⼀段代码,⽼规矩,在控制台打印他:
⼜是假,那就是⾛_0x542a1c这个函数了。
跟进:
这个_0x4f327d可能不是我们要的。再看看_0x20db36
做逆向⼀定要对⼀些常⽤API敏感⼀些。这个“btoa”让我⾮常亲切。
怎么创建网站相册那如果我们猜对了的话,_0x14cd4d应该是window对象。
是否破案,试⼀招便知。
编码
先整理⼀下过程,⾸先⽤path,也就是"/api/movie"加盐处理,拼接“,”和当前10位时间戳后进⾏SHA1加密,把加密后的结果继续拼接“,”和当前10位时间戳,将新组成的字符串base64得到完整token。
上代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论