akamai相关资料整理

2023-10-21 17:59
文章标签 整理 相关 资料 akamai

本文主要是介绍akamai相关资料整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Akamai阿卡迈:常用于国外网站,2019年初期版本验证cookies中的_abck,后期增加ak_bmsc等其他指纹设备。

市面上akamai分为两个版本:1.75和2.0,1.75就不用说了,逆向起来很简单并且代码不会再更新了。重点是2.0,不仅每周都会更新,而且最近加强了风控和混淆方案。

1.75相对而言较为友好,目前利润PerimeterX等风控的加固水平也停留在1.75的难度,只增加了一些简单的混淆方式,代码大部分是可读的。

2.x Akamai版本在混淆加固上下了血本,几乎每天都会对源代码进行重新混淆,并且对函数进行内联。很多技术是通过对1.75的了解加上对2.x版本的断点调试研究出的生成方式。
————————————————
版权声明:本文为CSDN博主「TiggerRun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shipsail/article/details/125055948

研究akamai已经有些时日了,市面上akamai分为两个版本:1.75和2.0,其实也不叫2.0吧,因为新版的没有像旧版的一样指定版本号,为了区分方便暂且叫它2.0。

1.75版本就不用说了,逆向起来很简单并且代码不会再更新,国外的航司用的比较多。重点是2.0,不仅每周都会更新,而且最近加强了风控和混淆方案。
————————————————
版权声明:本文为CSDN博主「悦来客栈的老板」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq523176585/article/details/126277343

正常的浏览器访问会调至少两次akamai的那个js文件,第一返回的cookie没有用,第二次带上行为数据的请求的才有用。第一次返回的amakai js文件是自执行的,目前可以反混淆处理出来。猜想后续的sensor_data就是这里面生成的,会涉及到很多行为数据。

通过逆向js,可以复写逻辑或者扣代码的方式,来生成sensor_data。

之后拿着生成的sensor_data去破盾,可以看到出现了破盾标志,这表明破盾成功了。(生成cookie的_abck字段)

-------------------------------------------------------

思路:
    1. 首先访问 https://www.flyasiana.com/5qSZcnDz_/hGWtnW/AkEc/auTFfPPk/9rYphrpkup/dDswFj8m/FVRIJ3V/tGkQ?n$eum=157910959357612400 ,取出 set_cookie (ak_bmsc, bm_sz, _abck)
    2. 再通过 _abck 动态生成 sensor_data
    3. 再次访问  https://www.flyasiana.com/5qSZcnDz_/hGWtnW/AkEc/auTFfPPk/9rYphrpkup/dDswFj8m/FVRIJ3V/tGkQ?n$eum=157910959357612400 , 携带 三个cookie 以及 sensor_data ,注意:sensor_data 是一个 request playload, 因此需要 json.dumps() 。取出 set_cookie (_abck)
    4. 携带 _abck 进行访问 https://www.flyasiana.com/I/CN/CH/SearchRevenueDomesticFareDrivenAvailFlights.do?n$eum=157910959357612400 。取到返回值
    5. 如果第四步 返回状态码为 403, 则将参与以上步骤进行置换_abck值
 

---------------------------------------------------------

这个路径,第一次是get,拿到这个js,后续会post数据到这个地址。这个post的触发时机及次数不同版本有点不同,IHG和TI是初始加载的时候都会发送post sensor_data,TI的次数更多(我测试3,4次都遇到过),然后就是点击的时候会触发,TI是每次点击都会触发post,IHG不会,IGH是拿到验证过的_abck后,就不会再触发请求了,这个js里面有判断逻辑,第一个-1如果换成0了:DAA11479B85BD170A757258B40E228AD~0~

这个sensor_data post要模拟完全,不然可能出现协议成功率问题,持续添加可以后,那就是多账户问题了,这个可以通过差异化不同账号的请求环境来处理,比如模拟不同的浏览器参数。

对于这个调试,一个就是通过代理替换,定向到本地文件或自己的本地服务器,还一个就是可以自己保存网页,架设一个自己的服务器,这样可以随时改代码来调试了。

本地调试的时候的,这个js路径要保持一致,有代码会检测这个路径格式:

TI的这个js逻辑要比IHG的复杂:

1、post的sensor_data数据的,IT有加密,IHG没有。

2、IHG只用到了cookie中的_abck,TI多了个bm_sz。

对于本地调试,修改过的代码要跳过校验,js里面有逻辑会检查函数是否修改过,下面这里是校验几个函数的hash,对修改过的函数,校验不过就会走错误分支:

------

新版js逻辑混淆严重,可以分析老版本js,检测的浏览器特征基本是一样的,只是最后post前对sensor_data进行了乱序和加密。

----------------------------------------------------------------------------------------

众所周知  耐克nick 阿迪adidas 德州仪器(TI ti.com)  得捷电子(digikey )贸泽电子(mouser)等较大的芯片 购物之类的网站都引入了akamai的js防机器人识别系统,现在最新的akamai版本是1.7,如果想实现http抢购,那么破解akamai的js 实现sensor_data 然后换取相关有用的_abck是必须的,然后模拟tsl(模拟浏览器怎么发送请求的 不是简单的python go php等)使用个requests就可以的,然后发送相关的数据,那么问题就解决了
————————————————
版权声明:本文为CSDN博主「快乐的兔八哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42114689/article/details/120609982

 

https://github.com/OXDBXKXO/akamai-toolkit

GitHub - oldcomputer2007/akamai-deobfuscator: A tool to help you deobfuscate Akamai scripts.

 参考:





Akamai保护的相关网站(IHG,TI)学习记录 - 知乎

Akamai阿卡迈_abck逆向sensor_data(一)_Codeooo的博客-CSDN博客_akamai逆向

Akamai阿卡迈_abck逆向sensor_data(二)_Codeooo的博客-CSDN博客_akamai逆向

Akamai 反混淆篇_TiggerRun的博客-CSDN博客_akamai逆向

Akamai sensor_data_zwl_haley的博客-CSDN博客_akamai nike

老外写的js反混淆教程_lacoucou的博客-CSDN博客

Akamai 2.0 最新版逆向分析_Freak896的博客-CSDN博客_akamai 逆向

JS逆向|某卡麦 2.0 最新版逆向分析_悦来客栈的老板的博客-CSDN博客

Akamai2.0 Akamai1.75 破盾 sensor_data_herochl的博客-CSDN博客_akamaiAkamai 2.0 最新版逆向分析_Freak896的博客-CSDN博客_akamai 逆向

在html页面中的js如何调试,你可能不知道的14个JavaScript调试技巧_yuan xiong的博客-CSDN博客

Akamai 1.75 sensor_data源码逆向破解(一)_herochl的博客-CSDN博客_akamai逆向

Akamai sensor_data_zwl_haley的博客-CSDN博客_akamai nike

这篇关于akamai相关资料整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推