Commit 000deb7b by zhangxujie

zaker

parent 8750da60
const CryptoJS = require('crypto-js');
function get_pmra(k){
var salt = get_salt(k,16)
var text = '{"resolution":"1920x1080","languages":["zh-CN","en-US"],"useragents":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"],"hint":0,"salt":"' + salt + '","taketime":283078}';
// var text = '{"resolution":"1920x1080","languages":["zh-CN","en-US"],"useragents":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"],"hint":0,"salt":"18903","taketime":283078}'
var key = CryptoJS.enc.Utf8.parse(k +"00000000");
var iv = CryptoJS.enc.Utf8.parse("1234567890123456");
var options = {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
};
return CryptoJS.AES.encrypt(text, key, options).ciphertext.toString()
}
function get_salt(e, t=20) {
for (var r = 0; r < 1e8; r++) {
const a = CryptoJS.SHA256(e + "" + r).toString();
for (var i = 0, o = 0; o < a.length; o++) {
if ("0" != a[o]) {
i += 4 - parseInt(a[o], 16)["toString"](2).length;
break
}
i += 4
}
if (!(i < t))
return r
}
return 0
}
console.log(get_pmra("IOxBJ8nu"))
import json
import requests
import execjs
import re
from loguru import logger
headers = {
"Referer": "https://www.myzaker.com/channel/10146",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
}
'''
获取once_id
'''
response_once = requests.get('https://www.myzaker.com/channel/14210', headers=headers).text
once_id = re.findall('(?<=once_id:").*?(?=")',response_once)[0]
logger.info("once_id---------" + once_id)
'''
获取seed
'''
params={
"once_id": once_id,
"v": "1.0.0",
"hints": "globalThis,webDriverValue,vendor,headless,permHook,languages,webdriver"
}
response_seed = requests.get('https://challenge.rivers.chaitin.cn/captcha/api/seed', headers=headers, params=params).text
seed = json.loads(response_seed).get("seed")
logger.info("seed-----" + seed)
'''
获取加密表单
'''
params={
"seed": seed
}
with open('zaker.js', 'r', encoding='UTF-8') as file:
js_code= file.read()
js = execjs.compile(js_code)
result = js.call('get_pmra',seed)
'''
获取cookies
'''
response_cookie = requests.post('https://challenge.rivers.chaitin.cn/captcha/api/inspect', headers=headers, data=result, params=params).text
cookies={
"sl_waf_recap": json.loads(response_cookie).get("jwt")
}
logger.info(cookies)
'''
请求数据
'''
response = requests.post("https://www.myzaker.com/channel/10146", headers=headers, cookies=cookies)
print(response.text)
\ 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