px是干嘛的?
px是反机器人保护盾,如果网站cookie中带_px2或者_px3的话,就是px盾了,,并且频繁请求后就会出现按压。如图
不得不说px的体验真的是差,,风控高的网站按压有时候要按很久,而且会多次不过。核心是对IP的要求太高,,就是如果你的ip质量够差的话怎么按都过不去的。。是不是很牛逼
所以业务基本上px分为无感和有感,有感就是出现按压,风控高的即使正常用户使用也很容易出按压,风控低的正常使用感知不明显。
PX生成过程
px首先是无感请求生成核心cookie(_px2 或 _px3),当环境比较差的时候或频繁请求后会触发有感。
两步请求生成cookie:
1.预请求获取cid、vid、cts等参数
第一步没采集什么环境,主要是调用服务器返回第二部需要使用的相关参数
请求包:
payload: aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBaRkZCQQgdHUVFRRxBQltAW0YcUV1fHRAeEGJqAwAAAgUQCAIeEGJqAwAGBwoQCBBlW1wBABAeEGJqAwMLAgAQCAIeEGJqAwMHBAIQCAQKAgseEGJqAwAABgoQCAGEEAgIeEGJqAwM^SB}CgcQCAMECgDNsKBCwMD8CwYCBQMeEGJDqAwAACgNaIQCA>MECgsBCwMDCwYCCwAeEGJqAwMDGCwQQCBAFBQsKCgsGAh`8AAFBXHwKMDV1cfClcFAB8DAQ}JWBFcCBwQGAGgYQHhBiKagMAB7wQGEAhcR15eHhBiagMABwQHEAgfAx4QYmo7DAwEFCxAIRkBHV09Pbw==
appId: PXkp4CLSb5
tag: v8.6.1
uuid: 77988940-22be-11ee-8e72-130d6e056404
ft: 311
seq: 0
en: NTA
pc: 2913261039129711
pxhd: e9e041a88f56bd6157a61def7340d6f1e27a5ca33f3574b6e4a7888fa9e9b7ee:744c5e3f-22be-11ee-a82c-a13b63ccae21
rsc: 1
参数说明:
payload:核心数据,已加密
appId: 网站唯一标识
tag: 版本号
uuid:客户端生成uuid
ft:版本相关固定值
seq: 请求序号,从0开始
en:固定值无效
pc:payload原文校验参数
pxhd:无效参数,可以忽略
rsc:请求序号,从1开始
为了方便调试,根据加密算法自己写了对应的解密算法
其中pyaload原文为:
[{
"t": "PX12095",
"d": {
"PX11645": "https://www.spirit.com/",
"PX12207": 0,
"PX12458": "Win32",
"PX11902": 0,
"PX11560": 6809,
"PX12248": 3600,
"PX11385": 1689391194071,
"PX12280": 1689391194092,
"PX11496": "77988940-22be-11ee-8e72-130d6e056404",
"PX12564": null,
"PX12565": -1,
"PX11379": true
}
}]
字段解释:
PX11645:当前网站地址
PX12207:0 或者 1 0 表示没被iframe内嵌
PX12458:平台 。如: Win32 | HP-UX |Linux i686 | Linux armv7l |Mac68K MacPPC | |MacIntel |SunOS| Win16|Win32|WinCE|iPhone|iPod|iPad|Android|BlackBerry|Opera
PX11902:当前请求次数。从0开始
PX11560:页面加载时间。Math["round"](window["performance"]["now"]()) 当前页面
PX12248:目前看到都是3600。没有值的时候都是这个
PX11385:第一次载入时间
PX12280:请求时间 比PX11385 大30-60毫秒
PX11496:uuid
PX12565:初始值-1,后面可能会重置到0 获取其他值
PX11379:是否未引入px的js,一般是false,,注意如果个性化的也为true
2.采集环境生成cookie
第二步其实就是采集环境基础信息,基本和其他盾没啥区别,核心就是第一步返回的相关数据参与了加密运算。
具体采集信息就没啥好说的,基本上都是采集差不多的信息,核心就是反混淆之后,一个一个环境的扣,没有捷径可言。献上部分反混淆之后的源码:
如果网站风控低的话,少量请求只要更换ip和浏览器useragent即可绕过px请求,如果需要大量并发的话,这种方案肯定不行了。
学习和测试
官方地址:解决反人类验证码hcaptcha、akamai2.0
文章仅供学习参考