akamai逆向浅析

2023-11-05 00:20
文章标签 逆向 浅析 akamai

本文主要是介绍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

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

免责声明

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

这篇关于akamai逆向浅析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346162

相关文章

浅析Java如何保护敏感数据

《浅析Java如何保护敏感数据》在当今数字化时代,数据安全成为了软件开发中至关重要的课题,本文将深入探讨Java安全领域,聚焦于敏感数据保护的策略与实践,感兴趣的小伙伴可以了解下... 目录一、Java 安全的重要性二、敏感数据加密技术(一)对称加密(二)非对称加密三、敏感数据的访问控制(一)基于角色的访问

MyBatisX逆向工程的实现示例

《MyBatisX逆向工程的实现示例》本文主要介绍了MyBatisX逆向工程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录逆向工程准备好数据库、表安装MyBATisX插件项目连接数据库引入依赖pom.XML生成实体类、

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到