JS逆向:常见的JS加密厂商及其逆向特征

1. 某速乐

  • cookie 中会有 __jsl_clearance__jsluid_...
  • 两次或以上请求,第一次有 521 返回码,之后返回 200
image.png
状态码欺骗:

加速乐的关键加密代码,是无法通过直接搜索的方式查找到的,因为浏览器会清空缓存。

遇到 状态码欺骗 的时候,需要使用 Fiddler 进行抓包分析。

这里我们以某政府网站为例进行展示,如下图:

1640093585(1).png

如果不嫌麻烦给,也可以通过在浏览器打 scriptXHR 断点的方式,通过手动调试的方式分析代码,也能获取到加密的代码,如下图:

1640093769(1).png

我们把 document.cookie = 后面跟的代码复制出来,放到 console 中执行,得到下面的结果:

1640093976(1).png

注意看:执行结果中 __jsl_clearance 就是我们想要的参数值。

2. 某数

  • 网页源代码中,有一大串的 <meta content=xxx...,还有一个 5维数组
    如下图:是商标查询官网的真实源代码,其中就包括这两个特征。
    1639829588(1).png
  • script 断点,刷新网页时会生成一个 window.$_ts 对象(注意:js 代码中这个 $_ts 一般是动态生成的),同时还会有一堆乱码。
    如下图:
    1639829889(1).png
  • 加密结果开头:
    如果是 4 开头表示是 4 代;
    如果是 5 开头表示是 5 代;
  • 四代加密特征:
    四代的加密,首先会用 metacontent 生成一个大概 200位 左右的 cookie,并且首位有代表其版本的标识,但是这个是假的。假的 cookie 没办法参与url参数加密拿到正确结果,真正的 cookie 是在后面的 while 循环里得到。
  • 每50秒更新一次80T:
    请求的步骤,清掉cookie,请求主页,服务器返回80Scookie,拿到80S,进行第一次更新值,得到80T。随后每50秒更新一次80T,貌似更新的时候也会用到前一次生成的80T。并且每次加密得到的参数只能用一次。这个部分和本题基本无关,不展开谈了,相信调试过某数的也都知道。
  • eval中会hook所有fecth、ajax等请求的方法,只要是xhr请求,发出去的时候就会添加尾缀的加密参数。
  • 代码内容:
    某数4代有 6000~8000行代码,5代有一万多行代码。
    某数的js代码绝大部分的代码是和加密无关的,都是在检测浏览器指纹和系统环境。可以把真正的加密代码分离出来,也可以直接补环境把所有代码都拿到node中运行,最理想的方法还是让代码自己把检测环境吐出来。
  • 时间戳计算方法:
    先是会藏在meta里一个时间戳,也就是请求这段代码时候的时间,在eval中会对meta解密,把它取出来。然后后面会取一个假时间,和meta里的时间相加 减去当前时间。同时首页会有一个计时器每次调用执行的时间,如果大于12秒则会触发风控。

3. 某里

某里滑块

g.alicdn.com 文件夹,collina.js 文件,其中有 大量的【三元表达式嵌套】,以及大量的【控制流平坦化】。

  • 案例:企查查登录滑块。

4. 某验

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容