perimeterx 分析

发布于:2022-10-17 ⋅ 阅读:(7366) ⋅ 点赞:(7)

系列文章目录


第一章 关于perimeterx请求分析


前言

最近,抓取国外网站,碰到了另外一种反爬,觉得很有意思,就再次写文章发布出来。

一、perimeterx是什么?

perimeterx 是国外一家做网站防护的公司。其主要特征是,在网页的cookies中会有_px3、_px2等样式,当风控变得更加严格是会出现人机校验

 

二、perimeterx请求分析

1.分析

 

 打开浏览器控制台,简单抓包分析。我们知道网站请求的api。

 此处就是提交的表单,由于数据太长,为了方便看提交的表单有哪些。于是做个简单处理:

payload=aUkQRhAIEGJqAwIKAwQQHhBWEAhJEGJqAwIBBAIQCBBaRkZCQQgdHUVFRRxGWxxRXV8dEB4QYmoDAgsACxAIAh4QYmoDAwMKBBAIEGVbXAEAEB4QYmoDAgQAABAIAh4QYmoDAgAFABAIAwYLAG^AYeEGJqAwILBQIQCAEEAgIeES}DNGJqK8AwIDCCwYNQCaA>MEBAcKADgQACwUKAAIeEGJqAwMCAgYQCAMEBAcKAgQ`BAgAKKAAIe}EGJqAwIAAgQQCBALAQYFA1MEAh8GUQFWHwGKMDV71YfUwVQAx8LVFEAAAAFUQMLBwoQHhB7iagMCAgoKEAhGQEdXT09v
appId=PXDl82I3Ui
tag=v8.0.2
uuid=93471a60-4c3d-11ed-a7b1-9fc2227c1958
ft=278
seq=0
en=NTA
pc=6661667975807712
p1=ext
p2=0183d9calkmh02a70aadc956e1e0306f005894700bd0
p5=homepage
# 可以得知道,表单请求过去需要['payload', 'appId', 'tag', 'uuid', 'ft', 'seq', 'en', 'pc', 'p1', 'p2', 'p5']

简单分析下,appI应该是定值,tag很像版本号,seq是验证了几次,en是定值。(还有其他的几个值,我们后续会继续分析)。

        

2.调试

老方法,既然我们看到了该请求的表单数据,打断点调试。经过跟踪,看到原始的js代码

发现该处js 已经被混淆了,需要进行解混淆,方便调试,下面是做了简单的反混淆:

 该有的变量名都出来。然后开始调试(部分如下):

//payload 生成的位置

var a, u, f = pc(), l = It(z(n), (a = cf.ln,
                        u = cf.Cn,
                        [Wa, a, u].join(":"))), C = {
                        vid: Rn(),
                        tag: cf.ln,
                        appID: cf.Y,
                        cu: Wa,
                        cs: f,
                        pc: l
                    }, D = Vc(n, C)
//tag、appId  位置
un = "v8.0.2", fn = "PXDl82I3Ui"
//uuid  bc() 

// ft cf.Cn = "278"
//  en   "NTA" 

经过调试,找到上面变量生成的 位置,剩下的就是扣代码环节了,代码扣好后,即可进行请求。

下面是payload生成代码效果:

 


总结

以上就是今天要讲的内容,本文仅仅简单介绍了px的参数生成以及扣js代码使用,而px不仅仅是简单的代码逆向,要出处理px,就要解决风控、环境监测等其他的检测。这个后续在一起分析


网站公告

今日签到

点亮在社区的每一天
去签到