抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

前言

该网站是一个免费的测速网站,我想要实现自动化测速,于是就做一下爬虫,随便记录一下。意想不到的是网站没有做反爬,,,感觉完全不能称为js逆向,,

分析网站

打开控制台,发现有用信息是用websocket传输的,需要的是一段id,猜测id包含需要被测速网站的url。返回的信息包括id和session_id,猜测session_id是对应测速节点的id,但是返回的信息里面并没有写明是哪个测速节点,只包含了测速的结果。

现在需要找到如何生成id的。打开调用栈,每个函数都打开看一下,发现一个可能是发送websocket的函数。

之后搜索这个e是哪里生成的,按ctrl+f搜索,发现了定义e的位置。之后有一个ae(e)的操作,打个断点看一下。这个e的内容包含了我要测速的网站还有测速的GET方法和其他一些自定义配置。

之后F10继续运行,发现这个a是包含我所要的所有信息的,包括前面提到的idsession_id是对应测速节点的信息(ISP,位置等)。也就是说ae(e)是获取id的那个函数。

跳转到ae(),发现有POST的关键词,并且在上面找到了path,尝试一下把e的内容构造成一个json,并且POST到对应url,结果报错。

之后把json的内容一些一些删去,发现如果有多余的内容是不行的,只能带有必要的内容,否则报错。返回的内容也令我满意,到此js逆向结束。

评论