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
bbe3f869
Commit
bbe3f869
authored
Nov 30, 2023
by
wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jiami
parent
7b4aeaef
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
444 additions
and
149 deletions
+444
-149
encodepayload.js
js/encodepayload.js
+0
-1
main.py
src/main.py
+171
-127
step2.js
step2.js
+265
-19
test_search.py
test_search.py
+8
-2
No files found.
js/encodepayload.js
View file @
bbe3f869
No preview for this file type
src/main.py
View file @
bbe3f869
...
...
@@ -15,95 +15,98 @@ from loguru import logger
from
env_captcha
import
PxEnv
from
src.utils
import
PxUtils
ctxPC
=
execjs
.
compile
(
open
(
'pc.js'
)
.
read
())
ctx
=
execjs
.
compile
(
'''const Ev = (t, e, n) => {
var r = ie(encode(n), 10), o = [], a = -1;
for (var i = 0; i < t.length; i++) {
var l = Math.floor(i / r.length + 1)
var c = i >= r.length ? i
%
r.length : i
var u = r.charCodeAt(c) * r.charCodeAt(l)
// console.log(i, l, c, u)
u > a && (a = u)
}
for (var f = 0; t.length > f; f++) {
var s = Math.floor(f / r.length) + 1,
d = f
%
r.length,
p = r.charCodeAt(d) * r.charCodeAt(s)
// console.log(f, s, d, p, p > e, wv(p, 0, a, 0, e-1))
p >= e && (p = wv(p, 0, a, 0, e - 1));
for (; -1 !== o.indexOf(p);) {
p += 1
}
// console.log('add', p)
o.push(p)
}
return o.sort(function (t, e) {
return t - e
})
}
const encode = (t) => {
return btoa(encodeURIComponent(t).replaceAll(/
%
([0-9A-F]{2})/g, function (t, e) {
// console.log(t, e, '0x' + e)
return String.fromCharCode("0x" + e);
}))
}
const ie = (t, e) => {
for (var n = '', r = 0; r < t.length; r++)
// console.log(e, t.charCodeAt(r), e ^ t.charCodeAt(r), String.fromCharCode(e ^ t.charCodeAt(r)))
n += String.fromCharCode(e ^ t.charCodeAt(r))
return n
}
const wv = (t, e, n, r, o) => {
return Math.floor(((t - e) / (n - e)) * (o - r) + r)
}
const Fa = (t, e, n) => {
// console.log('t', t)
// console.log('e', e)
// console.log('n', n)
var r = '', o = 0, a = t.split('')
for (var i = 0; i < t.length; i++) {
// console.log(i,o,n[i], n[i] - i - 1, e.substring(o, n[i] - i - 1), a[i], e.substring(o, n[i] - i - 1)+a[i])
// console.log(i, o, n[i] - i - 1, n[i] - i - 1 - o)
r += e.substring(o, n[i] - i - 1)
+ a[i]
// console.log(e.substring(o, n[i] - i - 1))
// console.log(r.length, r)
o = n[i] - i - 1
// console.log('iii',i,r)
// console.log()
}
ctxPC
=
execjs
.
compile
(
open
(
'pc.js'
)
.
read
())
console.log(e.substring(o))
return (r += e.substring(o))
}
function encodePayload(payload, uuid, sts) {
var sts = sts.length === 0 ? '1604064986000' : sts
let t1 = ie(payload, 50);
const BasePayload = encode(t1)
console.log(BasePayload)
const fv = ie(encode(sts), 10)
let t3 = Ev(fv, BasePayload.length, uuid);
console.log(t3+''
)
return Fa(fv, BasePayload, t3)
}
function encodeData(payload, uuid, sts) {
payload = atob(payload)
payload = decodeURIComponent(payload)
return encodePayload(payload, uuid, sts)
}
'''
)
# ctx = execjs.compile('''const Ev = (t, e, n) => {
# var r = ie(encode(n), 10), o = [], a = -1;
# for (var i = 0; i < t.length; i++) {
# var l = Math.floor(i / r.length + 1)
# var c = i >= r.length ? i % r.length : i
# var u = r.charCodeAt(c) * r.charCodeAt(l)
# // console.log(i, l, c, u)
# u > a && (a = u)
# }
# for (var f = 0; t.length > f; f++) {
# var s = Math.floor(f / r.length) + 1,
# d = f % r.length,
# p = r.charCodeAt(d) * r.charCodeAt(s)
# // console.log(f, s, d, p, p > e, wv(p, 0, a, 0, e-1))
# p >= e && (p = wv(p, 0, a, 0, e - 1));
# for (; -1 !== o.indexOf(p);) {
#
# p += 1
# }
# // console.log('add', p)
# o.push(p)
# }
#
# return o.sort(function (t, e) {
# return t - e
# })
# }
#
# const encode = (t) => {
# return btoa(encodeURIComponent(t).replaceAll(/%([0-9A-F]{2})/g, function (t, e) {
# // console.log(t, e, '0x' + e)
# return String.fromCharCode("0x" + e);
# }))
# }
#
# const ie = (t, e) => {
# for (var n = '', r = 0; r < t.length; r++)
# // console.log(e, t.charCodeAt(r), e ^ t.charCodeAt(r), String.fromCharCode(e ^ t.charCodeAt(r)))
# n += String.fromCharCode(e ^ t.charCodeAt(r))
#
# return n
# }
#
# const wv = (t, e, n, r, o) => {
# return Math.floor(((t - e) / (n - e)) * (o - r) + r)
# }
#
# const Fa = (t, e, n) => {
# // console.log('t', t)
# // console.log('e', e)
# // console.log('n', n)
# var r = '', o = 0, a = t.split('')
# for (var i = 0; i < t.length; i++) {
# // console.log(i,o,n[i], n[i] - i - 1, e.substring(o, n[i] - i - 1), a[i], e.substring(o, n[i] - i - 1)+a[i])
# // console.log(i, o, n[i] - i - 1, n[i] - i - 1 - o)
# r += e.substring(o, n[i] - i - 1)
# + a[i]
# // console.log(e.substring(o, n[i] - i - 1))
# // console.log(r.length, r)
# o = n[i] - i - 1
# // console.log('iii',i,r)
# // console.log()
# }
#
# console.log(e.substring(o))
# return (r += e.substring(o))
# }
#
# function encodePayload(payload, uuid, sts) {
# var sts = sts.length === 0 ? '1604064986000' : sts
# let t1 = ie(payload, 50);
# const BasePayload = encode(t1)
# console.log(BasePayload)
# const fv = ie(encode(sts), 10)
# let t3 = Ev(fv, BasePayload.length, uuid);
# console.log(t3+''
# )
# return Fa(fv, BasePayload, t3)
# }
# function encodeData(payload, uuid, sts) {
# payload = atob(payload)
# payload = decodeURIComponent(payload)
# return encodePayload(payload, uuid, sts)
# }
#
#
# ''')
ctx
=
execjs
.
compile
(
open
(
'../js/encodepayload.js'
)
.
read
())
ctxStep2
=
execjs
.
compile
(
'''
const crypto = require('crypto');
function genUuid(t, e, n, r) {
...
...
@@ -168,6 +171,8 @@ function genUuid(t, e, n, r) {
return a === g ? a : g;
}'''
)
ctxPayload2
=
execjs
.
compile
(
open
(
'../step2.js'
)
.
read
())
def
get_timestamp
():
return
int
(
time
.
time
()
*
1000
)
...
...
@@ -182,6 +187,7 @@ class PxBypass():
tag
=
"v8.7.2"
ft
=
"317"
appId
=
"PXVb73hTEg"
def
__init__
(
self
,
target_url
):
# PX11431 o111ooo1
self
.
ts
:
str
=
''
...
...
@@ -237,8 +243,11 @@ class PxBypass():
prox
=
f
'http://user-uni001-region-us-sessid-{random.randint(1000, 5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:9000'
prox
=
f
'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
#
prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
# prox = 'http://127.0.0.1:8890'
self
.
tlsUrl
=
'http://52.52.23.116/tls/forward'
# self.tlsUrl = 'http://127.0.0.1:58000/tls/forward'
self
.
session
.
proxies
=
{
'http'
:
prox
,
'https'
:
prox
,
...
...
@@ -246,8 +255,7 @@ class PxBypass():
self
.
prox
=
prox
self
.
log
.
info
(
f
'proxy: {self.prox}'
)
self
.
tlsUrl
=
'http://52.52.23.116/tls/forward'
# self.tlsUrl = 'http://127.0.0.1:58000/tls/forward'
def
inc
(
self
):
self
.
seq
+=
1
...
...
@@ -256,7 +264,7 @@ class PxBypass():
def
do_collector
(
self
,
data
):
if
isinstance
(
data
,
list
):
data_str
=
json
.
dumps
(
data
,
separators
=
(
','
,
':'
),
ensure_ascii
=
Fals
e
)
data_str
=
json
.
dumps
(
data
,
separators
=
(
','
,
':'
),
ensure_ascii
=
Tru
e
)
else
:
data_str
=
data
self
.
log
.
info
(
f
'data_str {data_str}'
)
...
...
@@ -314,9 +322,9 @@ class PxBypass():
self
.
_step_2
(
True
)
# time.sleep(2)
self
.
_step_3
()
time
.
sleep
(
2
)
self
.
_token
()
#
#
time.sleep(2)
#
self._token()
# self.add_header()
def
_init
(
self
):
...
...
@@ -484,7 +492,7 @@ class PxBypass():
def
_gen_pc
(
self
,
t1
,
e
):
self
.
log
.
info
(
f
'genpc key: {e}'
)
self
.
log
.
info
(
f
'genpc msg: {t1}'
)
return
ctxPC
.
call
(
'genPc'
,
t1
,
e
)
return
ctxPC
.
call
(
'genPc'
,
t1
,
e
)
# r = requests.post('http://127.0.0.1:3001', data={
# 't':t1,
# 'e':e
...
...
@@ -547,7 +555,7 @@ class PxBypass():
"cookie"
:
'; '
.
join
(
cks
)
},
method
=
"GET"
,
proxy
=
self
.
prox
,
debug
=
True
,
allow_redirects
=
True
#
, allow_redirects=True
))
response
=
response
.
json
()
...
...
@@ -568,34 +576,33 @@ class PxBypass():
self
.
log
.
error
(
f
"请求结果 {response['status_code']}"
)
def
_step_2
(
self
,
nn
):
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
self
.
log
.
info
(
f
'performanceNow {self.performanceNow}'
)
# sid, vid,ts, num1 ,num2,str1, uuid
# data_str = ctxStep
2.call('genPayload2', self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
#
self.str1, self.uuid,
#
self.startTs, self.startTs2, self.performanceNow, self.px12280, nn)
data_str
=
ctxPayload
2
.
call
(
'genPayload2'
,
self
.
target_url
,
self
.
sid
,
self
.
vid
,
self
.
ts
,
self
.
num1
,
self
.
num2
,
self
.
str1
,
self
.
uuid
,
self
.
startTs
,
self
.
startTs2
,
self
.
performanceNow
,
self
.
px12280
,
nn
)
# data_str =
# data = json.loads(data_str)
p
=
PxEnv
(
self
.
pxEnv
,
self
.
target_url
,
self
.
sid
,
self
.
vid
,
self
.
ts
,
self
.
num1
,
self
.
num2
,
self
.
str1
,
self
.
uuid
,
self
.
startTs
,
self
.
startTs2
,
self
.
performanceNow
,
self
.
px12280
)
data
=
[
p
.
get_px11590
()]
#
p = PxEnv(self.pxEnv, self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
#
self.str1, self.uuid,
#
self.startTs, self.startTs2, self.performanceNow, self.px12280)
# data_str
= [p.get_px11590()]
# data_str2 = ctxStep2.call('genPayload3', self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
# self.str1, self.uuid,
# self.startTs, self.startTs2, nn)
# data2 = json.loads(data_str2)
# data.extend(data2)
self
.
do_collector
(
data
)
self
.
do_collector2
(
data_str
)
def
_decode_resp
(
self
):
a
=
int
(
self
.
tag
.
replace
(
'v'
,
''
)
.
replace
(
'.'
,
''
))
return
a
%
128
def
_step_11
(
self
):
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
data
=
[{
"t"
:
"PX12167"
,
"d"
:
{
"PX11648"
:
True
}}]
self
.
do_collector
(
data
)
...
...
@@ -624,25 +631,25 @@ class PxBypass():
return
data
def
_step_3
(
self
):
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
self
.
performanceNow
+=
random
.
randint
(
1000
,
2000
)
self
.
log
.
info
(
f
'performanceNow {self.performanceNow}'
)
# sid, vid,ts, num1 ,num2,str1, uuid
# genPayload4(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs2, performanceNow, px11280, n)
# data_str = ctxStep
2.call('genPayload4', self.target_url, self.sid, self.vid, self.ts, self.num1,
#
self.num2,
# self.str1, self.uuid,self.startTs, self.startTs2, self.performanceNow, self.px12280)
p
=
PxEnv
(
self
.
pxEnv
,
self
.
target_url
,
self
.
sid
,
self
.
vid
,
self
.
ts
,
self
.
num1
,
self
.
num2
,
self
.
str1
,
self
.
uuid
,
self
.
startTs
,
self
.
startTs2
,
self
.
performanceNow
,
self
.
px12280
)
data
=
[
p
.
get_px12123
(),
p
.
get_px11891
(),
p
.
get_px11547
()]
data_str
=
ctxPayload
2
.
call
(
'genPayload4'
,
self
.
target_url
,
self
.
sid
,
self
.
vid
,
self
.
ts
,
self
.
num1
,
self
.
num2
,
self
.
str1
,
self
.
uuid
,
self
.
startTs
,
self
.
startTs2
,
self
.
performanceNow
,
self
.
px12280
)
# p = PxEnv(self.pxEnv, self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2
,
# self.str1, self.uuid,
# self.startTs, self.startTs2, self.performanceNow, self.px12280)
# data = [
# p.get_px12123(),
#
# p.get_px11891(),
# p.get_px11547()]
self
.
do_collector
(
data
)
self
.
do_collector
2
(
data_str
)
def
parse_resp
(
self
,
resp
):
if
'ob'
in
resp
:
...
...
@@ -666,10 +673,6 @@ class PxBypass():
self
.
cookies
.
update
({
'_pxvid'
:
self
.
vid
})
self
.
session
.
cookies
.
update
({
'_pxvid'
:
self
.
vid
})
if
tmp
[
0
]
==
'o11o11'
:
self
.
sid
=
tmp
[
1
]
if
tmp
[
0
]
==
'11o111'
:
...
...
@@ -697,8 +700,7 @@ class PxBypass():
self
.
session
.
cookies
.
update
({
'_px2'
:
tmp
[
3
]
})
self
.
log
.
info
(
f
'px2_decode {base64.b64decode(tmp[3].encode()).decode()}'
)
# elif '31536000' in i:
self
.
log
.
debug
(
f
'px2_decode {base64.b64decode(tmp[3].encode()).decode()}'
)
# elif '31536000' in i:
# self.cookies.update({
# '_pxvid': tmp[1]
# })
...
...
@@ -754,6 +756,48 @@ class PxBypass():
})
self
.
log
.
info
(
f
'添加接口 {r.text}'
)
def
do_collector2
(
self
,
data
):
# self.log.info(f"gen Payload {self.uuid}, {self.ts}")
# payload = ctx.call('encodeData', base64.b64encode(data_str.encode('utf-8')).decode(), self.uuid, self.ts)
payload
=
data
[
0
]
pc
=
data
[
1
]
body
=
{
"appId"
:
self
.
appId
,
"tag"
:
self
.
tag
,
"uuid"
:
self
.
uuid
,
"ft"
:
self
.
ft
,
"seq"
:
self
.
seq
,
"en"
:
"NTA"
,
"pc"
:
pc
,
"rsc"
:
self
.
rsc
,
"payload"
:
payload
,
}
body
=
self
.
update_sid_vid
(
body
)
self
.
log
.
info
(
f
'postBody {json.dumps(body)}'
)
# response = self.session.post(self.pxUrl, headers=self.pxHeaders, data=body)
response
=
requests
.
post
(
self
.
tlsUrl
,
# response = requests.post('http://127.0.0.1:58000/tls/forward',
json
=
dict
(
url
=
self
.
pxUrl
,
headers
=
self
.
pxHeaders
,
method
=
"POST"
,
proxy
=
self
.
prox
,
debug
=
True
,
data
=
urlencode
(
body
,
doseq
=
True
)
# ,allow_redirects=True
))
self
.
log
.
info
(
f
'collector {response.text}'
)
resp
=
response
.
json
()
resp
=
json
.
loads
(
resp
[
'text'
])
self
.
parse_resp
(
resp
)
cks
=
[]
# for k, v in self.cookies.items():
# cks.append(f'{k}={v}')
for
k
,
v
in
self
.
session
.
cookies
.
get_dict
()
.
items
():
cks
.
append
(
f
'{k}={v}'
)
self
.
log
.
info
(
'; '
.
join
(
cks
))
self
.
inc
()
# self.px12280 = self.startTs + self.performanceNow
if
__name__
==
'__main__'
:
url
=
"https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true"
...
...
step2.js
View file @
bbe3f869
// pc
// encode
const
Ev
=
(
t
,
e
,
n
)
=>
{
var
r
=
ie
(
encode
(
n
),
10
),
o
=
[],
a
=
-
1
;
for
(
var
i
=
0
;
i
<
t
.
length
;
i
++
)
{
var
l
=
Math
.
floor
(
i
/
r
.
length
+
1
)
var
c
=
i
>=
r
.
length
?
i
%
r
.
length
:
i
var
u
=
r
.
charCodeAt
(
c
)
*
r
.
charCodeAt
(
l
)
// console.log(i, l, c, u)
u
>
a
&&
(
a
=
u
)
}
for
(
var
f
=
0
;
t
.
length
>
f
;
f
++
)
{
var
s
=
Math
.
floor
(
f
/
r
.
length
)
+
1
,
d
=
f
%
r
.
length
,
p
=
r
.
charCodeAt
(
d
)
*
r
.
charCodeAt
(
s
)
// console.log(f, s, d, p, p > e, wv(p, 0, a, 0, e-1))
p
>=
e
&&
(
p
=
wv
(
p
,
0
,
a
,
0
,
e
-
1
));
for
(;
-
1
!==
o
.
indexOf
(
p
);)
{
p
+=
1
}
// console.log('add', p)
o
.
push
(
p
)
}
return
o
.
sort
(
function
(
t
,
e
)
{
return
t
-
e
})
}
const
encode
=
(
t
)
=>
{
return
btoa
(
encodeURIComponent
(
t
).
replaceAll
(
/%
([
0-9A-F
]{2})
/g
,
function
(
t
,
e
)
{
// console.log(t, e, '0x' + e)
return
String
.
fromCharCode
(
"0x"
+
e
);
}))
}
const
ie
=
(
t
,
e
)
=>
{
for
(
var
n
=
''
,
r
=
0
;
r
<
t
.
length
;
r
++
)
// console.log(e, t.charCodeAt(r), e ^ t.charCodeAt(r), String.fromCharCode(e ^ t.charCodeAt(r)))
n
+=
String
.
fromCharCode
(
e
^
t
.
charCodeAt
(
r
))
return
n
}
const
wv
=
(
t
,
e
,
n
,
r
,
o
)
=>
{
return
Math
.
floor
(((
t
-
e
)
/
(
n
-
e
))
*
(
o
-
r
)
+
r
)
}
const
Fa
=
(
t
,
e
,
n
)
=>
{
// console.log('t', t)
// console.log('e', e)
// console.log('n', n)
var
r
=
''
,
o
=
0
,
a
=
t
.
split
(
''
)
for
(
var
i
=
0
;
i
<
t
.
length
;
i
++
)
{
// console.log(i,o,n[i], n[i] - i - 1, e.substring(o, n[i] - i - 1), a[i], e.substring(o, n[i] - i - 1)+a[i])
// console.log(i, o, n[i] - i - 1, n[i] - i - 1 - o)
r
+=
e
.
substring
(
o
,
n
[
i
]
-
i
-
1
)
+
a
[
i
]
// console.log(e.substring(o, n[i] - i - 1))
// console.log(r.length, r)
o
=
n
[
i
]
-
i
-
1
// console.log('iii',i,r)
// console.log()
}
return
(
r
+=
e
.
substring
(
o
))
}
function
encodePayload
(
payload
,
uuid
,
ts
)
{
var
sts
=
ts
.
length
===
0
?
'1604064986000'
:
ts
let
t1
=
ie
(
payload
,
50
);
const
BasePayload
=
encode
(
t1
)
// console.log(BasePayload)
const
fv
=
ie
(
encode
(
sts
),
10
)
let
t3
=
Ev
(
fv
,
BasePayload
.
length
,
uuid
);
return
Fa
(
fv
,
BasePayload
,
t3
)
}
function
$C_kKK
(
t
,
e
)
{
for
(
var
n
=
""
,
r
=
0
;
r
<
t
.
length
;
r
++
)
n
+=
String
.
fromCharCode
(
e
^
t
.
charCodeAt
(
r
));
return
n
;
...
...
@@ -4863,10 +4944,8 @@ function createPx2(t, e) {
function
createPx1
(
t
)
{
t
=
""
+
t
;
for
(
var
e
,
n
=
0
,
r
=
0
;
r
<
t
.
length
;
r
++
)
{
console
.
log
(
n
,
t
.
charCodeAt
(
r
))
n
=
(
n
<<
5
)
-
n
+
t
.
charCodeAt
(
r
);
n
|=
0
;
console
.
log
(
r
,
n
)
}
return
e
=
n
,
(
e
|=
0
)
<
0
&&
(
e
+=
4294967296
),
e
.
toString
(
16
);
...
...
@@ -4917,6 +4996,165 @@ function createPX12508() {
return
ENV
.
useragentdata
.
highvalue
.
brands
}
function
genPc
(
t
,
e
)
{
function
D
(
t
,
e
)
{
var
n
,
r
=
H
(
t
),
a
=
[],
o
=
[];
for
(
a
[
15
]
=
o
[
15
]
=
void
0
,
r
.
length
>
16
&&
(
r
=
O
(
r
,
8
*
t
.
length
)),
n
=
0
;
n
<
16
;
n
+=
1
)
a
[
n
]
=
909522486
^
r
[
n
],
o
[
n
]
=
1549556828
^
r
[
n
];
var
i
=
O
(
a
.
concat
(
H
(
e
)),
512
+
8
*
e
.
length
);
return
X
(
O
(
o
.
concat
(
i
),
640
))
}
function
X
(
t
)
{
var
e
,
n
=
""
;
for
(
e
=
0
;
e
<
32
*
t
.
length
;
e
+=
8
)
n
+=
String
.
fromCharCode
(
t
[
e
>>
5
]
>>>
e
%
32
&
255
);
return
n
}
function
H
(
t
)
{
var
e
,
n
=
[];
for
(
n
[(
t
.
length
>>
2
)
-
1
]
=
void
0
,
e
=
0
;
e
<
n
.
length
;
e
+=
1
)
n
[
e
]
=
0
;
for
(
e
=
0
;
e
<
8
*
t
.
length
;
e
+=
8
)
n
[
e
>>
5
]
|=
(
255
&
t
.
charCodeAt
(
e
/
8
))
<<
e
%
32
;
return
n
}
function
R
(
t
,
e
)
{
var
n
=
(
65535
&
t
)
+
(
65535
&
e
);
return
(
t
>>
16
)
+
(
e
>>
16
)
+
(
n
>>
16
)
<<
16
|
65535
&
n
}
function
x
(
t
,
e
,
n
,
r
,
a
,
o
,
i
)
{
return
B
(
e
&
n
|
~
e
&
r
,
t
,
e
,
a
,
o
,
i
)
}
function
B
(
t
,
e
,
n
,
r
,
a
,
o
)
{
return
R
((
i
=
R
(
R
(
e
,
t
),
R
(
r
,
o
)))
<<
(
c
=
a
)
|
i
>>>
32
-
c
,
n
);
var
i
,
c
}
function
_
(
t
,
e
,
n
,
r
,
a
,
o
,
i
)
{
return
B
(
e
&
r
|
n
&
~
r
,
t
,
e
,
a
,
o
,
i
)
}
function
k
(
t
,
e
,
n
,
r
,
a
,
o
,
i
)
{
return
B
(
e
^
n
^
r
,
t
,
e
,
a
,
o
,
i
)
}
function
M
(
t
,
e
,
n
,
r
,
a
,
o
,
i
)
{
return
B
(
n
^
(
e
|
~
r
),
t
,
e
,
a
,
o
,
i
)
}
function
O
(
t
,
e
)
{
t
[
e
>>
5
]
|=
128
<<
e
%
32
,
t
[
14
+
(
e
+
64
>>>
9
<<
4
)]
=
e
;
var
n
,
r
,
a
,
o
,
i
,
c
=
1732584193
,
u
=
-
271733879
,
f
=
-
1732584194
,
s
=
271733878
;
for
(
n
=
0
;
n
<
t
.
length
;
n
+=
16
)
r
=
c
,
a
=
u
,
o
=
f
,
i
=
s
,
c
=
x
(
c
,
u
,
f
,
s
,
t
[
n
],
7
,
-
680876936
),
s
=
x
(
s
,
c
,
u
,
f
,
t
[
n
+
1
],
12
,
-
389564586
),
f
=
x
(
f
,
s
,
c
,
u
,
t
[
n
+
2
],
17
,
606105819
),
u
=
x
(
u
,
f
,
s
,
c
,
t
[
n
+
3
],
22
,
-
1044525330
),
c
=
x
(
c
,
u
,
f
,
s
,
t
[
n
+
4
],
7
,
-
176418897
),
s
=
x
(
s
,
c
,
u
,
f
,
t
[
n
+
5
],
12
,
1200080426
),
f
=
x
(
f
,
s
,
c
,
u
,
t
[
n
+
6
],
17
,
-
1473231341
),
u
=
x
(
u
,
f
,
s
,
c
,
t
[
n
+
7
],
22
,
-
45705983
),
c
=
x
(
c
,
u
,
f
,
s
,
t
[
n
+
8
],
7
,
1770035416
),
s
=
x
(
s
,
c
,
u
,
f
,
t
[
n
+
9
],
12
,
-
1958414417
),
f
=
x
(
f
,
s
,
c
,
u
,
t
[
n
+
10
],
17
,
-
42063
),
u
=
x
(
u
,
f
,
s
,
c
,
t
[
n
+
11
],
22
,
-
1990404162
),
c
=
x
(
c
,
u
,
f
,
s
,
t
[
n
+
12
],
7
,
1804603682
),
s
=
x
(
s
,
c
,
u
,
f
,
t
[
n
+
13
],
12
,
-
40341101
),
f
=
x
(
f
,
s
,
c
,
u
,
t
[
n
+
14
],
17
,
-
1502002290
),
c
=
_
(
c
,
u
=
x
(
u
,
f
,
s
,
c
,
t
[
n
+
15
],
22
,
1236535329
),
f
,
s
,
t
[
n
+
1
],
5
,
-
165796510
),
s
=
_
(
s
,
c
,
u
,
f
,
t
[
n
+
6
],
9
,
-
1069501632
),
f
=
_
(
f
,
s
,
c
,
u
,
t
[
n
+
11
],
14
,
643717713
),
u
=
_
(
u
,
f
,
s
,
c
,
t
[
n
],
20
,
-
373897302
),
c
=
_
(
c
,
u
,
f
,
s
,
t
[
n
+
5
],
5
,
-
701558691
),
s
=
_
(
s
,
c
,
u
,
f
,
t
[
n
+
10
],
9
,
38016083
),
f
=
_
(
f
,
s
,
c
,
u
,
t
[
n
+
15
],
14
,
-
660478335
),
u
=
_
(
u
,
f
,
s
,
c
,
t
[
n
+
4
],
20
,
-
405537848
),
c
=
_
(
c
,
u
,
f
,
s
,
t
[
n
+
9
],
5
,
568446438
),
s
=
_
(
s
,
c
,
u
,
f
,
t
[
n
+
14
],
9
,
-
1019803690
),
f
=
_
(
f
,
s
,
c
,
u
,
t
[
n
+
3
],
14
,
-
187363961
),
u
=
_
(
u
,
f
,
s
,
c
,
t
[
n
+
8
],
20
,
1163531501
),
c
=
_
(
c
,
u
,
f
,
s
,
t
[
n
+
13
],
5
,
-
1444681467
),
s
=
_
(
s
,
c
,
u
,
f
,
t
[
n
+
2
],
9
,
-
51403784
),
f
=
_
(
f
,
s
,
c
,
u
,
t
[
n
+
7
],
14
,
1735328473
),
c
=
k
(
c
,
u
=
_
(
u
,
f
,
s
,
c
,
t
[
n
+
12
],
20
,
-
1926607734
),
f
,
s
,
t
[
n
+
5
],
4
,
-
378558
),
s
=
k
(
s
,
c
,
u
,
f
,
t
[
n
+
8
],
11
,
-
2022574463
),
f
=
k
(
f
,
s
,
c
,
u
,
t
[
n
+
11
],
16
,
1839030562
),
u
=
k
(
u
,
f
,
s
,
c
,
t
[
n
+
14
],
23
,
-
35309556
),
c
=
k
(
c
,
u
,
f
,
s
,
t
[
n
+
1
],
4
,
-
1530992060
),
s
=
k
(
s
,
c
,
u
,
f
,
t
[
n
+
4
],
11
,
1272893353
),
f
=
k
(
f
,
s
,
c
,
u
,
t
[
n
+
7
],
16
,
-
155497632
),
u
=
k
(
u
,
f
,
s
,
c
,
t
[
n
+
10
],
23
,
-
1094730640
),
c
=
k
(
c
,
u
,
f
,
s
,
t
[
n
+
13
],
4
,
681279174
),
s
=
k
(
s
,
c
,
u
,
f
,
t
[
n
],
11
,
-
358537222
),
f
=
k
(
f
,
s
,
c
,
u
,
t
[
n
+
3
],
16
,
-
722521979
),
u
=
k
(
u
,
f
,
s
,
c
,
t
[
n
+
6
],
23
,
76029189
),
c
=
k
(
c
,
u
,
f
,
s
,
t
[
n
+
9
],
4
,
-
640364487
),
s
=
k
(
s
,
c
,
u
,
f
,
t
[
n
+
12
],
11
,
-
421815835
),
f
=
k
(
f
,
s
,
c
,
u
,
t
[
n
+
15
],
16
,
530742520
),
c
=
M
(
c
,
u
=
k
(
u
,
f
,
s
,
c
,
t
[
n
+
2
],
23
,
-
995338651
),
f
,
s
,
t
[
n
],
6
,
-
198630844
),
s
=
M
(
s
,
c
,
u
,
f
,
t
[
n
+
7
],
10
,
1126891415
),
f
=
M
(
f
,
s
,
c
,
u
,
t
[
n
+
14
],
15
,
-
1416354905
),
u
=
M
(
u
,
f
,
s
,
c
,
t
[
n
+
5
],
21
,
-
57434055
),
c
=
M
(
c
,
u
,
f
,
s
,
t
[
n
+
12
],
6
,
1700485571
),
s
=
M
(
s
,
c
,
u
,
f
,
t
[
n
+
3
],
10
,
-
1894986606
),
f
=
M
(
f
,
s
,
c
,
u
,
t
[
n
+
10
],
15
,
-
1051523
),
u
=
M
(
u
,
f
,
s
,
c
,
t
[
n
+
1
],
21
,
-
2054922799
),
c
=
M
(
c
,
u
,
f
,
s
,
t
[
n
+
8
],
6
,
1873313359
),
s
=
M
(
s
,
c
,
u
,
f
,
t
[
n
+
15
],
10
,
-
30611744
),
f
=
M
(
f
,
s
,
c
,
u
,
t
[
n
+
6
],
15
,
-
1560198380
),
u
=
M
(
u
,
f
,
s
,
c
,
t
[
n
+
13
],
21
,
1309151649
),
c
=
M
(
c
,
u
,
f
,
s
,
t
[
n
+
4
],
6
,
-
145523070
),
s
=
M
(
s
,
c
,
u
,
f
,
t
[
n
+
11
],
10
,
-
1120210379
),
f
=
M
(
f
,
s
,
c
,
u
,
t
[
n
+
2
],
15
,
718787259
),
u
=
M
(
u
,
f
,
s
,
c
,
t
[
n
+
9
],
21
,
-
343485551
),
c
=
R
(
c
,
r
),
u
=
R
(
u
,
a
),
f
=
R
(
f
,
o
),
s
=
R
(
s
,
i
);
return
[
c
,
u
,
f
,
s
]
}
function
N
(
t
)
{
var
e
,
n
,
r
=
"0123456789abcdef"
,
a
=
""
;
for
(
n
=
0
;
n
<
t
.
length
;
n
+=
1
)
e
=
t
.
charCodeAt
(
n
),
a
+=
r
.
charAt
(
e
>>>
4
&
15
)
+
r
.
charAt
(
15
&
e
);
return
a
}
function
genPC1
(
t
)
{
for
(
var
e
=
""
,
n
=
""
,
r
=
0
;
r
<
t
.
length
;
r
++
)
{
var
a
=
t
.
charCodeAt
(
r
);
a
>=
48
&&
a
<=
57
?
e
+=
t
[
r
]
:
n
+=
a
%
10
;
}
return
e
+
n
}
function
genPC2
(
r
)
{
var
a
=
""
;
var
o
=
0
;
for
(
o
=
0
;
o
<
r
.
length
;
o
+=
2
)
a
+=
r
[
o
];
return
a
}
return
genPC2
(
genPC1
(
N
(
D
(
e
,
t
))))
}
function
genPayload2
(
url
,
sid
,
vid
,
ts
,
num1
,
num2
,
str1
,
uuid
,
startTs
,
startTs2
,
performanceNow
,
px11280
,
n
)
{
// let vid = m['I000I0']
// let sid = m['I0I0II']
...
...
@@ -4951,9 +5189,9 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
"PX12501"
:
md5
(
vid
),
// vid md5
"PX12169"
:
1
,
"PX11902"
:
1
,
"PX11560"
:
performanceNow
+
randomInt
(
1000
,
2500
),
// performance.now()
"PX11560"
:
performanceNow
+
randomInt
(
1000
,
2500
),
// performance.now()
// "PX11332": 1692944411272,
"PX11332"
:
startTs
+
randomInt
(
1000
,
2500
),
"PX11332"
:
startTs
+
randomInt
(
1000
,
2500
),
"PX12248"
:
3600
,
"PX11385"
:
startTs
,
"PX12280"
:
px11280
,
...
...
@@ -5369,7 +5607,7 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
"PX11484"
:
[],
"PX12501"
:
md5
(
vid
),
"PX11902"
:
2
,
"PX11560"
:
performanceNow
+
randomInt
(
1000
,
2500
),
// perf
"PX11560"
:
performanceNow
+
randomInt
(
1000
,
2500
),
// perf
"PX12280"
:
px11280
,
"PX11496"
:
uuid
,
"PX12564"
:
null
,
...
...
@@ -5379,7 +5617,11 @@ function genPayload2(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
}
})
}
return
JSON
.
stringify
(
data2
);
let
strs
=
JSON
.
stringify
(
data2
);
return
[
encodePayload
(
strs
,
uuid
,
ts
),
genPc
(
strs
,
`
${
uuid
}
:v8.7.2:317`
)
]
}
...
...
@@ -5504,7 +5746,7 @@ uuid = '31fafcb0-8844-11ee-8d49-97ed9bc8f96f'
console
.
log
(
res
)
// startTs PX11385
function
genPayload4
(
url
,
sid
,
vid
,
ts
,
num1
,
num2
,
str1
,
uuid
,
startTs
,
startTs2
,
performanceNow
,
px11280
,
n
)
{
function
genPayload4
(
url
,
sid
,
vid
,
ts
,
num1
,
num2
,
str1
,
uuid
,
startTs
,
startTs2
,
performanceNow
,
px11280
,
n
)
{
let
data
=
[{
"t"
:
"PX12123"
,
"d"
:
{
...
...
@@ -5672,17 +5914,21 @@ function genPayload4(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
// "PX11645": url
}
})
return
JSON
.
stringify
(
data
)
let
strs
=
JSON
.
stringify
(
data
);
return
[
encodePayload
(
strs
,
uuid
,
ts
),
genPc
(
strs
,
`
${
uuid
}
:v8.7.2:317`
)
]
}
// startTs2 PX11280
//
console.log(genPayload2('https://www.flyfrontier.com/',
//
sid, vid, ts, num1, num2, str1, uuid
//
//
, 1700552863875, 1700464712550
// , 1700552863903, 1700552863903,
true
//
)
//
)
console
.
log
(
genPayload2
(
'https://www.flyfrontier.com/'
,
sid
,
vid
,
ts
,
num1
,
num2
,
str1
,
uuid
,
1700552863875
,
1700464712550
,
1700552863903
,
1700552863903
,
true
)
)
// console.log(JSON.stringify(data))
...
...
@@ -5705,7 +5951,7 @@ function genPayload4(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
// "716c90f0-8512-11ee-8c96-410f8e8f9c35"
// ))
while
(
true
){
console
.
log
(
genUuid
())
}
//
while (true){
//
console.log(genUuid())
//
//
}
test_search.py
View file @
bbe3f869
...
...
@@ -9,7 +9,9 @@ headers = {"authority": "booking.flyfrontier.com",
"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"
,
"accept-language"
:
"en-US,en;q=0.9"
,
"user-agent"
:
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
,
"cookie"
:
'pxcts=979ebd00-8f4f-11ee-987b-b18415b5fd12; _pxvid=979eae87-8f4f-11ee-987b-7b66a112e4fb; _px2=eyJ1IjoiOTM4N2MxNDAtOGY0Zi0xMWVlLWIxNjItYTM5MGRjYjEzNWM2IiwidiI6Ijk3OWVhZTg3LThmNGYtMTFlZS05ODdiLTdiNjZhMTEyZTRmYiIsInQiOjE3MDEzMjg3Mjc2MDQsImgiOiIwNTFhNGEwMDYzN2NlZjRmZTJjY2JhMTZlZjZiMGJlZTkzODU5ZGYzYWYwYjc2YmViMzNkMzk1OTU1ZGMyZGJlIn0='
"cookie"
:
'_gcl_au=1.1.350987795.1701334509; _uetsid=2b04af708f5e11ee8509153ed46992ea; _uetvid=2b04cf908f5e11eea7e5ad9b9c736736; pxcts=2b045ebd-8f5e-11ee-9c50-f7c2e4d7c598; _pxvid=2b044fb6-8f5e-11ee-9c50-c821bdd11c27; _rdt_uuid=1701334511316.a6e6247a-946b-43d0-9f01-cb2d547a3925; _ga=GA1.2.77682822.1701334510; _gid=GA1.2.1162709052.1701334512; _gat_UA-2678252-1=1; _px2=eyJ1IjoiMmEzOGIwMDAtOGY1ZS0xMWVlLWE5MTYtYWY0ZDFhNGNkOTYyIiwidiI6IjJiMDQ0ZmI2LThmNWUtMTFlZS05YzUwLWM4MjFiZGQxMWMyNyIsInQiOjYyMDIzMzg4MDAwNCwiaCI6ImUxZjkxNmUxYWU1ZTMyMGI5MTIxYmRkN2RlZjVkMmQxNDQ2NDAxMDIzYWZmYzc0Y2M5NTY5MjQ4OWZiNTM0YWYifQ==; _fbp=fb.1.1701334512951.1449064547; _tt_enable_cookie=1; _ttp=dcq_pDvX9ZWtsM-s50W5b9OalnX; _pin_unauth=dWlkPU9XTmtaVEJtTjJVdFpXTm1aUzAwTVdNMkxXRmtOMkV0TW1OaFlUZGlNbVl3WkdKaw; wisepops_visits=
%5
B
%222023
-11-30T08
%3
A55
%3
A08.859Z
%22%5
D; _up=1.2.845170716.1701334515; wisepops=
%7
B
%22
csd
%22%3
A1
%2
C
%22
popups
%22%3
A
%7
B
%22429858%22%3
A
%7
B
%22
dc
%22%3
A1
%2
C
%22
d
%22%3
A1701334518611
%7
D
%7
D
%2
C
%22
sub
%22%3
A0
%2
C
%22
ucrn
%22%3
A39
%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; wisepops_session=
%7
B
%22
arrivalOnSite
%22%3
A
%222023
-11-30T08
%3
A55
%3
A08.859Z
%22%2
C
%22
mtime
%22%3
A1701334518611
%2
C
%22
pageviews
%22%3
A1
%2
C
%22
popups
%22%3
A
%7
B
%22429858%22%3
A0
%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; _ga_P2WLKWBNNW=GS1.1.1701334510.1.0.1701334519.51.0.0'
}
...
...
@@ -45,18 +47,22 @@ url = "https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2
prox
=
'http://user-uni001-region-us-sessid-1114-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
prox
=
f
'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
# prox = 'http://user-uni001-region-us-sessid-4909-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
prox
=
'http://74.48.159.194:33080'
print
(
prox
)
for
i
in
range
(
1
0
):
for
i
in
range
(
2
0
):
# prox = 'http://127.0.0.1:8890'
url
=
"http://httpbin.org/ip"
response
=
requests
.
post
(
'http://52.52.23.116/tls/forward'
,
# response = requests.post('http://127.0.0.1:58000/tls/forward',
json
=
dict
(
url
=
url
,
method
=
"GET"
,
proxy
=
prox
,
headers
=
headers
,
debug
=
True
,
allow_redirects
=
True
)
)
print
(
response
.
json
())
print
(
response
.
json
()[
'status_code'
])
print
(
'FlightData'
in
response
.
json
()[
'text'
])
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