akamai小记
记录一次akamai逆向的小细节
ps:难,不是靠听,易,不是靠说
目标网站:
- aHR0cHMlM0EvL3d3dy5xYXRhcmFpcndheXMuY29tL3poLWNuL2hvbWVwYWdlLmh0bWw=(自行b64解码)
- aHR0cHMlM0EvL3d3dy5rb3JlYW5haXIuY29tLw==(自行b64解码)
首先我们要知道akamai最后成功的显示就是Cookie中的~1~
转变为~0~
,也就是下图这种,好了废话不多说直接开始吧!嘟噜噜嘟嘟!
1.首先我们找到我们的目标请求,如下图gdBBBRZDQ
,每天他的链接都会变的,所以你的可能跟我不一样,还有就是每周二他会更换js代码,所以我们的目标就是这个sensor_data
.
2.然后通过跟栈找到我们sensor_data
的生成位置,会解混淆的可以解混淆再替换分析,我不太熟练就直接来了,如下图,我们可以看到它是由一些小东西连接起来的.
3.我们继续往上看,发现一切都是由一个58位数组生成的,这里面肯定暗藏玄坤.我的思路是通过文本比较比较每次请求的58位数组查看他们的变化,然后我们可以发现4次请求分别变化了的位数.
第一次变化 1 25 53
第二次变化 1 13 23 25 39 49 51 53 57
第三次变化 1 17 23 25 41 43 45 53
第四次变化 1 9 13 17 21 23 25 53
4.所以我们先冲第1位开始看,我们定位到第1位生成的地方,我们发现是EH
方法生成的,我们跟进去.我们慢慢分析可以发现,这个参数和Ua
以及一些屏幕的宽高
有关.
5.我们继续分析第25位,发现是一些时间相关的统计,还有_abck
、浏览器指纹等等组合而成.
6.接下来继续看第53位,可以发现是一个RB
方法,传入了一个有着时间记录、第1位加密数据以及鼠标移动轨迹的对象,然后生成了|
分割的字符串.我们跟进去看就会发现,它只使用了对象中的startTimestamp
这个数值.
1 | param_90_obj = { |
7.接下来的几次请求也就是分别像数组中添加字体及字体数据加密、鼠标移动轨迹、点击轨迹、页面可见性、canvas指纹、固定设备固定值等等,只要你足够耐心,慢慢跟肯定没问题的啦!
8.还有就是存在的ja3指纹鸟,你可以使用tls_client
或者curl_cffi
库,都是可以解决的啦,刚把得哟!附上成功截图留念一下,小成功嘻嘻!