Logo
Overview

站内搜索

搜索文章

输入关键词开始搜索。

    记录某一测速网站的 js 逆向的过程

    记录某一测速网站的 js 逆向的过程

    2024年4月1日
    1 min read
    记录某一测速网站的 js 逆向的过程

    前言

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

    分析网站

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

    需要请求的 url
    需要请求的 url
    返回的信息
    返回的信息

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

    调用栈
    调用栈
    可疑点
    可疑点

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

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

    定义 e
    定义 e
    断点 e
    断点 e
    a 的值
    a 的值

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

    关键词
    关键词

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

    评论