某团外卖H5版本爬虫开发和JS逆向过程(二)

2019年11月17日 0 条评论 952 次阅读 0 人点赞

前言

接上回写美团外卖H5爬虫的讲,上次写了三个参数中x-for-with和_token的生成。本以为UUID,就可以循着这个思路找到了,后来还是有小朋友问我怎么找UUID,这篇做个答疑吧。

某团外卖H5版本爬虫开发和JS逆向过程(二)

本文主要介绍美团外卖H5页面UUID的生成算法逆向。没看过上篇文章的,点这里。(墙裂建议看完上一篇再看这一篇)

某团外卖H5版本爬虫开发和JS逆向过程

某团外卖H5版本爬虫开发和JS逆向过程(二)

参数逆向UUID

先看看UUID长什么摸样。

某团外卖H5版本爬虫开发和JS逆向过程(二)

嗯,看着是个很标致的样子。🤭

一般找这种用户身份标识的ID,我们是应该先看前置的报文,是不是服务器返回的UUID,如果是(很多时候都是),就去模拟报文去服务器取一个合法的UUID,如果不是那就很可能是本地生成的。

我们今天这个是再我观察了来往报文发现不是网络通信传回来的,那我就开始再本地找找。

某团外卖H5版本爬虫开发和JS逆向过程(二)

简单粗暴法

先最简单粗暴的办法,就是全局搜一下“-”的使用,看一下他如何拼接字符串。

什么?全局搜?全局搜是怎么搜?

这里需要一个小技巧

某团外卖H5版本爬虫开发和JS逆向过程(二)

  1. 先把该页面保存到本地,ctrl+s,保存到本地即可。

  2. 再选择所有的js文件,用notepad++打开

  3. 输入关键词全部文件搜索

过程截图如下:

某团外卖H5版本爬虫开发和JS逆向过程(二)

某团外卖H5版本爬虫开发和JS逆向过程(二)

可以看到,我用的关键词是"-",是带双引号的哦(想想原因?)。

某团外卖H5版本爬虫开发和JS逆向过程(二)

搜索结果显示,两个文件中有涉及到这个关键字,我们大致浏览一下代码,发现应该是analytics.js这个文件,或者找到任何你觉得可疑的位置,回到页面的js打上断点,重新刷新页面。

某团外卖H5版本爬虫开发和JS逆向过程(二)

某团外卖H5版本爬虫开发和JS逆向过程(二)

断点找到这里就单步调试还原生成算法就好了,当然也可以把这个js抠出来python调用js执行也ok。

某团外卖H5版本爬虫开发和JS逆向过程(二)

分析一下js源码大致是一些UA参数、分辨率参数等等,自己伪造传入的时候要跟自己包体带的信息一致,最好写手机参数信息哦。下面是我的算法还原函数,供参考。

某团外卖H5版本爬虫开发和JS逆向过程(二)

上面的暴力方法是通过正向编程的经验推断过来的,但也不是次次都好使,下面简单说通常的办法。

顺藤摸瓜法

前期说明一下,我们仔细观察报文可以发现的是,uuid、

_lxsdk_cuid、openh5_uuid、_lxsdk都是一致的,仔细看看cookie就知道了。那么我们找到任何一个的生成就可以了。

还是和上次一样的思路,我们先用xhr断点断下网络请求(不会的去看上一篇啊),查看堆栈。

会找到uuid是cookie里面取到的,那么我们就再找一下cookie的设置uuid的部分就好了。

这个和上一篇是一个思路,我就不一个个截图了。

tips

这部分要善用两个东西:

  1. chrome的无痕窗口

  2. 页面缓存的删除

某团外卖H5版本爬虫开发和JS逆向过程(二)

某团外卖H5版本爬虫开发和JS逆向过程(二)

好了。自己试试吧~

某团外卖H5版本爬虫开发和JS逆向过程(二)

以上。欢迎阅读转发~

想要转载的朋友请告知我之后转载,并注明原帖来源。
如有问题,请关注公众号回复【作者】获取我的联系方式。
想了解更多技术分享,请长按识别下方二维码关注我吧。

某团外卖H5版本爬虫开发和JS逆向过程(二)

admin

这个人太懒什么东西都没留下

文章评论(0)