Commit 7ee4b71f authored by wang's avatar wang

开始按压验证码

parent 29b5bbba
This diff is collapsed.
......@@ -9,19 +9,19 @@
</head>
<body>
<script>
window._pxVid = 'dda98c53-88fe-11ee-b1d0-462e4e6aaa17';
window._pxUuid = '304283c8-4d90-49cd-84b3-39b091404f5c';
window._pxVid = '';
window._pxUuid = '6d650541-8ab1-11ee-bff9-5ba7b1e8c527';
window._pxAppId = 'PXVb73hTEg';
window._pxHostUrl = 'https://collector-PXVb73hTEg.perimeterx.net';
window._pxCustomLogo = '';
window._pxJsClientSrc = '//client.perimeterx.net/PXVb73hTEg/main.min.js';
window._pxFirstPartyEnabled = 'false';
var script = document.createElement('script');
script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=304283c8-4d90-49cd-84b3-39b091404f5c&v=dda98c53-88fe-11ee-b1d0-462e4e6aaa17&m=0';
script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=6d650541-8ab1-11ee-bff9-5ba7b1e8c527&v=&m=0';
document.head.appendChild(script);
script.onerror = function () {
script = document.createElement('script');
script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=304283c8-4d90-49cd-84b3-39b091404f5c&v=dda98c53-88fe-11ee-b1d0-462e4e6aaa17&m=0';
script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=6d650541-8ab1-11ee-bff9-5ba7b1e8c527&v=&m=0';
script.onerror = window._pxDisplayErrorMessage;
document.head.appendChild(script);
};
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -13,14 +13,14 @@ import execjs
import requests
import tls_client
from loguru import logger
from env import PxEnv
from utils import PxUtils
with open('js/encodepayload.js', 'r', encoding='utf-8') as f:
jsCode = f.read()
ctx = execjs.compile(jsCode)
ctxPC = execjs.compile(open('pc.js').read())
ctxStep2 = execjs.compile(open('step2.js').read())
# with open('js/encodepayload.js', 'r', encoding='utf-8') as f:
# jsCode = f.read()
# # ctx = execjs.compile(jsCode)
# # ctxPC = execjs.compile(open('pc.js').read())
# ctxStep2 = execjs.compile(open('step2.js').read())
def get_timestamp():
......@@ -67,7 +67,7 @@ class PxBypass():
prox = 'http://user-uni001-region-us-sessid-1111-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 = 'http://127.0.0.1:7890'
prox = 'http://127.0.0.1:7890'
session.proxies = {
'http': prox,
'https': prox,
......@@ -169,10 +169,11 @@ class PxBypass():
self._token()
def _init(self):
cks = '_px2=eyJ1IjoiOGRjYjQ3NjAtODl2jYi0xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ==; pxcts=8e8b30eb-89cb-11ee-9ab5-ccabb13183c7; _px2=eyJ1IjoiOGRjYjQ3NjAtODljYi0xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ=='
res = self.session.get(
self.target_url,
# 'https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true',
# self.target_url,
'https://booking.flyfrontier.com/Flight/InternalSelect?o1=DEN&d1=LAS&dd1=2023-11-30&ADT=1&umnr=false&mon=true',
headers={
"authority": "www.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",
......@@ -187,6 +188,7 @@ class PxBypass():
"sec-fetch-site": "none",
"sec-fetch-user": "?1",
"upgrade-insecure-requests": "1",
'cookie': cks,
"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",
}, allow_redirects=False)
self.log.info(f"初始化请求 res {res.status_code}")
......@@ -194,8 +196,8 @@ class PxBypass():
for k, v in self.session.cookies.items():
self.params[k] = v
self.log.info(f"init cookie {self.params}")
# with open('index.html', 'w') as f:
# f.write(res.text)
with open('index.html', 'w') as f:
f.write(res.text)
def _uuid(self):
# return str(uuid.uuid4())
......@@ -373,11 +375,15 @@ class PxBypass():
self.log.info(self.uuid)
self.log.info(f'performanceNow {self.performanceNow}')
# sid, vid,ts, num1 ,num2,str1, uuid
data_str = ctxStep2.call('genPayload2', self.target_url, self.sid, self.vid, self.ts, self.num1, self.num2,
# data_str = ctxStep2.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.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 = json.loads(data_str)
self.startTs, self.startTs2, self.performanceNow, self.px12280)
data = [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)
......@@ -423,11 +429,14 @@ class PxBypass():
# sid, vid,ts, num1 ,num2,str1, uuid
# genPayload4(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs2, performanceNow, px11280, n)
data_str = ctxStep2.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)
self.do_collector(data_str)
# data_str = ctxStep2.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.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)
def parse_resp(self, resp):
if 'ob' in resp:
......
......@@ -4862,7 +4862,11 @@ function createPx2(t, e) {
function createPx1(t) {
t = "" + t;
for (var e, n = 0, r = 0; r < t.length; r++) {
n = (n << 5) - n + t.charCodeAt(r), n |= 0;
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);
}
......@@ -5671,7 +5675,7 @@ function genPayload4(url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs
}
// startTs2 PX11280
console.log(genPayload4('https://www.flyfrontier.com/',
console.log(genPayload2('https://www.flyfrontier.com/',
sid, vid, ts, num1, num2, str1, uuid
, 1700552863875, 1700464712550
......
......@@ -60,13 +60,10 @@ a2 = "KysrKytSHj0SGlAeUVFSHgcbKFMrCA0LLBg3GjgmLxUvJTcWLCY7UiwbUhovNTQOLjUnFSw1Mx
a2 = "UisrUitSHhEBDRAHHlIeAAsMAxAbHBwcHCsrKysrUh49EhpQHlFRUh4HGyhTKwgNCzsINA8sJjsYLA87FiwmO1IsG1IaLzU0Di41J1MsJSsWLBgjUiwYM1csJglSOwgBGysLFQsGCytUKw8zFS01M1ctNjNTLjYzUCwmARYvNiQOODFTCiw2MAsuNjMYLyYGCi9QJxg4NScaOCErESsMMwstCDcYLzYzUiwIMxUvIRULAyErVCsICg4tJiQPLwgnGi8lJxosJg4POxg3FTg2MA4tNTtTLAg3Vzg1Oxo7UDAJOCYzVzsYOA4vGCtRO1AnGDgIN1MsJicYLTUnGDsPM1IvGDgPO1A7Gi8YAQsEM19fHhYQFwceUVJSHBwcHFIrK1IrUh4RAQ0QBx5SHgALDAMQGxwcHBxSKysrK1JSUh49EhoGBx5RUVIeUVRRU1JRBlEAVFJUA1pQV1QEB1VXBgFXVAcHUQQHVVVUBFFRV1paV1VSAVYHVgRUAVdXAAFQAFoAWgdbUFEGBlgHGyhSAzVTDgFRMAoAOiMLLQgnUC02LxstNgVTLBg3ViwIMFseFhAXBx5RUlIcHBwcUisrK1IrUlIeUhwcHBxSUitSK1IeARc="
a2 = "WVkHBwdZFDcYEFoUW1tYFA0RIlkhAgcBMRIuBSYvMVsxPCEcJywyBScrWBAlPz4EJD8tXSYsAxwyPz4DJzwmBSUSIgExPD0fIQEfAQwBIV4hBSUQMgI6BTEFJgUkPA9aMgIPHCU8LgQyO1kAJzw5XSQ8JgEyLAwDJi8yATI8AAAmASEbIQY5AScCLVslLClYJTwtWyUsMVglLD0bIQUPAScBIgQmAjkSJgIPXTFaJRAxEi4AMRILXCUsPVwlEiFbJiwtEicvJgUlWiYDMiwyAiY8IV0xPAQAMgU5XCc8BAElWi0RJjwyAyYsKgIxPC1bJiwlWiZaMgAhBlhVFBwaHQ0UW1hYFhYWFgdZB1lZWRQLHRYWFhYHWVkHWVlZBxRFWQ=="
a2 = 'WVkHBwdZFDcYEFoUW1tYFA0RIlkhAgcBJy86AjECOVsmAikcJywEAjEBWBAlPz4EJDwDHyUFPRwnLC1cJTwLECUCOgInPCoEIQEfAQwBIV4hAg8SJRIDXSUvMgEkPAAAMTwPHCU8LgQyO1kBJSwlWyQ8Cx8mWjIDJQILESc8OgQyKyEbIQY5AScCLVslLClcJTwDEic8OVwlAgsbIQUPAScBIgImBTlbJRILHyUFMgUnPy1dMTwtECUSC1wlPCICMQU6AjE/OREnPDkRJywmBCUSORInLAwEMRIAADECMRAxPDldJgU5XCc8CxExAg9YJTwyBTESLRIhBlhVFBwaHQ0UW1hYFhYWFgdZWQdZWVkHFEVZFhYWFgdZB1lZWRQLHQ=='
# a2 = "B1lZWQcHWQcUNxgQDA0UW1tYFFkJWF9dC1teXVAJXV5ZWQtfCl9dWVoLCVEODVhYUQldXg4LDl5QUFBYX1xbDVpeDl5aC19aWlwNDlEKW14KWFBSDREiWAk/WQQLWzoACjApAScCLVonPANdJjwPWCYSOVslEgxRFBwaHQ0UW1hYFhYWFllZBwcHWRQ3GBBaFFtbWBQNESJZIQIHASY8OgAyLyVZMjwpHCcsIgMxO1gQJT8+BCQ8D1wmLyUcJgItWTIsLVglWjFcJiwEASEBHwEMASFeIQI9ESY8DAMnPyICJDwPETIvLRwlPC4EMjtYXTE8MVskPy4AJyw5WiYFMgUyBTFaJgEhGyEGOQEnAi1aJzwDXSY8D1smEjlbJRILGyEFDwEnASICJi8tXSUFPVglWiYCJz8iBCU/MRAmLD0QJgU5WzI8OVwmPANaJjwxETIsAxEmPD1bJjwlESYCJVkxPyFZJhI5ECYSDxIxAilYJzw9WzIsIVwmLC1ZIQZYVRQcGh0NFFtYWBYWFhYHWQdZB1kUGwsHGg0UWBQKAQYJGhEWFhYWB1kHWVlZFAsd"
# 0III0I00 判断是否通过
b2 = base64.b64decode(a2.encode())
for i in bytes(encrypt(b2, 872%128)).decode().split('~~~~'):
print('o11o111o'in i, i)
......
......@@ -9,7 +9,7 @@ session = tls_client.Session(client_identifier='chrome_112')
prox = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{random.randint(10000, 13500)}'
# prox = 'http://user-uni001-region-us-sessid-1111-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
cks = '_pxvid=8e8b20c3-89cb-11ee-9ab5-00278698ff5f; pxcts=8e8b30eb-89cb-11ee-9ab5-ccabb13183c7; _px2=eyJ1IjoiOGRjYjQ3NjAtODljYi0xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ==; pxcts=8e8b30eb-89cb-11ee-9ab5-ccabb13183c7; _px2=eyJ1IjoiOGRjYjQ3NjAtODljYi0xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ=='
cks = '_px2=eyJ1IjoiOGRjYjQ3NjAt1ODljYi011xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ==; pxcts=8e8b30eb-89cb-11ee-9ab5-ccabb13183c7; _px2=eyJ1IjoiOGRjYjQ3NjAtODljYi0xMWVlLTkwMmUtODE4MTcxMjRjOTBlIiwidiI6IjhlOGIyMGMzLTg5Y2ItMTFlZS05YWI1LTAwMjc4Njk4ZmY1ZiIsInQiOjYyMDIzMzg4MDAwNCwiaCI6Ijk4NjYzMWNkZDBmNTBjMWE5NjZjYjgwOGNlNzFjYTJkMWNkYzc2MjdjYTc4MTBlZDVhODdmN2FiMzYzOGU1OTgifQ=='
......@@ -45,4 +45,6 @@ response = requests.post('http://52.52.23.116/tls/forward',
response = response.json()
print(response)
print(response['status_code'])
print(response['text'])
\ No newline at end of file
print(response['text'])
with open('index.html', 'w') as f:
f.write(response['text'])
\ No newline at end of file
......@@ -6,6 +6,12 @@ from urllib.parse import quote, unquote
def wv(t, e, n, r, o):
return math.floor(((t - e) / (n - e)) * (o - r) + r)
def left_shift(based, counter):
val = based << (counter % 32)
maxint = 2147483647
if not -maxint - 1 <= val <= maxint:
val = (val + (maxint + 1)) % (2 * (maxint + 1)) - maxint - 1
return val
class PxUtils():
......@@ -84,4 +90,7 @@ if __name__ == '__main__':
p = PxUtils()
payload = '[{"t":"PX12095","d":{"PX11645":"https://www.flyfrontier.com/","PX12207":0,"PX12458":"MacIntel","PX11902":0,"PX11560":4769,"PX12248":3600,"PX11385":1700553697276,"PX12280":1700553697286,"PX11496":"31fafcb0-8844-11ee-8d49-97ed9bc8f96f","PX12564":null,"PX12565":-1,"PX11379":false}}]'
uuid = '31fafcb0-8844-11ee-8d49-97ed9bc8f96f'
print(p.encode_payload(payload, uuid))
\ No newline at end of file
print(p.encode_payload(payload, uuid))
t = 'url, sid, vid, ts, num1, num2, str1, uuid, startTs, startTs2, performanceNow, px11280'
for i in t.split(', '):
print(f'self.{i} = {i}')
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment