1. 某速乐
- cookie 中会有
__jsl_clearance
、__jsluid_...
; - 两次或以上请求,第一次有
521
返回码,之后返回200
;
状态码欺骗:
加速乐的关键加密代码,是无法通过直接搜索的方式查找到的,因为浏览器会清空缓存。
遇到 状态码欺骗 的时候,需要使用 Fiddler 进行抓包分析。
这里我们以某政府网站为例进行展示,如下图:
如果不嫌麻烦给,也可以通过在浏览器打 script 和 XHR 断点的方式,通过手动调试的方式分析代码,也能获取到加密的代码,如下图:
我们把 document.cookie =
后面跟的代码复制出来,放到 console 中执行,得到下面的结果:
注意看:执行结果中 __jsl_clearance
就是我们想要的参数值。
2. 某数
- 网页源代码中,有一大串的
<meta content=xxx...
,还有一个 5维数组。
如下图:是商标查询官网的真实源代码,其中就包括这两个特征。
- 打
script
断点,刷新网页时会生成一个window.$_ts
对象(注意:js 代码中这个$_ts
一般是动态生成的),同时还会有一堆乱码。
如下图:
- 加密结果开头:
如果是4
开头表示是 4 代;
如果是5
开头表示是 5 代; - 四代加密特征:
四代的加密,首先会用meta
的content
生成一个大概 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 文件,其中有 大量的【三元表达式嵌套】,以及大量的【控制流平坦化】。
- 案例:企查查登录滑块。