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

相关文章

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

zookeeper相关面试题

zk的数据同步原理?zk的集群会出现脑裂的问题吗?zk的watch机制实现原理?zk是如何保证一致性的?zk的快速选举leader原理?zk的典型应用场景zk中一个客户端修改了数据之后,其他客户端能够马上获取到最新的数据吗?zk对事物的支持? 1. zk的数据同步原理? zk的数据同步过程中,通过以下三个参数来选择对应的数据同步方式 peerLastZxid:Learner服务器(Follo

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

JavaScript整理笔记

JavaScript笔记 JavaScriptJavaScript简介快速入门JavaScript用法基础语法注释关键字显示数据输出innerHTML innerText属性返回值的区别调试 数据类型和变量数据类型数字(Number)字符串(String)布尔值(Boolean)null(空值)和undefined(未定义)数组(Array)对象(Object)函数(Function) 变量