Akamai2.0 反爬虫系统 sensor_data参数及akamai-bm-telemetry参数逆向分析
1. 引言
Akamai反爬虫系统是保护网站避免遭受攻击以及api数据安全的一套产品。目前他的防护手段有两方面,一个是在https请求层面的防护,另外一个是收集当前浏览器信息,进行一个风控拦截。不同站点,不同接口风控拦截的程度都不同。
2. 关于https请求层面ja3指纹的绕过
目前网络上有很多关于过ja3的请求文章。推荐一个Python第三方过ja3的库 curl_cffi
3. sensor_data风控验证流程
本次分析的站点是maersk.com站点。主要的验证是通过 _abck 这个cookie值来进行校验的。提交 sensor_data 参数返回过来的。
如果 **sensor_data **这个值合法会返回一个有效的 **_abck **。接下来就可以愉快的请求对应网站的内容了。不过 **_abck **是有时效的。被403拦截之后就需要重新请求生成。
4. sensor_data 参数分析
现在我们去分析 sensor_data 这个参数是如何生成的。
喏,瞧就是这个js生成的,混淆的很恐怖。不过也没关系,可以利用AST技术进行还原。这块还原知识点可以了解一下蔡老板的AST知识星球。不过我没有进行还原。硬着头皮进行调试。
可以看到 sensor_data 参数是58长度的数组进行拼接加密生成的。我们接下来具体分析一下这些数组中的内容是什么。
这些是数组的具体内容。
这是我经过调试他的js代码进行分析得出的一些具体参数的含义。
其中通过我的分析和测试 canvas指纹和运动轨迹是最重要的,更关键的是canvas指纹还不能随机伪造。canvs指纹可以去收集一些真实浏览器的来进行替换。那么运动轨迹的话,可以写算法模拟真实的鼠标移动、点击等等行为。
:::info
高并发的要求是模拟出来的浏览器指纹信息和运动轨迹数据要足够真实,并且需要动态更换ip,一个ip高并发请求会被拦截掉。还有一个关键信息是生成的参数不够真实的话akamai系统会给通过,但是会拖慢请求接口的时间!!在一些重要性的接口中会体现出来。
:::
5. akamai-bm-telemetry参数生成
该参数是在接口中的headers中带的。他生成的方式就比较简单了,是基于 **sensor_data **参数进行生成的,用了base64进行编码组成的。我们来看一下
经过代码翻译
具体就是这么生成的。
6. 成果展示
100个并发通过率100%
可以看看这个通过失效,生成比较真实的 sensor_data 通过时效就很高!一秒内就能过掉akamai的系统。如果置信度不是很高的话会拖慢速度10s内才通过。当然这跟ip也有一定的关系。
7. 商务合作
生成 sensor_data 的算法我已经封装成api了,可以进行调用,如果不想自己研究的话,可以联系我进行接口调用服务。当然这是要收费的。
我的联系方式
vx: King_ww__
qq: 240942649
8. 支持站点
名称 | 链接 |
---|---|
马士基船公司 | https://www.maersk.com/ |
加拿大航空 | https://www.aircanada.com/ |
国泰航空 | https://www.cathaypacific.com/ |
COACH蔻驰 | https://www.coachoutlet.com/ |
ZIM船公司 | https://www.zimchina.com |
Miles & More航空 | https://www.miles-and-more.com/ |
大韩航空 | https://www.koreanair.com/ |
捷星航空 | https://www.jetstar.com |
jal航空 | https://www.jal.co.jp/jp/en/?city=TYO |
fedex物流 | https://www.fedex.com/ |
阿迪达斯 | https://www.adidas.com.cn/ |
其他站点联系测试 |