akamai逆向浅析

前言

akamai是啥公司就不多提了,都说akamai是爬虫行业难啃的骨头,其难点不在js逆向,在于风控。对浏览器信息甚至是页面信息进行采集,然后对各项指标进行一个打分,最终根据打分情况决定是否给你过(具体是啥样我也不清楚,都是我瞎猜的)。在探索了一两周之后,这里简单记录一下心得和成果。强烈建议在看本文之前先观看B站UP主落枫_rain的Akamai系列视频,我也是跟着up弄的。

目标网站

aHR0cHM6Ly93d3cuZGlnaWtleS5jbi8=

akm逆向目标

获取一个有效的cookie:_abck,该cookie是通过请求页面set-cookie设置的。cookie大概长这样 _abck=00C29F4BDD20D73E1DDFD22031FC2839~-1~YAA......i2Eg==~-1~-1~-1, 哪怎么算有效了呢,当这段~-1~变成~0~

结果展示

在这里插入图片描述

我这过得应该是很简单的akm网站,大数组58个检查点并没有补多少,还没有对鼠标点击移动进行模拟。
废话不多说,肝肝肝!!!。

相关环境准备

python包

pip isntall node-vm2: 因为本人用的vm2补环境的方案,此包运行补好的js;
pip install pyhttpx: amk风控还有对tls指纹以及http2指纹检查,我用这个包是可以过的。当然你也可以用pycurl,然后编译boringssl等方案。

nodejs相关

node: 我的node版本v18.15.0
npm install vm2: vm2沙盒

请求流程分析

0x0

当我们在浏览器输入网址后,浏览器对原始页面进行渲染,这个时候会异步加载加密的js文件/-ppuDV/Mf/Yc/7kc2/MuFsajKsrY/3rmuJNbLiYON9S/E0B3bzkhJAE/c3tb/alQDYXo,这个js的url大概长这样,为啥是大概呢,因为过一两天这个url就变了,js内的内容也变了,主要变的是变量名,执行流程没变。 返回的目标cookie大概长这个样子_abck=3F12CDCD57BFFB6E2F1093C5FB59BB45~-1~YAAQ......la8u3cCw2v2fTpd4eZM=~-1~-1~-1

0x1

加密js加载回来之后,浏览器执行js内的代码,对浏览器环境简单的检查一下,最终构建好加密参数,通过XMLHttpRequest对象, 发送一个url为/-ppuDV/Mf/Yc/7kc2/MuFsajKsrY/3rmuJNbLiYON9S/E0B3bzkhJAE/c3tb/alQDYXopost请求。这次返回的cookie长这个样子_abck=3F12CDCD57BFFB6E2F1093C5FB59BB45~-1~YAAQgZ......Zg==~-1~||1-abaeXPCFxx-1-10-1000-2||~-1,与上面的cookie区别是~-1~-1~-1变成~-1~||1-abaeXPCFxx-1-10-1000-2||~-1, 还不够最终的目标是~0~啊,继续探索

0x2

如何触发第二次的Post请求? 每一次环境是如何触发检查的?头痛!!!通过跟栈,以及日志发现加载js的时候绑定了一堆事件,有些环境检查都是通过各种事件去触发的,各种都尝试一下,先去执行上面xhr对象的xhr.onreadystatechange方法,把新cookie初始化一下,执行window.dispatchEvent模拟触发一下DeviceMotionEvent事件,然后把window.setTimeout里面的保存的方法执行一下,果然发送了第二次的xhrPost请求,这次返回的cookie有效了,变成~0~了。_abck=3F12CDCD57BFFB6E2F1093C5FB59BB45~0~YAAQgZZU......SzYvUq329fc~-1~||1-abaeXPCFxx-1-10-1000-2||~-1

检测环境记录

WebGL,UA, window.screen, plugans个数, html页面检测input输入框, navigator的属性检测:appMinorVersion bluetooth storage getGamepads,permissions,SpeechSynthesis,
不同样式字体的offsetHeight offsetWidth各种自动化浏览器的检测webdriver之类,两次canvas的toDataURL等等
amk检测的东西太多,还有很多环境没补完,补到现在也就算刚入门吧。

具体js分析

下次一定

代码

里面有我补的小2w行代码,但是补环境框架代就不给了, 需要的联系wx: h995018884

链接:https://pan.baidu.com/s/1VGSW_-ZFXeMCXYi8FjQHuw?pwd=10yh
提取码:10yh

如果觉得本文不错,就请抽根华子吧
请添加图片描述

免责声明

本代码仅用于学习,下载后请勿用于商业用途,对于违反相关法律、造成危害的滥用行为,不负任何责任。

  • 20
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值