Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
P
px3
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangmingming
px3
Commits
fff00571
Commit
fff00571
authored
Apr 24, 2024
by
wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
f9
parent
0e79ca07
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
581 additions
and
23 deletions
+581
-23
f9test.py
f9test.py
+4
-1
b6.js
src/b6.js
+547
-0
f9.js
src/f9.js
+13
-9
px.js
src/px.js
+11
-11
test.py
test.py
+6
-2
No files found.
f9test.py
View file @
fff00571
...
...
@@ -23,7 +23,10 @@ headers = {
"sec-fetch-user"
:
"?1"
,
"sec-fetch-dest"
:
"document"
,
"accept-language"
:
"en"
,
'cookie'
:
'c_uuid=25010157537361200005373651080192024; _gcl_au=1.1.1203097261.1713425018; pxcts=938a40eb-fd54-11ee-8c87-4bee1f093631; _pxvid=938a30fc-fd54-11ee-8c87-cd85968600f1; _gid=GA1.2.1812281059.1713425021; cjConsent=MHxOfDB8Tnww; cjUser=a29c89d8-0635-47b3-83ac-20a9fc3a5d1f; cjLiveRampLastCall=2024-04-18T07:23:40.789Z; _pin_unauth=dWlkPVpUQXlNMlUzTTJVdFpqaGpOUzAwWWpNMkxUa3pNR0l0Wm1FMk4ySmtOMk14WlRVNA; _gat_UA-2678252-1=1; wisepops_visits=
%5
B
%222024
-04-18T07
%3
A30
%3
A17.483Z
%22%2
C
%222024
-04-18T07
%3
A23
%3
A38.391Z
%22%5
D; _rdt_uuid=1713425020451.0a7acbb3-2cfb-46e8-baa8-99b12c5b7976; wisepops=
%7
B
%22
popups
%22%3
A
%7
B
%22483108%22%3
A
%7
B
%22
dc
%22%3
A1
%2
C
%22
d
%22%3
A1713425023361
%2
C
%22
c
%22%3
A1713425039108
%7
D
%7
D
%2
C
%22
sub
%22%3
A0
%2
C
%22
ucrn
%22%3
A59
%2
C
%22
cid
%22%3
A
%2278471%22%2
C
%22
v
%22%3
A4
%2
C
%22
bandit
%22%3
A
%7
B
%22
recos
%22%3
A
%7
B
%7
D
%7
D
%7
D; _ga_XXXX=GS1.1.1713425018.1.1.1713425470.0.0.1294547426; _ga=GA1.1.830353175.1713425019; _ga_P2WLKWBNNW=GS1.1.1713425019.1.1.1713425470.59.0.0; wisepops_visitor=
%7
B
%22
P9wqzAW4cp
%22%3
A
%225
f46ab28-3f85-41bc-972a-70c18202a026
%22%7
D; wisepops_session=
%7
B
%22
arrivalOnSite
%22%3
A
%222024
-04-18T07
%3
A30
%3
A17.483Z
%22%2
C
%22
mtime
%22%3
A1713425470573
%2
C
%22
pageviews
%22%3
A2
%2
C
%22
popups
%22%3
A
%7
B
%22483108%22%3
A2
%7
D
%2
C
%22
bars
%22%3
A
%7
B
%7
D
%2
C
%22
sticky
%22%3
A
%7
B
%7
D
%2
C
%22
countdowns
%22%3
A
%7
B
%7
D
%2
C
%22
src
%22%3
Anull
%2
C
%22
utm
%22%3
A
%7
B
%7
D
%2
C
%22
testIp
%22%3
Anull
%7
D; _px2=eyJ1IjoiYTExZWVjYjAtZmQ1NS0xMWVlLTkyNjktMmIxMDQzMTQ0ZDM1IiwidiI6IjkzOGEzMGZjLWZkNTQtMTFlZS04Yzg3LWNkODU5Njg2MDBmMSIsInQiOjE3MTM0MjU3NzI2MDgsImgiOiI3NzU1Nzg5YzUzMmU2ZGY3MTc0NTVkMzEzYTc3YzdmY2MwMjk4NTE3NjZiMjU5M2JjOTM0ZDc5ZDMxMmY0Mzk4In0=; ORA_FPC=id=0080a381-9cdd-452d-a791-edb926b19a20; WTPERSIST='
'cookie'
:
'c_uuid=25010157537361200005373651080192024; _gcl_au=1.1.950466982.1713842284; pxcts=195410d7-0120-11ef-8b81-6b5f6a8e2895; _pxvid=195404dc-0120-11ef-8b81-8519b3aa2d56; _ga_XXXX=GS1.1.1713842284.1.0.1713842284.0.0.1057511742; _rdt_uuid=1713842285399.9e2341d7-0b53-44a6-9856-97764c511e66; _ga=GA1.2.314860660.1713842285; _gid=GA1.2.93543428.1713842286; _gat_UA-2678252-1=1; cjConsent=MHxOfDB8Tnww; cjUser=0739f966-7a3e-49d9-a320-20cedaa81172; cjLiveRampLastCall=2024-04-23T03:18:06.772Z; _pin_unauth=dWlkPU1HUTNNVFV4WlRVdE1qZGtPUzAwT1dJeUxXSTROall0TlRSbU9EWTBaak5qWXpjdw; _ga_P2WLKWBNNW=GS1.1.1713842284.1.0.1713842288.56.0.0; _px2=eyJ1IjoiMThmNGMzOTAtMDEyMC0xMWVmLTk3OWUtZDU2ZWYzYzZiMjQwIiwidiI6IjE5NTQwNGRjLTAxMjAtMTFlZi04YjgxLTg1MTliM2FhMmQ1NiIsInQiOjE3MTM4NDI2MDc0NzMsImgiOiI4YTllNzkzMTYwMjBiNGI2NDVjNDcxZTA3ZjYwYjVjOTY5MjM4Yjk5ODgyNTQwMDFlODFhZjM0MGZlOTFiYTM0In0='
}
...
...
src/b6.js
0 → 100644
View file @
fff00571
import
log4js
from
'log4js'
import
{
bl
,
genUuid
,
ht
,
ie
,
Ol
,
randint
,
se
}
from
"./utils.js"
import
axios
from
"axios"
;
import
{
PxEnv
}
from
'./px.js'
import
{
MongoClient
}
from
"mongodb"
;
const
uri
=
"mongodb://lcc-spider:JIUsfhiad&^@54.183.159.9:27017/?authSource=admin&directConnection=true"
;
const
client
=
new
MongoClient
(
uri
);
log4js
.
levels
.
INFO
.
colour
=
'white'
;
// console.log(log4js.levels.INFO.colour);
log4js
.
configure
({
appenders
:
{
out
:
{
type
:
'stdout'
,
layout
:
{
colored
:
true
,
type
:
'pattern'
,
pattern
:
'%[%d{yyyy-MM-dd hh:mm:ss.SSS}] [%l:%C:%M] [%p] %c - %m'
,
}
},
},
categories
:
{
default
:
{
appenders
:
[
'out'
],
level
:
"trace"
,
enableCallStack
:
true
}
}
});
async
function
sleep
(
ms
)
{
return
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
ms
));
}
class
PxBypass
{
tag
=
"v8.9.0"
ft
=
"324"
constructor
()
{
this
.
flag
=
false
this
.
appId
=
"PXVb73hTEg"
this
.
ua
=
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
// ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Mobile/15E148 Safari/604.1'
this
.
pxUrl
=
`https://collector-
${
this
.
appId
.
toLowerCase
()}
.px-cloud.net/api/v2/collector`
this
.
log
=
log4js
.
getLogger
(
'px'
)
// let env = fs.readFileSync('./env.json', 'utf-8')
// env = JSON.parse(env);
// let keys = Object.keys(env)
// let selectId = keys[randint(0, keys.length - 1)]
// selectId = 'd3e94c1cb84038031357a52f'
// this.log.info('select env', selectId)
// this.env = env[selectId]
// this.ua = this.env.navigatorparams.useragent
this
.
prox
=
`http://user-uni001-region-us-sessid-
${
randint
(
1000
,
5000
)}
-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600`
// prox = `http://uni00001_custom_zone_US_sid_${randint(67336718, 67336728)}_time_5:q39CEBTs5A@us.foxyip.com:7778`
// prox = `http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:${randint(10000, 13500)}`
this
.
tlsUrl
=
'http://52.52.23.116/tls/forward'
this
.
prox
=
'http://127.0.0.1:8890'
this
.
tlsUrl
=
'http://127.0.0.1:58000/tls/forward'
this
.
pxHeaders
=
{
"authority"
:
"collector-pxvb73hteg.px-cloud.net"
,
"accept"
:
"*/*"
,
"accept-language"
:
"en"
,
"cache-control"
:
"no-cache"
,
"content-type"
:
"application/x-www-form-urlencoded"
,
"origin"
:
"https://www.flyfrontier.com"
,
"pragma"
:
"no-cache"
,
"sec-fetch-dest"
:
"empty"
,
"sec-fetch-mode"
:
"cors"
,
"sec-fetch-site"
:
"cross-site"
,
"user-agent"
:
this
.
ua
}
this
.
url
=
'https://www.flyfrontier.com/'
this
.
log
.
level
=
'debug'
this
.
uuid
=
''
;
this
.
ts
=
''
;
this
.
cs
=
''
// # PX15454 o111oooo
this
.
num1
=
0
// # PX11701 111o1o
this
.
num2
=
''
// # PX11701 111o1o
this
.
str1
=
''
this
.
vid
=
''
this
.
sid
=
''
this
.
cts
=
''
this
.
seq
=
0
this
.
rsc
=
1
;
this
.
cookies
=
{}
}
async
initMongo
()
{
this
.
log
.
info
(
"init mongo 获取环境数据"
)
const
database
=
client
.
db
(
"env"
);
const
movies
=
database
.
collection
(
"env_shape"
);
// Query for a movie that has the title 'The Room'
const
query
=
{
'env.funcs'
:
{
$ne
:
null
},
};
// Execute query
const
movie
=
await
movies
.
aggregate
([
{
$match
:
query
},
{
$sample
:
{
size
:
1
}}
])
let
res
=
await
movie
.
toArray
()
this
.
env
=
res
[
0
].
env
this
.
ua
=
this
.
env
.
navigatorparams
.
useragent
this
.
log
.
info
(
'ua'
,
this
.
ua
)
this
.
log
.
info
(
`proxy
${
this
.
prox
}
`
)
}
async
add_headers
(
token
)
{
// this.prox = `http://user-uni001-region-us-sessid-${randint(1000, 5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600`
// this.prox = `http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:${randint(10000, 13500)}`
let
cks
=
Object
.
keys
(
this
.
cookies
).
map
((
v
,
k
)
=>
`
${
v
}
=
${
this
.
cookies
[
v
]}
`
).
join
(
'; '
)
this
.
log
.
info
(
'cookie'
,
cks
)
let
headers
=
{
"user-agent"
:
this
.
ua
,
"authority"
:
"www.flyfrontier.com"
,
"accept"
:
"application/json, text/plain, */*"
,
"accept-language"
:
"en-US"
,
"cache-control"
:
"no-cache"
,
"content-type"
:
"application/json"
,
"ocp-apim-subscription-key"
:
"dc6844776fe84b1c8b68affe7deb7916"
,
"origin"
:
"https://www.flyfrontier.com"
,
"pragma"
:
"no-cache"
,
"referer"
:
"https://www.flyfrontier.com/"
,
"x-dtpc"
:
"10$492787436_542h10vNDAFLLHTQHFKVMUIMICENMIBAMBWCDES-0e0"
,
'Authorization'
:
'Bearer '
+
token
,
"cookie"
:
cks
}
let
res
=
await
axios
.
post
(
'http://ymx-lcc.unififi.com/header/add'
,
JSON
.
stringify
({
'brush_fromto'
:
'LAS-BOS'
,
'brush_fromdate'
:
'2023-05-26'
,
'brush_header'
:
headers
,
'brush_proxy'
:
this
.
prox
,
'brush_mode'
:
'shopping'
,
'brush_name'
:
'js0'
,
'brush_type'
:
'cookieNK'
,
}));
this
.
log
.
debug
(
res
.
data
)
}
async
do_collector
(
data
)
{
try
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
n
=
data
[
i
];
if
(
n
.
t
===
'PX12167'
){
continue
}
// n.d['PX11645'] = this.url;
n
.
d
[
"PX11379"
]
=
false
;
}
console
.
log
(
JSON
.
stringify
(
data
))
// if (typeof data === 'object') {
// data = ht(data)
// }
// this.log.info(data)
// let payload = encodePayload(data, this.uuid, this.ts)
// let pc = genPc(data, `${this.uuid}:${this.tag}:${this.ft}`)
// let body = {
// "appId": this.appId,
// "tag": this.tag,
// "uuid": this.uuid,
// "ft": this.ft,
// "seq": this.seq,
// "en": "NTA",
// "pc": pc,
// "rsc": this.rsc,
// "payload": payload,
// }
// body = this.updateBody(body);
let
body
=
this
.
getPayload
(
data
)
body
.
push
(
`seq=
${
this
.
seq
}
`
)
body
.
push
(
`rsc=
${
this
.
rsc
}
`
)
let
res
=
await
axios
.
post
(
this
.
tlsUrl
,
JSON
.
stringify
({
url
:
this
.
pxUrl
,
method
:
"POST"
,
// data: qs.stringify(body),
data
:
body
.
join
(
'&'
),
headers
:
this
.
pxHeaders
,
allow_redirects
:
true
,
debug
:
true
,
proxy
:
this
.
prox
,
id
:
(
new
Date
().
getTime
())
+
''
,
random_tls
:
true
,
}),
{
timeout
:
7000
,
// 超时时间
});
let
inRes
=
JSON
.
parse
(
res
.
data
.
text
)
this
.
log
.
info
(
inRes
)
this
.
parseRes
(
inRes
)
}
catch
(
err
)
{
console
.
error
(
err
.
data
);
throw
err
;
}
};
updateBody
(
body
)
{
if
(
this
.
vid
!==
""
)
{
body
.
vid
=
this
.
vid
}
if
(
this
.
cs
!==
""
)
{
body
.
cs
=
this
.
cs
}
if
(
this
.
cts
!==
""
)
{
body
.
cts
=
this
.
cts
}
if
(
this
.
sid
!==
""
)
{
body
.
sid
=
this
.
sid
}
return
body
}
getPayload
(
data
)
{
let
vh
=
null
;
// console.log('now', le(), JSON.stringify(t))
// console.log('now', JSON.stringify(data))
// var A = $u();
let
uuid
=
this
.
uuid
var
pc
=
se
(
ht
(
data
),
function
(
t
,
e
)
{
return
[
uuid
,
t
,
e
][
'join'
](
":"
);
}(
this
.
tag
,
this
.
ft
));
var
b
=
{
"vid"
:
this
.
vid
,
"tag"
:
this
.
tag
,
"appID"
:
this
.
appId
,
"cu"
:
this
.
uuid
,
"cs"
:
this
.
cs
,
"pc"
:
pc
};
var
w
=
bl
(
data
,
b
,
this
.
ts
);
// console.log("ts", fl())
// console.log('res', w)
var
E
=
[
"payload="
+
w
,
"appId="
+
this
.
appId
,
"tag="
+
this
.
tag
,
"uuid="
+
this
.
uuid
,
"ft="
+
this
.
ft
,
"en="
+
"NTA"
];
var
T
=
null
;
T
&&
E
[
"push"
](
'xuuid='
+
T
);
this
.
cs
&&
E
[
"push"
](
'cs='
+
this
.
cs
);
pc
&&
E
[
"push"
](
'pc='
+
pc
);
var
O
=
this
.
sid
;
var
U
=
Ol
(
this
.
ts
);
(
O
||
U
)
&&
E
[
"push"
](
'sid='
+
(
O
||
this
.
sid
)
+
U
);
var
I
=
[];
this
.
vid
&&
E
[
"push"
](
'vid='
+
this
.
vid
);
// mu && E["push"]('jcs=' + mu);
var
S
=
this
.
ci
;
S
&&
E
[
"push"
](
'ci='
+
S
);
// Ru || (Ru = Df(cu));
var
C
=
this
.
pxhd
;
C
&&
E
[
"push"
](
'pxhd='
+
C
);
let
Qf
=
this
.
cts
;
Qf
&&
E
[
"push"
](
'cts='
+
Qf
);
I
[
"length"
]
>=
0
&&
E
[
"push"
][
"apply"
](
E
,
I
);
return
E
;
}
parseRes
(
inRes
)
{
let
result
=
void
0
;
if
(
inRes
[
'ob'
])
{
let
cks
=
ie
(
atob
(
inRes
.
ob
),
this
.
version
()).
split
(
'~~~~'
)
this
.
log
.
info
(
cks
.
length
,
JSON
.
stringify
(
cks
,
null
,
'
\
t'
))
for
(
var
ck
of
cks
)
{
let
tmp
=
ck
.
split
(
'|'
);
if
(
tmp
[
0
]
===
'o11o1ooo'
)
{
this
.
log
.
fatal
(
'result'
,
tmp
[
1
]
===
'0'
)
result
=
tmp
[
1
]
===
'0'
}
if
(
tmp
[
0
]
===
'o111oo11'
)
{
this
.
ts
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'11oo1o'
)
{
this
.
ci
=
tmp
[
2
]
this
.
token
=
tmp
[
4
].
split
(
'_'
)[
0
]
this
.
token2
=
tmp
[
4
].
split
(
'_'
)[
1
]
}
if
(
tmp
[
0
]
===
'o1oo11'
)
{
this
.
hash
=
tmp
[
2
]
this
.
hash2
=
tmp
[
3
]
this
.
hashv
=
tmp
[
4
]
}
if
(
tmp
[
0
]
===
'o111oo1o'
)
{
this
.
num1
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'1o111o'
)
{
this
.
num2
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'11o1o1'
)
{
this
.
str1
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'ooo11o'
)
{
this
.
vid
=
tmp
[
1
]
this
.
cookies
[
'_pxvid'
]
=
this
.
vid
}
if
(
tmp
[
0
]
===
'oo1111'
)
{
this
.
sid
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'1ooo11'
)
{
this
.
cs
=
tmp
[
1
]
}
if
(
tmp
[
0
]
===
'o11o111o'
)
{
this
.
cts
=
tmp
[
1
]
this
.
cookies
[
'pxcts'
]
=
this
.
cts
}
if
(
tmp
.
includes
(
'zpxde'
))
{
this
.
cookies
[
'pxde'
]
=
tmp
[
3
]
}
if
(
tmp
.
includes
(
'_px2'
))
{
this
.
cookies
[
'_px2'
]
=
tmp
[
3
]
this
.
log
.
debug
(
`px2_decode
${
atob
(
this
.
cookies
[
'_px2'
])}
`
)
}
if
(
tmp
[
1
]
===
'score'
)
{
if
(
tmp
[
2
]
===
'0'
)
{
this
.
flag
=
true
}
else
{
this
.
flag
=
false
;
}
}
}
}
if
(
result
)
{
this
.
result
=
result
;
}
}
version
()
{
return
parseInt
(
this
.
tag
.
substring
(
1
).
replaceAll
(
'.'
,
''
))
%
128
}
async
step1
()
{
// this.log.info('setp1')
let
t1
=
new
Date
().
getTime
();
this
.
startTs
=
t1
let
t2
=
t1
+
randint
(
5
,
30
)
this
.
startTs2
=
t2
this
.
performanceNow
=
randint
(
3000
,
5000
)
this
.
px12280
=
this
.
startTs2
+
this
.
performanceNow
this
.
uuid
=
genUuid
()
// this.uuid = 'f42c8950-0122-11ef-812e-cfea9de08ac9'
let
data
=
[{
"t"
:
"PX12095"
,
"d"
:
{
"PX11645"
:
this
.
url
,
"PX12207"
:
1
,
"PX12458"
:
this
.
env
.
navigatorparams
.
platform
,
"PX11902"
:
0
,
"PX11560"
:
randint
(
1600
,
2600
),
"PX12248"
:
3600
,
"PX11385"
:
t1
,
"PX12280"
:
t2
,
"PX11496"
:
this
.
uuid
,
"PX12564"
:
null
,
"PX12565"
:
-
1
,
"PX11379"
:
false
}
}]
let
res
=
await
this
.
do_collector
(
data
)
this
.
seq
++
;
this
.
pxenv
=
new
PxEnv
(
this
.
env
,
this
.
url
,
this
.
sid
,
this
.
vid
,
this
.
ts
,
this
.
num1
,
this
.
num2
,
this
.
str1
,
this
.
uuid
,
this
.
startTs
,
this
.
startTs2
,
this
.
performanceNow
,
this
.
px12280
)
// this.pxenv.PX12271 = '10207b2f'
}
async
step2
()
{
this
.
performanceNow
+=
randint
(
1000
,
2000
)
let
data
=
[{
"t"
:
"PX12167"
,
"d"
:{
"PX11648"
:
true
,
"PX11379"
:
false
}}]
let
res
=
await
this
.
do_collector
(
data
)
}
async
step3
()
{
this
.
performanceNow
=
randint
(
3000
,
4000
)
// let data = genPayload2(this.url, this.sid, this.vid, this.ts, this.num1, this.num2,
// this.str1, this.uuid,
// this.startTs, this.startTs2, this.performanceNow, this.px12280)
let
data
=
[
this
.
pxenv
.
get_px11590
(),
this
.
pxenv
.
get_px11547
()]
let
res
=
await
this
.
do_collector
(
data
)
}
async
step4
()
{
this
.
performanceNow
+=
randint
(
1000
,
2000
)
// let data = genPayload4(this.url, this.sid, this.vid, this.ts, this.num1, this.num2,
// this.str1, this.uuid,
// this.startTs, this.startTs2, this.performanceNow, this.px12280)
this
.
pxenv
.
performanceNow
=
this
.
performanceNow
let
data
=
[
this
.
pxenv
.
get_px12123
(),
this
.
pxenv
.
get_px11891
(),
this
.
pxenv
.
get_px11547
()]
let
res
=
await
this
.
do_collector
(
data
)
}
async
step5
()
{
this
.
performanceNow
+=
randint
(
1000
,
2000
)
// let data = genPayload4(this.url, this.sid, this.vid, this.ts, this.num1, this.num2,
// this.str1, this.uuid,
// this.startTs, this.startTs2, this.performanceNow, this.px12280)
this
.
pxenv
.
performanceNow
=
this
.
performanceNow
let
data
=
[
// this.pxenv.get_px12123(),
// this.pxenv.get_px11891(),
this
.
pxenv
.
get_px12419
()]
let
res
=
await
this
.
do_collector
(
data
)
}
async
test
()
{
// this.prox = 'http://127.0.0.1:8890'
// this.tlsUrl = 'http://127.0.0.1:58000/tls/forwardios'
let
cks
=
Object
.
keys
(
this
.
cookies
).
map
((
v
,
k
)
=>
`
${
v
}
=
${
this
.
cookies
[
v
]}
`
).
join
(
'; '
)
this
.
log
.
info
(
'cookie'
,
cks
)
let
res
=
await
axios
.
post
(
this
.
tlsUrl
,
JSON
.
stringify
({
url
:
'https://booking.flyfrontier.com/Flight/InternalSelect?o1=BNA&d1=ATL&dd1=Apr%2027,%202024&ADT=1&mon=true&promo='
,
headers
:
{
"Host"
:
"booking.flyfrontier.com"
,
"sec-ch-ua"
:
"
\"
Not_A Brand
\"
;v=
\"
8
\"
,
\"
Chromium
\"
;v=
\"
120
\"
,
\"
Google Chrome
\"
;v=
\"
120
\"
"
,
"sec-ch-ua-mobile"
:
"?0"
,
"sec-ch-ua-platform"
:
"
\"
macOS
\"
"
,
"upgrade-insecure-requests"
:
"1"
,
"user-agent"
:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
,
"accept"
:
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
,
"sec-fetch-site"
:
"same-site"
,
"sec-fetch-mode"
:
"navigate"
,
"sec-fetch-user"
:
"?1"
,
"sec-fetch-dest"
:
"document"
,
"accept-language"
:
"en"
,
"cookie"
:
cks
},
allow_redirects
:
true
,
debug
:
true
,
method
:
"GET"
,
proxy
:
this
.
prox
,
random_tls
:
true
,
}));
if
(
res
.
data
.
status_code
===
200
)
{
// console.log(res.data.text)
this
.
log
.
warn
(
'success'
,
res
.
data
.
status_code
,
res
.
data
.
text
.
includes
(
'FlightData'
))
await
this
.
add_headers
()
}
else
{
this
.
log
.
error
(
'error'
,
res
.
data
.
status_code
)
}
}
check
()
{
if
(
this
.
cookies
[
'_px2'
])
{
let
px2
=
this
.
cookies
[
'_px2'
];
let
px2Decode
=
JSON
.
parse
(
atob
(
px2
));
if
(
px2Decode
.
t
.
toString
().
startsWith
(
'62'
)
&&
px2Decode
.
t
.
toString
().
endsWith
(
'04'
))
{
return
true
}
}
return
false
}
}
async
function
run
()
{
while
(
true
)
{
try
{
// let res = await axios.get('http://ymx-lcc.unififi.com/header/task/pull/cookieF9?brush_name=test')
// let data = res.data;
let
data
=
{
status
:
0
}
console
.
log
(
data
)
// if r.json()['status'] != 0:
// # logger.debug(f'不需要刷值')
// # time.sleep(10)
// # continue
if
(
data
.
status
===
0
)
{
for
(
let
i
=
0
;
i
<
10
;
i
++
)
{
try
{
let
px
=
new
PxBypass
()
await
px
.
initMongo
()
await
px
.
step1
()
// await px.test()
await
px
.
step2
()
// await sleep(1500)
await
px
.
step3
()
// await sleep(1000)
// await px.step4()
// await px.step5()
await
px
.
test
()
// await sleep(1500)
// await px.add_headers()
await
sleep
(
1000
)
}
catch
(
e
)
{
console
.
log
(
e
.
toString
())
}
finally
{
await
sleep
(
1000
)
}
}
}
await
sleep
(
1000
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
finally
{
}
}
// }
}
run
();
src/f9.js
View file @
fff00571
...
...
@@ -38,7 +38,7 @@ class PxBypass {
this
.
ua
=
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
// ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Mobile/15E148 Safari/604.1'
this
.
pxUrl
=
`https://collector-
${
this
.
appId
}
.px-cloud.net/api/v2/collector`
this
.
pxUrl
=
`https://collector-
${
this
.
appId
.
toLowerCase
()
}
.px-cloud.net/api/v2/collector`
this
.
log
=
log4js
.
getLogger
(
'px'
)
// let env = fs.readFileSync('./env.json', 'utf-8')
...
...
@@ -61,13 +61,16 @@ class PxBypass {
this
.
pxHeaders
=
{
"authority"
:
`collector-
${
this
.
appId
}
.px-cloud.net`
,
"authority"
:
"collector-pxvb73hteg.px-cloud.net"
,
"accept"
:
"*/*"
,
"accept-language"
:
"en
-US,en;q=0.9
"
,
"accept-language"
:
"en"
,
"cache-control"
:
"no-cache"
,
"content-type"
:
"application/x-www-form-urlencoded"
,
"origin"
:
"https://www.flyfrontier.com"
,
"pragma"
:
"no-cache"
,
"sec-fetch-dest"
:
"empty"
,
"sec-fetch-mode"
:
"cors"
,
"sec-fetch-site"
:
"cross-site"
,
"user-agent"
:
this
.
ua
}
...
...
@@ -368,6 +371,7 @@ class PxBypass {
this
.
px12280
=
this
.
startTs2
+
this
.
performanceNow
this
.
uuid
=
genUuid
()
// this.uuid = 'f42c8950-0122-11ef-812e-cfea9de08ac9'
let
data
=
[{
"t"
:
"PX12095"
,
"d"
:
{
...
...
@@ -383,13 +387,13 @@ class PxBypass {
this
.
pxenv
=
new
PxEnv
(
this
.
env
,
this
.
url
,
this
.
sid
,
this
.
vid
,
this
.
ts
,
this
.
num1
,
this
.
num2
,
this
.
str1
,
this
.
uuid
,
this
.
startTs
,
this
.
startTs2
,
this
.
performanceNow
,
this
.
px12280
)
this
.
pxenv
.
PX12271
=
'10207b2f'
//
this.pxenv.PX12271 = '10207b2f'
}
async
step2
()
{
this
.
performanceNow
+=
randint
(
1000
,
2000
)
let
data
=
[{
"t"
:
"PX12167"
,
"d"
:
{
"PX11648"
:
tru
e
}}]
let
data
=
[{
"t"
:
"PX12167"
,
"d"
:{
"PX11648"
:
true
,
"PX11379"
:
fals
e
}}]
let
res
=
await
this
.
do_collector
(
data
)
}
...
...
@@ -399,7 +403,7 @@ class PxBypass {
// let data = genPayload2(this.url, this.sid, this.vid, this.ts, this.num1, this.num2,
// this.str1, this.uuid,
// this.startTs, this.startTs2, this.performanceNow, this.px12280)
let
data
=
[
this
.
pxenv
.
get_px11590
()]
let
data
=
[
this
.
pxenv
.
get_px11590
()
,
this
.
pxenv
.
get_px11547
()
]
let
res
=
await
this
.
do_collector
(
data
)
}
...
...
@@ -509,9 +513,9 @@ async function run() {
await
px
.
step3
()
await
sleep
(
1000
)
await
px
.
step4
()
await
px
.
step5
()
//
await sleep(1000)
//
await px.step4()
//
await px.step5()
await
px
.
test
()
// await sleep(1500)
...
...
src/px.js
View file @
fff00571
...
...
@@ -5291,9 +5291,9 @@ export class PxEnv {
};
//
if (env) {
//
this.ENV = env
//
}
if
(
env
)
{
this
.
ENV
=
env
}
this
.
screen
=
this
.
ENV
.
screenparams
;
this
.
navigator
=
this
.
ENV
.
navigatorparams
;
...
...
@@ -5430,7 +5430,7 @@ export class PxEnv {
let
data
=
{
// "e?bzdi\u0007": 2,
"PX12486"
:
null
,
"PX11645"
:
this
.
url
,
// "PX11847": true,
// "PX11431": 1692944411084, // 0III0III
"PX11431"
:
parseInt
(
this
.
ts
),
//
...
...
@@ -5444,7 +5444,7 @@ export class PxEnv {
// "PX11833": 80878510,// totalJSHeapSize
// "PX11840": "Fri Aug 25 2023 14:20:11 GMT+0800 (中国标准时间)",
"PX11840"
:
Date
(),
"PX12573"
:
"
628a94c2
"
,
// parseInt(0III0III/10)
"PX12573"
:
"
170087
"
,
// parseInt(0III0III/10)
// "PX12573": getPX12573(Math.floor(parseInt(this.ts) / 1e3), this.vid, this.uuid), // parseInt(0III0III/10)
// "PX11804": "36f924a304c56d1ae9971c767ca7f510", //uuid 转换
"PX11804"
:
createPx2
(
this
.
ua
,
this
.
uuid
),
//uuid 转换
...
...
@@ -5466,7 +5466,7 @@ export class PxEnv {
"PX12330"
:
"109|66|66|70|80"
,
// ["webstore", 'runtime', 'app', "csi", "loadTimes"];构造函数 长度
// todo
// "PX11705": [571, 1182][randint(0, 1)], //fetch+''
"PX11705"
:
1
074
,
//fetch+''
"PX11705"
:
1
212
,
//fetch+''
"PX11938"
:
true
,
//caches
"PX11602"
:
true
,
//caches
"PX12021"
:
"false"
,
// webdriver
...
...
@@ -5648,10 +5648,10 @@ export class PxEnv {
// }],
"PX12508"
:
this
.
ENV
.
useragentdata
.
highvalue
?
this
.
ENV
.
useragentdata
.
highvalue
.
brands
:
undefined
,
"PX12549"
:
true
,
"PX11539"
:
"
64556c77
"
,
//Me(console.log)
"PX11539"
:
"
4d8091db
"
,
//Me(console.log)
"PX11528"
:
""
,
// Object["getOwnPropertyDescriptor"](HTMLDocument["prototype"], "cookie")["get"]
"PX12271"
:
this
.
PX12271
??
"
3c80a035
"
,
// Va(Object["prototype"]["toString"])
"PX11849"
:
this
.
PX12271
??
"
3c80a035
"
,
// return Va(m["toString"]);
"PX12271"
:
this
.
PX12271
??
"
10207b2f
"
,
// Va(Object["prototype"]["toString"])
"PX11849"
:
this
.
PX12271
??
"
10207b2f
"
,
// return Va(m["toString"]);
"PX12464"
:
"90e65465"
,
// Me("" + (e["get"] || "") + (e["value"] || ""))
"PX11356"
:
true
,
"PX12426"
:
true
,
...
...
@@ -5674,7 +5674,7 @@ export class PxEnv {
"PX12335"
:
true
,
"PX12080"
:
0
,
"PX11678"
:
false
,
"PX11349"
:
"
hidden
"
,
"PX11349"
:
"
visible
"
,
"PX12397"
:
false
,
"PX11387"
:
0
,
"PX12150"
:
this
.
window
.
outerwidth
,
...
...
@@ -5689,7 +5689,7 @@ export class PxEnv {
"PX12431"
:
0
,
"PX11991"
:
1
3
,
"PX11991"
:
1
2
,
"PX11837"
:
34
,
"PX11632"
:
0
,
"PX11409"
:
11
,
...
...
test.py
View file @
fff00571
...
...
@@ -58,10 +58,14 @@ a2 = "UisrUitSHhEBDRAHHlIeAAsMAxAbHBwcHCsrKysrUh49EhpQHlFRUh4HGyhTKwgNCywYNxo4Ji
a2
=
"KysrKytSHj0SGlAeUVFSHgcbKFMrCA0LLBg3GjgmLxUvJTcWLCY7UiwbUhovNTQOLjUnFSw1MxYsNjtSODY3GiwmO1AtNjNWKwsVCwYLK1QrCAVWLBgoCy82DgsuNjNQLCYBFi82JA44MVJWLSU7Vi42Ixo4JgFSLDUwCywYJ1YvMSsRKwwzCy0IJ1AtNi8bLTYFUCwIO1AtJiMRKw8FCy0LKAs4JjALOzYjVy8IOxU7NjQPLCYzUTglOxg7UDtXLCYoDzgIMxg4NiNTLBgBUDs2N1AsNSsaLFAsCS01JA4sCCNQOwgFViwYBVIsJigOLA8vGjsYN1crDFJfHhYQFwceUVJSHBwcHFJSK1IrUh4BFxwcHBxSKysrK1JSUh49EhoGBx5RUVIeA1NQVgBaAFdXV1pXAFFWV1RRA1pTV1VQWwAAAFFWVAMDA1IHU1EHU1ZVBlQHU1oGWgBXA1VWAwZWBFFVBgZTAVgHGyhSAzVTDgFRMAoAOiMLLQgnUC02LxstNgUYLAg7UC0mIFseFhAXBx5RUlIcHBwcUisrUitSHhEBDRAHHlIeAAsMAxAb"
a2
=
"X18BX19fEg1YWlgKWFtZXwpYWlgIVlcMWAxfXw0PD1wPXl0NXAsPC1dZWlsKWQgNWQoNW14KDFYKWl4LXl8NWw1XCFhZCwwQEBAQAV9fAV8BXwESXV9YWxAQEBABXwFfX18SDRsQEBAQX19fAV8BEl9cXVlYVl1eV1daW1tZW1dZV1pcEBAQEAFfAQFfXxJfElkKCA1eVwhdXFsKDF0LDwheDQhfXVcIWwtaVlpYXQoLXF5dW19bXlsNXVgICF4KV1gIW15cDFxaWF9YXl4SWlhfD11fDAhaVgpeWlkMDwsMV19aW1sPWAwNW1wNW10PCFdfWghdWFtcDVpaDwpZDV4LCA1WXV5aWwtZC15aCBJfXBIIDwIdCxAQEBABX18BX18SCl8NWlZWXFdDDwtXD0NfXwsLQwwKWgpDXApcD1wPWFgMXV5aEBAQEF9fXwEBXxIIHhJYXhJfEBAQEF8BXwEBXxINDQ1UXhAQEBBfX18BAV8SDQ0SWF4SO1woGjQ4IB4KKTtXOikoWiEZU1MQEBAQAV8BAV8BEg0MW1leXggLQw8LVw9DX18LC0MMXl5aQ1daDwtYDV0LClxZVhJdX1tdWF5eXhIaHBsLEBAQEF9fAQFfARJfEgpfDVYKXAteQw8LVw9DX18LC0MMCF4KQ1lbV19ZDAhYCA1XChJcW1pfElpeXQpWD1kPX1ZXCAxfVwtdXVZXWVpeDw1aVgsLDwxdWVsNVlpeXF9fX1sLVw0IDw9fWAhaVgsICgpWXQ0PDVdfX1oNCwoIXFtZCApeCF9eW19ZXFlbWl8MDwtXW19aXAhdVlZZWlZeW1ZcXVhbCA9cCA1bWlsKClkLWlYLCl1WMVVXXFQSXhIgLxAQEBBfAQEBAV8SDQMLDA1bCQwHWQtXCQ0IXF8ECl4QEBAQAV9fAQFfXwESCl8NWlYMXF9DDwtXD0NfXwsLQwwKWgpDXApcD1wPWFgMXV5aEhocGwsQEBAQX19fAQFfEhwIElheEl8QEBAQAV9fAV8BX18SX1leWllYV15aWFxWWw=="
a2
=
"K1IrUisrHlBbVQcDVVBXTwRaA1ZPU1MHB08DVgRTTwNUVwZTBFdVBAMHURwcHBxSUitSK1IeARccHBwcK1JSKysrHlRWVlVQU1pTVlJWVlFUU1RVU1FUHlBQV1VVW1tWV1NWUFtQUFRRUFtQHBwcHFIrKytSKysrHlNVU1BbUltWVlZbWlUcHBwcKysrK1JSHgENAQcSU1BQBRYTV1sMEw9RElBSHBwcHFIrKytSKytSHlRTVFMcHBwcUisrK1JSK1IeUFtVBwMBA1tPBFoDVk9TUwcHTwNWBFNPA1RXBlMEV1UEAwdRHhYQFwccHBwcUlIrKytSHlRTV1AAAFUHVVtaWgFQW1NXA1oGUFpSAAFVA1YAWlUBUwAEV1YHBgZXWgYDVltWVFVbUARVAwdTUwAEBFdTAQMcHBwcK1JSUitSHlBbVQdbWwRTTwRaA1ZPU1MHB08DVgRTT1pRBlsDUlpaVwBVVB5RU1dRVFJSUh4WEBcHHBwcHCtSK1IrUh5THldbA1UHV1ZRVFFQVFFVBlFTVldSV1VVVQMBAVsDWlAHBFpUBlQABFZVA1EBUQRQBFJVWwRbAFRUB1FTUwEeAFYEVwFSVQdWUFJVAwNQU1MEW1pTVVcHV1ZSA1JVW1VTBwdWWwRUUFQDAQRRVVRVA1NXAFBQWlRVBAFTA1AAUx5TUB4EAw4RBxwcHBwrUlIrK1IeUx5QW1pRWwABUk8EWgNWT1NTBwdPWgRVA08DVwZaBgcHU1RRVFUeUFZbVR5SWwMEWwMBUFUBVFEEVVBbAVFQB1ABVFIAV1RUAARTAFVaAwQGWwZSWlNQBFBbU1VRA1ZWUFFQUFBSVFJQBwBVUgNTVloGWgMBWgdSAQEDBgFVUQZSAAYDUlFaBlJbUANTWlFaV1VQUwABVAdRVFIAWgRVAFdTVVIAVQdXBwRVBD1eUFtYHlAeLCMcHBwcKysrKysrHgEBHlRSHjdQJBY4NCwSBiU3WzYlJFYtFV9fHBwcHCsrKysrKx4QBB5UUh5THBwcHCsrKysrKx4EEh5UUh5THBwcHCsrKysrKx4BBBIeVFIeUxwcHBwrKysrUiseAQEBWFIcHBwcUisrKytSUlIePRIaBgceUVFSHlUABFBRUwBSVFNVWlFWBwBSUVdaUAEDU1dVA1EDAVoBWlVTAFZXUVNWUlNVAVJQA1dWBAFTA1cEUFsGVABRA1ZYBxsoUgM1Uw4BUTAKADojCy0IJ1EvNitXLyYJUiwmM1ctJg5bHhYQFwceUVJS"
a2
=
"FRVLS0tLBk4ZQ09IGxtCV0pLSRtXS0sfHFcYGUxLV0lKGU0cSx9CHx9PGAQEBAQVFRUVS0sGGQ8EBAQESxVLS0sVBktIT0xPQ01JTE9CQ05DTklIQkJNBAQEBBVLS0sVFUtLBktNS0lCT0lPSU1MTU4EBAQES0sVSxVLBhkVEBZCFR9MHxIZFgoKH0NOThRKBAQEBBVLS0sVFUsVBkJLT08EBAQEFUtLFUtLSxUGThlDT0gcTxxXSktJG1dLSx8cVxgZTEtXSUoZTRxLH0IfH08YBg4IDx8EBAQESxUVFUtLBh9NSB4cH0hIS0JKSUsfTU5MGEJJHhsZT0NNHBwYQkwYSUpCT0NMSR5PTRkZHktNGRgYTkJISRkbG00fHkxNGE4EBAQEFRUVS0sVBk4ZQ09LQ0IbV0pLSRtXS0sfHFcYGUxLV0pJTh9JSEhCHBtPSwZJS09JTEpKSgYOCA8fBAQEBEsVS0sVSwYZGQZMSgYvSDwOICw0Ch49L0MuPTxONQ1HRw=="
b2
=
base64
.
b64decode
(
a2
.
encode
())
for
i
in
bytes
(
encrypt
(
b2
,
8
66
%
128
))
.
decode
()
.
split
(
'~~~~'
):
for
i
in
bytes
(
encrypt
(
b2
,
8
90
%
128
))
.
decode
()
.
split
(
'~~~~'
):
print
(
'o11o111o'
in
i
,
i
)
'''
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment