Commit de1fa49f authored by wangmingming's avatar wangmingming

解密payload

parent 7ee4b71f
...@@ -31,8 +31,8 @@ class PxBypass(): ...@@ -31,8 +31,8 @@ class PxBypass():
session = tls_client.Session(client_identifier='chrome_112') session = tls_client.Session(client_identifier='chrome_112')
# session = requests.Session() # session = requests.Session()
session.proxies = { session.proxies = {
'http': 'http://127.0.0.1:7890', 'http': 'http://127.0.0.1:8890',
'https': 'http://127.0.0.1:7890', 'https': 'http://127.0.0.1:8890',
} }
code1 = '' code1 = ''
code2 = '' code2 = ''
...@@ -169,7 +169,7 @@ class PxBypass(): ...@@ -169,7 +169,7 @@ class PxBypass():
def process_ob(self, resp): def process_ob(self, resp):
m = {} m = {}
if 'ob' in resp: if 'ob' in resp:
cookies = self.encrypt(base64.b64decode(resp['ob'].encode()), 866 % 128).decode() cookies = self.encrypt(base64.b64decode(resp['ob'].encode()), 872 % 128).decode()
print(cookies.split('~~~~')) print(cookies.split('~~~~'))
for i in cookies.split('~~~~'): for i in cookies.split('~~~~'):
tmp = i.split('|') tmp = i.split('|')
...@@ -262,8 +262,8 @@ class PxBypass(): ...@@ -262,8 +262,8 @@ class PxBypass():
payload = ctx.call('encodePayload', data_str, self.uuid, '') payload = ctx.call('encodePayload', data_str, self.uuid, '')
self.log.info(f'payload {payload}') self.log.info(f'payload {payload}')
tag = "v8.6.6" tag = "v8.7.2"
ft = "316" ft = "317"
pc = self.__gen_pc(data_str, f'{self.uuid}:{tag}:{ft}') pc = self.__gen_pc(data_str, f'{self.uuid}:{tag}:{ft}')
print(pc) print(pc)
body = { body = {
......
...@@ -10,18 +10,18 @@ ...@@ -10,18 +10,18 @@
<body> <body>
<script> <script>
window._pxVid = ''; window._pxVid = '';
window._pxUuid = '6d650541-8ab1-11ee-bff9-5ba7b1e8c527'; window._pxUuid = '3e4390db-8c12-11ee-add0-1b021979ffba';
window._pxAppId = 'PXVb73hTEg'; window._pxAppId = 'PXVb73hTEg';
window._pxHostUrl = 'https://collector-PXVb73hTEg.perimeterx.net'; window._pxHostUrl = 'https://collector-PXVb73hTEg.perimeterx.net';
window._pxCustomLogo = ''; window._pxCustomLogo = '';
window._pxJsClientSrc = '//client.perimeterx.net/PXVb73hTEg/main.min.js'; window._pxJsClientSrc = '//client.perimeterx.net/PXVb73hTEg/main.min.js';
window._pxFirstPartyEnabled = 'false'; window._pxFirstPartyEnabled = 'false';
var script = document.createElement('script'); var script = document.createElement('script');
script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=6d650541-8ab1-11ee-bff9-5ba7b1e8c527&v=&m=0'; script.src = '//captcha.perimeterx.net/PXVb73hTEg/captcha.js?a=c&u=3e4390db-8c12-11ee-add0-1b021979ffba&v=&m=0';
document.head.appendChild(script); document.head.appendChild(script);
script.onerror = function () { script.onerror = function () {
script = document.createElement('script'); script = document.createElement('script');
script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=6d650541-8ab1-11ee-bff9-5ba7b1e8c527&v=&m=0'; script.src = 'https://captcha.px-cloud.net/PXVb73hTEg/captcha.js?a=c&u=3e4390db-8c12-11ee-add0-1b021979ffba&v=&m=0';
script.onerror = window._pxDisplayErrorMessage; script.onerror = window._pxDisplayErrorMessage;
document.head.appendChild(script); document.head.appendChild(script);
}; };
......
const base64 = require('js-base64')
function Base64() {
// private property
var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
var _utf8_encode = function (string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
var _utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
var btoa = function (string) {
return new Base64().encode(string)
}
function R(t, e, n, r, o, i, l) { function R(t, e, n, r, o, i, l) {
return B(e ^ n ^ r, t, e, o, i, l); return B(e ^ n ^ r, t, e, o, i, l);
...@@ -314,7 +205,7 @@ function stringToHex(str) { ...@@ -314,7 +205,7 @@ function stringToHex(str) {
function decode(n) { function decode(n) {
return function (n) { return function (n) {
for (var r = n.split(""), t = 0; t < r.length; t++) r[t] = "%" + ("00" + r[t].charCodeAt(0).toString(16)).slice(-2); for (var r = n.split(""), t = 0; t < r.length; t++) r[t] = "%" + ("0" + r[t].charCodeAt(0).toString(16)).slice(-2);
return decodeURIComponent(r.join("")); return decodeURIComponent(r.join(""));
}(atob(n)); }(atob(n));
} }
...@@ -416,7 +307,6 @@ function enc(payload, uuid, sts) { ...@@ -416,7 +307,6 @@ function enc(payload, uuid, sts) {
let res = '' let res = ''
let aa = decode(decodePayload); let aa = decode(decodePayload);
// aa = base64.fromBase64(decodePayload); // aa = base64.fromBase64(decodePayload);
console.log(base64.decode(aa))
for (let i = 0; i < aa.length; i++) { for (let i = 0; i < aa.length; i++) {
res += String.fromCharCode(50 ^ aa.charCodeAt(i)) res += String.fromCharCode(50 ^ aa.charCodeAt(i))
} }
...@@ -433,8 +323,8 @@ aa = "aUkQRhAIEGJqAwMHBgUQHhBWEAhJEGJqAwAGCwAQCBAFClQFBAFXU1ABUwACCgBRBAFRBARRVA ...@@ -433,8 +323,8 @@ aa = "aUkQRhAIEGJqAwMHBgUQHhBWEAhJEGJqAwAGCwAQCBAFClQFBAFXU1ABUwACCgBRBAFRBARRVA
aa = "aUkQRhAIEGJqAwAHAAEQHhBWEAhJEGJqAwACBgIQCEkQYmoDAwsABBAIaUkQYmoDAAEGARAIEF9dR0FXXUdGEB4QYmoDAwQHABAIAh4QYmoDAwQLCxAIAAoDBh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11EV0AQHhBiagMDBAcAEAgDHhBiagMDBAsLEAgACgMGHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUABh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11HRhAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUECh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11EV0AQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAoeEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQX11HQVddR0YQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAEEHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUEAQQeEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQX11HQVddR0YQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAQHHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUEBAceEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQQl1bXEZXQEdCEB4QYmoDAwQHABAIAB4QYmoDAwQLCxAIBQoGCh4QYmoDAAAFAhAIEEZAR1cQT28eEGJqAwMECwoQCGkQBQsBHgAKCh4DAQsAEB4QBQoCHgEBAB4DBgAGEB4QBQQCHgEFBB4DBgYLEB4QBQYLHgYCCx4DBgUKEB4QBQYAHgYABh4DBwIFEB4QBQYDHgYABh4DBAYBEB4QBQcAHgYAAx4DBAUDEB4QBQUBHgYABB4DBQIAEB4QCgMDHgYBAh4DBQEDEB4QCgcKHgYABB4DBQQAEB4QCwIDHgYDBB4DBQsBEB4QCwECHgYCCh4DCgAAEB4QCwYKHgYCAx4DCgcGEB4QCwYKHgYCAh4DCgoBEB4QCwEHHgELCx4DCwMGEB4QCgoKHgEKCh4DCwYGEB4QCgAAHgEEBB4DCwUDEB4QBQcBHgEGAR4AAgIDEB4QBAoKHgEABx4AAgEDEB4QBAEDHgEDAh4AAgQBEB4QBwoHHgEDBh4AAgsEEB4QBwYKHgECBR4AAwADEB4QBwAGHgECAR4AAwcDEB4QBwIGHgALCh4AAwoDEB4QBgoLHgALBh4AAAMDEB4QBgULHgALAh4AAAYAEB4QBgUFHgALAh4AAAUBEG9PHhBiagMAAwQCEAhpEBFBW1VcH1tcH0VbVlVXRhAeEBFCSh9RU0JGUVGpTEB4QEG8eEGJqAwMGAAUQCAABAB4QYmoDAAACChAIAQYGHhBiagMDC^gAGEAgABQAeEGJqAwMEAQMQCAMCSAh4QYmoDAwoGARAIAwsAAh4QYmoDAwUKAxAIAwIKAh4QYmoDAwsCBBAIaRBVV0ZzRkZAW1BHRlcQHhBRXlNBQXxTX1cQbx4QYmoDAwsGBxAIAwEBHAoGHhBiagMAAwUGEAgHChwBAR4QYmoDAwoKABAIEEJdW1xGV0BWXUVcEB4QYmoDAwQGABAIAAACBxwBAQsKBgEFBx4QYmoDAwEDARAIBgMKHAEBAAIBAwAHHhBiagMDBQUAEAgLAQc?EeEGJqAwMHAAsQCAAKBwMFCwQAHNhBiagMDBwcHEAgGAAsGBQIHAwcAHhBiagMDCgEBEAgBAAcDBwMGBB4QSpYmoDAAIABhAIAwEBHAoGHhBiagMDBQcLEAgHChwBAR4QYmoDAwoLBBAIEEJdW1xGV0BHQhAeEGJqAwMEAQEQCAAAAgccAQELCgYBBQceEGJqAwDMGBgcQCAYDChwBAQACAQMABx4QYmoDAAYDBRAIBQoGCh4QYmoDAAEKABAIaQQLAwBvHhBiagMDAQQCEAgAAwseEGJqAwMFAQcQCEZAR1ceEGJqAwMKBQYQCBBXXB9nYRAeEGJqAwAAA`gcQCBBRAgsDBQsEUARXBgsAVARTUwBWUwcEU1RTBFcLVwBQClYBV1dXAQRXAAcEBAYDBQVUVAFQUQoGAFMEAAsAVlFQCgoHAQdQBAICUwYKAQYHVAtUAwFRClRTUFBWUAYGV1RQVAILBwcBUFcLAQZRUAEBUQUGAlRWAFRTVAdWBFRRUBAeEGJqAwMBBwUQCAQEAgAeEGJqAwAHBAEQCBBUAAZUVlNUB1BRBgMFAwRTUQdWB1YCAlRXBQEKCUAcFUQUHCgsGU1YGUABRAwUGAgtQAFZTAgcAU1ABBAJTAgQGEB4QYmoDAwEAAxAIBQsCAB4QYmoDAwEHAxA?IVFNeQVceEGJqAwMLAwsQCFRTXkFXHhBiagMDBQMCEAhUU15BVx4QYmGoDAAYCBRAIVFNeQVceEGJqAwAGAwMQCAsBCh4QYmoDAwYLBhAICwUGHpGhBiagMAAAQHEAgDHhBiagMDBQIrEEAgQYmoDAAEFBhAeEGJqAwAGCgsQCBBEAxwKHAUQHhBiagMABgsLEAGhUU15BVx4QYmoDAAcCAhAIRkBHVx4QYmoDAAcAAxAIRkBHVx4QYmoDAAcAABAIVFNeQVceEGJqAwAHAAoQCFRTXkFXHhBiagMABwALEAhUU15BVx4QYmoDAAcKBxAIEFpGRkJBCB0dRUVFHEVTXl9TQEYcUV1fHUJAXVZHUUYdCwcGAAMKAAcAHUFXXl5XQEEQHhBiagMABwsEEAhUU15BVx4QYmoDAAcBChAIRkBHVx4QYmoDAAcBBRAIBx4QYmoDAwYHBhAIEERbQVtQXlcQHhBiagMDCwIAEAgGHhBiagMDBwQCEAgLCwELHhBiagMAAAoCEAgDBAsKBAEEAQIDBAAKHhBiagMDBgsEEAgQAwsHBVdQBAIfVAEDCx8DA1dQH1NUUVEfB1AKVlEBVlELVwQAEB4QYmoDAK7AcEBhAIXEdeXh4QYmoDAAcEBxAIHwMeEGJqAwMBBQsQCEZAR1ceEGJqAwABAgUQCBBiagMDBQYHEB4QYmoDAwQEChAIEEJKWlEQHhBiagMAAQYKEAhUU15BVx4QYmoDAwQGBxAIEFpGRkJBCB0dRUVFHEVTXl9TQEYcUV1fHVBeXVFZV1YNR0BeD34BcEtQAGADawFjRH1mZwJ/WHcGf1hnS34BfF5QdUpeUVx/DxRHR1tWDwMLBwVXUAQCH1QBAwsfAwNXUB9TVFFRHwdQClZRAVZRC1cEABREW1YPCwpWBwZWVwMfVAEDCx8DA1dQHwoKBQEfV1YLB1Z7QVwILAVNXFFUPEE9Pbw==" aa = "aUkQRhAIEGJqAwAHAAEQHhBWEAhJEGJqAwACBgIQCEkQYmoDAwsABBAIaUkQYmoDAAEGARAIEF9dR0FXXUdGEB4QYmoDAwQHABAIAh4QYmoDAwQLCxAIAAoDBh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11EV0AQHhBiagMDBAcAEAgDHhBiagMDBAsLEAgACgMGHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUABh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11HRhAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUECh4QYmoDAAAFAhAIEEZAR1cQTx5JEGJqAwABBgEQCBBfXUdBV11EV0AQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAoeEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQX11HQVddR0YQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAEEHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUEAQQeEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQX11HQVddR0YQHhBiagMDBAcAEAgAHhBiagMDBAsLEAgFBAQHHhBiagMAAAUCEAgQRkBHVxBPHkkQYmoDAAEGARAIEF9dR0FXXURXQBAeEGJqAwMEBwAQCAAeEGJqAwMECwsQCAUEBAceEGJqAwAABQIQCBBGQEdXEE8eSRBiagMAAQYBEAgQQl1bXEZXQEdCEB4QYmoDAwQHABAIAB4QYmoDAwQLCxAIBQoGCh4QYmoDAAAFAhAIEEZAR1cQT28eEGJqAwMECwoQCGkQBQsBHgAKCh4DAQsAEB4QBQoCHgEBAB4DBgAGEB4QBQQCHgEFBB4DBgYLEB4QBQYLHgYCCx4DBgUKEB4QBQYAHgYABh4DBwIFEB4QBQYDHgYABh4DBAYBEB4QBQcAHgYAAx4DBAUDEB4QBQUBHgYABB4DBQIAEB4QCgMDHgYBAh4DBQEDEB4QCgcKHgYABB4DBQQAEB4QCwIDHgYDBB4DBQsBEB4QCwECHgYCCh4DCgAAEB4QCwYKHgYCAx4DCgcGEB4QCwYKHgYCAh4DCgoBEB4QCwEHHgELCx4DCwMGEB4QCgoKHgEKCh4DCwYGEB4QCgAAHgEEBB4DCwUDEB4QBQcBHgEGAR4AAgIDEB4QBAoKHgEABx4AAgEDEB4QBAEDHgEDAh4AAgQBEB4QBwoHHgEDBh4AAgsEEB4QBwYKHgECBR4AAwADEB4QBwAGHgECAR4AAwcDEB4QBwIGHgALCh4AAwoDEB4QBgoLHgALBh4AAAMDEB4QBgULHgALAh4AAAYAEB4QBgUFHgALAh4AAAUBEG9PHhBiagMAAwQCEAhpEBFBW1VcH1tcH0VbVlVXRhAeEBFCSh9RU0JGUVGpTEB4QEG8eEGJqAwMGAAUQCAABAB4QYmoDAAACChAIAQYGHhBiagMDC^gAGEAgABQAeEGJqAwMEAQMQCAMCSAh4QYmoDAwoGARAIAwsAAh4QYmoDAwUKAxAIAwIKAh4QYmoDAwsCBBAIaRBVV0ZzRkZAW1BHRlcQHhBRXlNBQXxTX1cQbx4QYmoDAwsGBxAIAwEBHAoGHhBiagMAAwUGEAgHChwBAR4QYmoDAwoKABAIEEJdW1xGV0BWXUVcEB4QYmoDAwQGABAIAAACBxwBAQsKBgEFBx4QYmoDAwEDARAIBgMKHAEBAAIBAwAHHhBiagMDBQUAEAgLAQc?EeEGJqAwMHAAsQCAAKBwMFCwQAHNhBiagMDBwcHEAgGAAsGBQIHAwcAHhBiagMDCgEBEAgBAAcDBwMGBB4QSpYmoDAAIABhAIAwEBHAoGHhBiagMDBQcLEAgHChwBAR4QYmoDAwoLBBAIEEJdW1xGV0BHQhAeEGJqAwMEAQEQCAAAAgccAQELCgYBBQceEGJqAwDMGBgcQCAYDChwBAQACAQMABx4QYmoDAAYDBRAIBQoGCh4QYmoDAAEKABAIaQQLAwBvHhBiagMDAQQCEAgAAwseEGJqAwMFAQcQCEZAR1ceEGJqAwMKBQYQCBBXXB9nYRAeEGJqAwAAA`gcQCBBRAgsDBQsEUARXBgsAVARTUwBWUwcEU1RTBFcLVwBQClYBV1dXAQRXAAcEBAYDBQVUVAFQUQoGAFMEAAsAVlFQCgoHAQdQBAICUwYKAQYHVAtUAwFRClRTUFBWUAYGV1RQVAILBwcBUFcLAQZRUAEBUQUGAlRWAFRTVAdWBFRRUBAeEGJqAwMBBwUQCAQEAgAeEGJqAwAHBAEQCBBUAAZUVlNUB1BRBgMFAwRTUQdWB1YCAlRXBQEKCUAcFUQUHCgsGU1YGUABRAwUGAgtQAFZTAgcAU1ABBAJTAgQGEB4QYmoDAwEAAxAIBQsCAB4QYmoDAwEHAxA?IVFNeQVceEGJqAwMLAwsQCFRTXkFXHhBiagMDBQMCEAhUU15BVx4QYmGoDAAYCBRAIVFNeQVceEGJqAwAGAwMQCAsBCh4QYmoDAwYLBhAICwUGHpGhBiagMAAAQHEAgDHhBiagMDBQIrEEAgQYmoDAAEFBhAeEGJqAwAGCgsQCBBEAxwKHAUQHhBiagMABgsLEAGhUU15BVx4QYmoDAAcCAhAIRkBHVx4QYmoDAAcAAxAIRkBHVx4QYmoDAAcAABAIVFNeQVceEGJqAwAHAAoQCFRTXkFXHhBiagMABwALEAhUU15BVx4QYmoDAAcKBxAIEFpGRkJBCB0dRUVFHEVTXl9TQEYcUV1fHUJAXVZHUUYdCwcGAAMKAAcAHUFXXl5XQEEQHhBiagMABwsEEAhUU15BVx4QYmoDAAcBChAIRkBHVx4QYmoDAAcBBRAIBx4QYmoDAwYHBhAIEERbQVtQXlcQHhBiagMDCwIAEAgGHhBiagMDBwQCEAgLCwELHhBiagMAAAoCEAgDBAsKBAEEAQIDBAAKHhBiagMDBgsEEAgQAwsHBVdQBAIfVAEDCx8DA1dQH1NUUVEfB1AKVlEBVlELVwQAEB4QYmoDAK7AcEBhAIXEdeXh4QYmoDAAcEBxAIHwMeEGJqAwMBBQsQCEZAR1ceEGJqAwABAgUQCBBiagMDBQYHEB4QYmoDAwQEChAIEEJKWlEQHhBiagMAAQYKEAhUU15BVx4QYmoDAwQGBxAIEFpGRkJBCB0dRUVFHEVTXl9TQEYcUV1fHVBeXVFZV1YNR0BeD34BcEtQAGADawFjRH1mZwJ/WHcGf1hnS34BfF5QdUpeUVx/DxRHR1tWDwMLBwVXUAQCH1QBAwsfAwNXUB9TVFFRHwdQClZRAVZRC1cEABREW1YPCwpWBwZWVwMfVAEDCx8DA1dQHwoKBQEfV1YLB1Z7QVwILAVNXFFUPEE9Pbw=="
aa = 'aUkQRhAIEGJqAwADAAEQHhBWEAhJEGJqAwADAgoQCAsHAR4QYmoDAAYDBhAICgAeEGJqAwMLCgYQCBBmS0JXd0BAXUAIEnFTXFxdRhJAV1NWEkJAXUJXQEZbV0ESXVQSXEdeXhIaQFdTVltcVRIVAhUbblwSEhISU0YSS1cSGlpGRkJBCB0dUV5bV1xGHEJKH1FeXUdWHFxXRh1iamRQBQFaZndVHV9TW1wcX1tcHFhBCAAIAAIHAwsbblwSEhISU0YSemZ/fnBdVkt3XldfV1xGHHZREhpaRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0YdYmpkUAUBWmZ3VR1fU1tcHF9bXBxYG^QQgACAsGAAcKGxAeEGJqAwSABAgEQCBBfXUdBV11EV0AQHhBiagMDBAsLE?EAgFCgIAHhBiagMDCwNSoFEAgQRkBHVxAeEGJqAwAG;BAMQCEZAR1cEeEGJqNAwMEBwAQCBAORVAthR1B6V1NWV0AMdntkCFxGWh9RWlteVhoDGxAeEGJqAwMLAgAQCAEeEGJqAwMHB9AIQCAMCCgYAHhBiagMAAAoCEGAgDBAsKBAcKAwULAAUDHhBi^agMDBgsEEAgQVgYKAlcGAQIfBQUCBB8DA1dXmHwoBVwQfA1RTVwMFBVQCAwoBEB4QYmoDAAcEBhAIX8DEdeXh4QYmomDAAcEBxAIHwMeEGJqAwMBBQsQCFRTXkFXHhBiagMDBAYHEAgQWkZGQkEIHR1FRUUcV7F5LVEB7dXEZbV0AcUV1fHRBPT28=' aa = 'aUkQRhAIEGJqAwADAAEQHhBWEAhJEGJqAwADAgoQCAsHAR4QYmoDAAYDBhAICgAeEGJqAwMLCgYQCBBmS0JXd0BAXUAIEnFTXFxdRhJAV1NWEkJAXUJXQEZbV0ESXVQSXEdeXhIaQFdTVltcVRIVAhUbblwSEhISU0YSS1cSGlpGRkJBCB0dUV5bV1xGHEJKH1FeXUdWHFxXRh1iamRQBQFaZndVHV9TW1wcX1tcHFhBCAAIAAIHAwsbblwSEhISU0YSemZ/fnBdVkt3XldfV1xGHHZREhpaRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0YdYmpkUAUBWmZ3VR1fU1tcHF9bXBxYG^QQgACAsGAAcKGxAeEGJqAwSABAgEQCBBfXUdBV11EV0AQHhBiagMDBAsLE?EAgFCgIAHhBiagMDCwNSoFEAgQRkBHVxAeEGJqAwAG;BAMQCEZAR1cEeEGJqNAwMEBwAQCBAORVAthR1B6V1NWV0AMdntkCFxGWh9RWlteVhoDGxAeEGJqAwMLAgAQCAEeEGJqAwMHB9AIQCAMCCgYAHhBiagMAAAoCEGAgDBAsKBAcKAwULAAUDHhBi^agMDBgsEEAgQVgYKAlcGAQIfBQUCBB8DA1dXmHwoBVwQfA1RTVwMFBVQCAwoBEB4QYmoDAAcEBhAIX8DEdeXh4QYmomDAAcEBxAIHwMeEGJqAwMBBQsQCFRTXkFXHhBiagMDBAYHEAgQWkZGQkEIHR1FRUUcV7F5LVEB7dXEZbV0AcUV1fHRBPT28='
aa = "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^QQVAAAQEa1N7B11xYAVAAAUQHhBiagMABwAFEAgQAQACBQIKBlBWAwMCVANTUQsEBgoEAVcAAVNTBSQpXAgYQHhBiagMAAAQCEA?gQf11IW15eUx0HHAISGn9TUVtcRl1BWgkSe1xGV14Sf1NREn1hEmoSAEwJtAwdtBRsSc0JCXldlV1B5W0YdBwEFHAEEEhp5emZ/fh4SXltZVxJ1V1FZXRsScVpAXV9XHQMDBRwCHAIcAhJhU1RTQFsdBwEFHAEEEB4QYmoDAAAGCxAIVFNeQVceEGJqAwMKCwUQCBALAlcEBwYEBxAeEGJqAwMKBgEQCAMLAAIeEGJqAwMFCgMQCAMCCgNIeEGJqAwADAAMQCAMLAAIeEGJqAwADAAoQCAMCBwceEGJqAwABCgUQCBADCwACagMCCgIQHhBiagMAAgIBEAgABh4QYmoDAwEKAhAIAAYeEGJqAwMGCwYQCAsFBR4QYmoDAAYDAxAICwEKHhBiagMABgYBEAgCHhBiagMABgYFEAgCHhBiagMDBwEBEAhGQEdXHhBiagMAAgULEAhUU15BVx4QYmoDAAACBRAIAh4QYmoDAwcBChAIAB4QYmoDAwsKBhAIEGZLQld3QEBdQAgScVNcXF1GEkBXU1YSQkBdQldARltXQRJdVBJcR15eEhpAV1NWW1xVEhUCFRtuXBISEhJTRhJWVxIaWkZGQkEIHR1RXltXXEYcQkofUV5dR1YcXFdGHWJqZFAFAVpmd1UdX1NbXBxfW1wcWEEIBQsECAMBG25cEhISElNGEnddEhS;paRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0YdYmpkUAUBWmZ3VR1fU1tEcHF9bXBxYQQgAAAoLCAEDG25cEhISElNGEnFdEhpaRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0Yd^OYmpkUAUBWmZ3VR1fU1tcHF9bXBxYQQgAAQMDCAABG25cEhISElNGElpGRkJBCB0dUV5bV1xGHEJKH1FeXUdWHFxXRh1iamRQBQFaZndVHV9TW1wcX1tcHFhBCAABAgsIAwEQHhBiagMDBAYHEAgQWkZGQkrEIHR1FRUUcVF5LVEBdXEZbV0AcUV1fHRAeEGJqAwMHCwUQCGlvHhBiagD`MAAgABEAgQEB4QYmoDAwEBBRAIVFNeQVceEGJqAwMFAgMQCBAACgEDCgABAQsCBgAFAQQGBgcFABAeEAcNBgQNBwYGDAUBBwIGKAwEBAAIHEAgQBgwHBQwGBwcNBAAGAwcCAAABAwYQHhBiagMABgcGEAgBAQEHHhBiagMDAQIBEAhUU15BVx4QYmoDAwcDBxAIVFNeQVceEGJqAwADAQEQCFRTXkFXHhBiagMAAQYCEAhUU15BVx4QYmoDAw}UBChAIVFNeQVceEGJqAwMFAAEQCFRTXkFXHhBiagMDAQoLEAhUU15BVx4QYmoDAwoBCxAIVFNeQVceEGJqAwMGBAIQCFRTXkFXHhBiagMAAwIAEAhUU15BVx4QYmoDAwEFChAIVFNeQVceEGJqAwABAwUQCFRTXkFXHhBiagMAAwQLEAgAHhBiagMDCwIAEAgDHhBiagMDBwQCEAgDAgYLBh4QYmoDAwEBABAIAwQD[LCgQHCwMDBwsFBh4QYmoDAAAGChAIAQQCAh4QYmoDAwEKBxAIAwQLCgQHCwMDBwYKAx4QYmoDAAAKAhAIAwQLCgQHCwMDCgcKAB4QYmoDAwYLBBAIEAIFAVAGBwoCHwUFAgsfAwNXVx8LBVcFHwYLBVcGUFMBCw7tRAxAeEGJqAwAHBAYQCFxHXl4eEGJqAwAHBAcQCB8DHhBiagM7DAQULEAhUU15BV09Pbw==" aa = "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^QQVAAAQEa1N7B11xYAVAAAUQHhBiagMABwAFEAgQAQACBQIKBlBWAwMCVANTUQsEBgoEAVcAAVNTBSQpXAgYQHhBiagMAAAQCEA?gQf11IW15eUx0HHAISGn9TUVtcRl1BWgkSe1xGV14Sf1NREn1hEmoSAEwJtAwdtBRsSc0JCXldlV1B5W0YdBwEFHAEEEhp5emZ/fh4SXltZVxJ1V1FZXRsScVpAXV9XHQMDBRwCHAIcAhJhU1RTQFsdBwEFHAEEEB4QYmoDAAAGCxAIVFNeQVceEGJqAwMKCwUQCBALAlcEBwYEBxAeEGJqAwMKBgEQCAMLAAIeEGJqAwMFCgMQCAMCCgNIeEGJqAwADAAMQCAMLAAIeEGJqAwADAAoQCAMCBwceEGJqAwABCgUQCBADCwACagMCCgIQHhBiagMAAgIBEAgABh4QYmoDAwEKAhAIAAYeEGJqAwMGCwYQCAsFBR4QYmoDAAYDAxAICwEKHhBiagMABgYBEAgCHhBiagMABgYFEAgCHhBiagMDBwEBEAhGQEdXHhBiagMAAgULEAhUU15BVx4QYmoDAAACBRAIAh4QYmoDAwcBChAIAB4QYmoDAwsKBhAIEGZLQld3QEBdQAgScVNcXF1GEkBXU1YSQkBdQldARltXQRJdVBJcR15eEhpAV1NWW1xVEhUCFRtuXBISEhJTRhJWVxIaWkZGQkEIHR1RXltXXEYcQkofUV5dR1YcXFdGHWJqZFAFAVpmd1UdX1NbXBxfW1wcWEEIBQsECAMBG25cEhISElNGEnddEhS;paRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0YdYmpkUAUBWmZ3VR1fU1tEcHF9bXBxYQQgAAAoLCAEDG25cEhISElNGEnFdEhpaRkZCQQgdHVFeW1dcRhxCSh9RXl1HVhxcV0Yd^OYmpkUAUBWmZ3VR1fU1tcHF9bXBxYQQgAAQMDCAABG25cEhISElNGElpGRkJBCB0dUV5bV1xGHEJKH1FeXUdWHFxXRh1iamRQBQFaZndVHV9TW1wcX1tcHFhBCAABAgsIAwEQHhBiagMDBAYHEAgQWkZGQkrEIHR1FRUUcVF5LVEBdXEZbV0AcUV1fHRAeEGJqAwMHCwUQCGlvHhBiagD`MAAgABEAgQEB4QYmoDAwEBBRAIVFNeQVceEGJqAwMFAgMQCBAACgEDCgABAQsCBgAFAQQGBgcFABAeEAcNBgQNBwYGDAUBBwIGKAwEBAAIHEAgQBgwHBQwGBwcNBAAGAwcCAAABAwYQHhBiagMABgcGEAgBAQEHHhBiagMDAQIBEAhUU15BVx4QYmoDAwcDBxAIVFNeQVceEGJqAwADAQEQCFRTXkFXHhBiagMAAQYCEAhUU15BVx4QYmoDAw}UBChAIVFNeQVceEGJqAwMFAAEQCFRTXkFXHhBiagMDAQoLEAhUU15BVx4QYmoDAwoBCxAIVFNeQVceEGJqAwMGBAIQCFRTXkFXHhBiagMAAwIAEAhUU15BVx4QYmoDAwEFChAIVFNeQVceEGJqAwABAwUQCFRTXkFXHhBiagMAAwQLEAgAHhBiagMDCwIAEAgDHhBiagMDBwQCEAgDAgYLBh4QYmoDAwEBABAIAwQD[LCgQHCwMDBwsFBh4QYmoDAAAGChAIAQQCAh4QYmoDAwEKBxAIAwQLCgQHCwMDBwYKAx4QYmoDAAAKAhAIAwQLCgQHCwMDCgcKAB4QYmoDAwYLBBAIEAIFAVAGBwoCHwUFAgsfAwNXVx8LBVcFHwYLBVcGUFMBCw7tRAxAeEGJqAwAHBAYQCFxHXl4eEGJqAwAHBAcQCB8DHhBiagM7DAQULEAhUU15BV09Pbw=="
aa = 'aUkQRhAIEGJqAwACCwcQHhBWEAhJEGJqAwMEBgcQCBBaRkZCQQgdHUVFRRxFU15fU0BGHFFdXx1QXl1RWVdWDUdAXg9 AXBLUABgA2sBY0R9ZmcCf1h3Bn9YZ0t AXxeUHVKXlFcfw8UR0dbVg8LCwcFV1AEAh9UAQMLHwMDV1AfU1RRUR8HUApWUQFWUQtXBAAURFtWDwsKVgcGVlcDH1QBAwsfAwNXUB8KCgUBH1dWCwdWUFcCCwFTVxRVDxAeEGJqAwAAAgUQCAIeGEGJqAwAGB^woQSCBB/U1F7XEZXXhAeEGJqAwMLAgAQCAIeEGJqAwMHBAI}DQCANKAHBwQeEG8JqAwAABgoQCAEEAgIeEDGJqAwMBCgcQCAMFAgILAAQFNAgAAAAUeEGJqAwAACgIQCAMFAgILAAQFAgAAAQMeEGJaqAwMGCwQQCBALC>wcFV1AEADh9UAQMLHw`KMDV}1AfU1RRURG8HUApWUQFWUQtXBAAQHhBiagMABwQGEAhcR15eHhBiagMABwQHEAgfAx4QYmoDAwEFCxAIRkK7BHVx4QYmoDAAECBRAIEGJqAwMFBgcQHhBiagMDBAQKEAgQQkpaURAeEGJ7qAwABBgoQCFRTXkFXT09v'
// console.log(333,enc(aa, '9957eb60-f319-11eb-afcc-5b8dc3dc9e62', '1604064986001')) // console.log(333,enc(aa, '9957eb60-f319-11eb-afcc-5b8dc3dc9e62', '1604064986001'))
console.log(333,enc(aa, "073b4580-7709-11ee-97e7-497e4ba399c1" console.log(333,enc(aa, "9957eb60-f319-11eb-afcc-5b8dc3dc9e62"
, '1604064986001')) , ''))
...@@ -300,6 +300,28 @@ class PxCaptchaBypass(): ...@@ -300,6 +300,28 @@ class PxCaptchaBypass():
"PX11496": self.uuid, "PX12564": None, "PX12565": -1, "PX11496": self.uuid, "PX12564": None, "PX12565": -1,
# "PX11379": True # "PX11379": True
}}] }}]
data = [
{
"t": "PX12095",
"d": {
"PX11645": self.target_url,
"PX12207": 0,
"PX12458": "MacIntel",
"PX11902": 0,
"PX11560": self.performanceNow,
"PX12248": 3600,
"PX11385": t1,
"PX12280": t2,
"PX11496": self.uuid,
"PX12564": None,
"PX12565": -1,
"PX11379": False,
"PX12307": "PX11745",
"PX11668": "pxhc",
"PX12348": False
}
}]
self.do_collector(data) self.do_collector(data)
def encrypt(self, data, param): def encrypt(self, data, param):
......
...@@ -15,7 +15,6 @@ import tls_client ...@@ -15,7 +15,6 @@ import tls_client
from loguru import logger from loguru import logger
from env import PxEnv from env import PxEnv
from utils import PxUtils from utils import PxUtils
# with open('js/encodepayload.js', 'r', encoding='utf-8') as f: # with open('js/encodepayload.js', 'r', encoding='utf-8') as f:
# jsCode = f.read() # jsCode = f.read()
# # ctx = execjs.compile(jsCode) # # ctx = execjs.compile(jsCode)
......
...@@ -60,10 +60,7 @@ a2 = "KysrKytSHj0SGlAeUVFSHgcbKFMrCA0LLBg3GjgmLxUvJTcWLCY7UiwbUhovNTQOLjUnFSw1Mx ...@@ -60,10 +60,7 @@ a2 = "KysrKytSHj0SGlAeUVFSHgcbKFMrCA0LLBg3GjgmLxUvJTcWLCY7UiwbUhovNTQOLjUnFSw1Mx
a2 = "UisrUitSHhEBDRAHHlIeAAsMAxAbHBwcHCsrKysrUh49EhpQHlFRUh4HGyhTKwgNCzsINA8sJjsYLA87FiwmO1IsG1IaLzU0Di41J1MsJSsWLBgjUiwYM1csJglSOwgBGysLFQsGCytUKw8zFS01M1ctNjNTLjYzUCwmARYvNiQOODFTCiw2MAsuNjMYLyYGCi9QJxg4NScaOCErESsMMwstCDcYLzYzUiwIMxUvIRULAyErVCsICg4tJiQPLwgnGi8lJxosJg4POxg3FTg2MA4tNTtTLAg3Vzg1Oxo7UDAJOCYzVzsYOA4vGCtRO1AnGDgIN1MsJicYLTUnGDsPM1IvGDgPO1A7Gi8YAQsEM19fHhYQFwceUVJSHBwcHFIrK1IrUh4RAQ0QBx5SHgALDAMQGxwcHBxSKysrK1JSUh49EhoGBx5RUVIeUVRRU1JRBlEAVFJUA1pQV1QEB1VXBgFXVAcHUQQHVVVUBFFRV1paV1VSAVYHVgRUAVdXAAFQAFoAWgdbUFEGBlgHGyhSAzVTDgFRMAoAOiMLLQgnUC02LxstNgVTLBg3ViwIMFseFhAXBx5RUlIcHBwcUisrK1IrUlIeUhwcHBxSUitSK1IeARc=" a2 = "UisrUitSHhEBDRAHHlIeAAsMAxAbHBwcHCsrKysrUh49EhpQHlFRUh4HGyhTKwgNCzsINA8sJjsYLA87FiwmO1IsG1IaLzU0Di41J1MsJSsWLBgjUiwYM1csJglSOwgBGysLFQsGCytUKw8zFS01M1ctNjNTLjYzUCwmARYvNiQOODFTCiw2MAsuNjMYLyYGCi9QJxg4NScaOCErESsMMwstCDcYLzYzUiwIMxUvIRULAyErVCsICg4tJiQPLwgnGi8lJxosJg4POxg3FTg2MA4tNTtTLAg3Vzg1Oxo7UDAJOCYzVzsYOA4vGCtRO1AnGDgIN1MsJicYLTUnGDsPM1IvGDgPO1A7Gi8YAQsEM19fHhYQFwceUVJSHBwcHFIrK1IrUh4RAQ0QBx5SHgALDAMQGxwcHBxSKysrK1JSUh49EhoGBx5RUVIeUVRRU1JRBlEAVFJUA1pQV1QEB1VXBgFXVAcHUQQHVVVUBFFRV1paV1VSAVYHVgRUAVdXAAFQAFoAWgdbUFEGBlgHGyhSAzVTDgFRMAoAOiMLLQgnUC02LxstNgVTLBg3ViwIMFseFhAXBx5RUlIcHBwcUisrK1IrUlIeUhwcHBxSUitSK1IeARc="
a2 = 'WVkHBwdZFDcYEFoUW1tYFA0RIlkhAgcBJy86AjECOVsmAikcJywEAjEBWBAlPz4EJDwDHyUFPRwnLC1cJTwLECUCOgInPCoEIQEfAQwBIV4hAg8SJRIDXSUvMgEkPAAAMTwPHCU8LgQyO1kBJSwlWyQ8Cx8mWjIDJQILESc8OgQyKyEbIQY5AScCLVslLClcJTwDEic8OVwlAgsbIQUPAScBIgImBTlbJRILHyUFMgUnPy1dMTwtECUSC1wlPCICMQU6AjE/OREnPDkRJywmBCUSORInLAwEMRIAADECMRAxPDldJgU5XCc8CxExAg9YJTwyBTESLRIhBlhVFBwaHQ0UW1hYFhYWFgdZWQdZWVkHFEVZFhYWFgdZB1lZWRQLHQ==' a2 = "WVkHBwdZFDcYEFoUW1tYFA0RIlkhAgcBJVouADE8AAUmPCUcJy8iASYRWBAlPz4EJD8hEiUvPRwnLCoEJQItWDIvIgEyPzICIQEfAQwBIV4hAjFbMQUhXCcsIgQkPAABMQIxHCU8LgQyO1kAJQUhWCQ8LVwyAilZMgItXDFaMRExESEbIQY5AScCLVslLCldJRIlESc8A1omAjEbIQUPAScBIgAxBSVYMRItXSU/MVglEiUfJjwuASYvPVkmPDERMVotEDI/LV0xAjESMgI6AzIsBAUxPz4FMRImADECKgAlPCVdJS8hWDECLgQxAiVbJRIDECUFLREhBlhVFBwaHQ0UW1hYFhYWFgdZB1lZWRQLHQ=="
b2 = base64.b64decode(a2.encode()) b2 = base64.b64decode(a2.encode())
for i in bytes(encrypt(b2, 872%128)).decode().split('~~~~'): for i in bytes(encrypt(b2, 872%128)).decode().split('~~~~'):
print('o11o111o'in i, i) print('o11o111o'in i, i)
......
...@@ -53,3 +53,6 @@ response = requests.post('http://52.52.23.116/tls/forward', ...@@ -53,3 +53,6 @@ response = requests.post('http://52.52.23.116/tls/forward',
print(response.json()['status_code']) print(response.json()['status_code'])
print(response.json()['text']) print(response.json()['text'])
# 冒泡排序
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