记录于:2025.1.8
aHR0cHM6Ly93d3cuZGhsLmNvbS9jbi16aC9ob21lL3RyYWNraW5nL3RyYWNraW5nLWVjb21tZXJjZS5odG1s
Akamai阿卡迈:常用于国外网站,2019年初期版本验证cookies中的_abck,后期增加ak_bmsc等其他指纹设备。
有数据的接口基本只需要_abck即可,
加密参数获取流程:
- 请求html文档会返回一段js链接,使用get请求可以获取实时的JavaScript代码。
- 使用获取到的代码来生成一段加密参数sensor_data,长度大约为一千七左右
- 使用post请求前面的js链接,若返回的结果的set-cookie中的_abck中间为 0 即获取到正确的cookie,若参数错误返回的是 -1
sensor_data 重要点
{
"ver":"hYLXImDOnRR5eDAgk63ANnTyi5pMbcxsxh3tyRozcUc=",
"fpt":"-1",
"fpc":"94",
"ajr":"45921|31341",
"din":[{"wow":2560},{"nap":"Gecko"},{"nal":"zh-CN"},{"ucs":"8102"},{"ran":"0.476463975238"},{"she":1440},{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"},{"swi":2560},{"adp":"cpen:0,i1:0,dm:0,cwen:0,non:1,opc:0,fc:0,sc:0,wrc:1,isc:0,vib:1,bat:1,x11:0,x12:1"},{"ash":1400},{"xag":12147},{"hz1":427217},{"ibr":0},{"wdr":0},{"nps":"20030107"},{"wih":1279},{"wiw":2560},{"tsd":0},{"pha":0},{"npl":5},{"dau":0},{"hal":868161141468},{"asw":2560}],
"eem":"do_en,dm_en,t_en",
"ffs":"0,0,0,0,4910,113,0;0,-1,0,1,4771,1101,0;0,0,0,0,4702,113,0;0,-1,0,1,4681,1101,0;0,-1,0,1,4765,1101,0;0,0,0,0,4925,113,0;0,-1,0,1,4913,1101,0;0,0,0,0,4796,113,0;",
"vev":"",
"inf":"0,0,0,0,4910,113,0;0,-1,0,1,4771,1101,0;0,0,0,0,4702,113,0;0,-1,0,1,4681,1101,0;0,-1,0,1,4765,1101,0;0,0,0,0,4925,113,0;0,-1,0,1,4913,1101,0;0,0,0,0,4796,113,0;",
"ajt":"0,0",
"kev":"",
"dme":"",
"mev":"",
"doe":"",
"pur":"网页原链接",
"pev":"",
"mst":[{"kevl":1},{"mevl":32},{"tevl":32},{"devl":0},{"dmvl":0},{"pevl":0},{"tovl":0},{"delt":2},{"it":0},{"sts":1736322282936},{"fct":-999999},{"dd2":18574},{"kc":0},{"mc":0},{"ww8":0},{"pc":0},{"tc":0},{"ssts":2},{"tst":0},{"rval":"-1"},{"rcfp":"-1"},{"nfas":30261693},{"jsrf":"PiZtE"},{"jsrf1":72085},{"jsrf2":13},{"signals":"0"},{"mwd":"0"},{"hea":""},{"dvc":"adjfYf999k9mfkq7sj1v,10,l+c+k+d+g+i+h+a+e+j+"},{"srd":"0"}],
"o9":0,
"tev":"",
"sde":"0,0,0,0,1,0,0",
"pmo":"","dpw":"","pac":"",
"per":"8",
"pde":"","oev":"","if":"",
"fwd":[{"fmh":""},{"fmz":""},{"ssh":"0"}]
}
(1) 每个JS的ver 还有mst[“dvc”]中的 l+c+k+d+g+i+h+a+e+j+ 每个js都是固定的
(2) ajr需要逆向, din mst 部分参数需要逆向
(3) akamai很好跟,xhr断点就可以找到加密参数的位置,一开始最好用fidder的AutoResponser 替换一下js再跟,然后差什么参数全局搜索就行.
(4) 注意: din跟完了之后有二十三个元素,最后有一个数组位移,把AutoResponser取消掉跟这里,不然看不出来差别,每个js的参数会不一样,但是同一个js刷新多少次都是同一个,会误以为这个参数不会变
(5) mst[“dvc”]中的参数 ,adjfYf999k9mfkq7sj1v这个是动态随机的,是根据时间的差值生成的
(6) ffs和inf 是根据页面的input标签生成的参数可以写死
附一张请求通过的记录,被风控会返回 418