http://www.kongzhong.com/
https://passport.kongzhong.com/login?backurl=http://www.kongzhong.com
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xf8kWLEW-1635144476220)(en-resource://database/675:1)]
GET
https://sso.kongzhong.com/ajaxLogin?j=j&&type=1&service=https://passport.kongzhong.com/&username=18702508957&password=61adf62d8656d3020b2a7a&vcode=&toSave=0&_=1618191035675 HTTP/1.1
Host: sso.kongzhong.com
Connection: keep-alive
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/89.0.4389.114 Safari/537.36
Accept: */*
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: https://passport.kongzhong.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: KSPSSIONID=3BDFC830159C4428854858F8EE5ABA2F;
SSO-KGZQRT=78D1C24711C2CD871A3ECED2E9CB9777; SESSION_COOKIE=105;
Hm_lvt_1287c2225a527abe3386233dd9316f99=1618190722;
Hm_lpvt_1287c2225a527abe3386233dd9316f99=1618190722;
SSO-KGZLT=d86e2fcd-e15e-4931-9420-aa7a8d2692b7
response-format: json
assword=61adf62d8656d3020b2a7a
1.勾上Preserve log
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uzPRyKV-1635144476223)(en-resource://database/676:1)]
2.元素审查 分析数据来源 查看控件id
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kSySXvJk-1635144476223)(en-resource://database/677:1)]
password_txt
3.随意输入密码 反正直接跳转 搜索 password_txt
因为从控件取值拿去做加密
取值方法.val
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XUm7anpO-1635144476224)(en-resource://database/679:1)]
4.下断点追踪具体在哪里
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uls1Dw1B-1635144476225)(en-resource://database/678:1)]
下断点 重新发起登录请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KZe4tcPN-1635144476225)(en-resource://database/681:1)]
断点往下走
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q2RX9l4w-1635144476226)(en-resource://database/680:1)]
点击第二个 慢慢走下去
发现直接跳过了 因为这个方法只有一行 所以直接断在里面
确定了加密登录操作在这个KZLoginHandler.login
里面
现在就是要一步一步断进去了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeSsQefE-1635144476227)(en-resource://database/683:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o6zO9Hm0-1635144476227)(en-resource://database/684:1)]
非常简单的追踪到了加密方法了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NvQS0F2z-1635144476228)(en-resource://database/682:1)]
其中另一个参数来自一个新的接口
GET
https://sso.kongzhong.com/ajaxLogin?j=j&jsonp=j&service=https://passport.kongzhong.com/&_=1618195173696 HTTP/1.1
Host: sso.kongzhong.com
Connection: keep-alive
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/89.0.4389.114 Safari/537.36
Accept: */*
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: https://passport.kongzhong.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: SESSION_COOKIE=105; trackingId=7675811b-df50-4d57-ac3c-2c9b2b3ada6f;
kzu-er=18702508957; SSO-KGZQRT=FC538140747CEE40BFE1711314F9F78F;
Hm_lvt_1287c2225a527abe3386233dd9316f99=1618190722;
Hm_lpvt_1287c2225a527abe3386233dd9316f99=1618192487;
SSO-KGZLT=7283f228-c2a6-4fcd-a8be-445ecbfabb5b;
SSO-KGZIT=f5fa2e47-2a1f-4d52-9486-bcef089d03eb
response-format: json
返回
KZLoginHandler.jsonpCallbackKongZ({
"dc":"9B157E8A942991A9D94C0391B62C1EE5","kzmsg":"","service":"https://passport.kongzhong.com/","state":"0","requirevcode":"1"})
'encrypt': function(str, pwd) {
if (pwd == null || pwd.length <= 0) {
return null
}
;var prand = "";
for (var i = 0; i < pwd.length; i++) {
prand += pwd.charCodeAt(i).toString()
}
;var sPos = Math.floor(prand.length / 5);
var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));
var incr = Math.ceil(pwd.length / 2);
var modu = Math.pow(2, 31) - 1;
if (mult < 2) {
return null
}
;var salt = Math.round(Math.random() * 1000000000) % 100000000;
prand += salt;
while (prand.length > 10) {
var a = prand.substring(0, 1);
var b = prand.substring(10, prand.length);
if (b.length > 10) {
prand = b
} else {
prand = (parseInt(a) + parseInt(b)).toString()
}
}
;prand = (mult * prand + incr) % modu;
var enc_chr = "";
var enc_str = "";
for (var i = 0; i < str.length; i++) {
enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255));
if (enc_chr < 16) {
enc_str += "0" + enc_chr.toString(16)
} else
enc_str += enc_chr.toString(16);
prand = (mult * prand + incr) % modu
}
;salt = salt.toString(16);
while (salt.length < 8)
salt = "0" + salt;
enc_str += salt;
return enc_str
}
def password_sign_key():
time_ = get_now_int_time(False)
url = 'https://sso.kongzhong.com/ajaxLogin?j=j&jsonp=j&service=https://passport.kongzhong.com/&_=' + str(time_)
headers = {
'Connection': 'keep-alive',
'sec-ch-ua': '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
'Accept': '*/*',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Dest': 'script',
'Referer': 'https://passport.kongzhong.com/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
'response-format': 'json',
'Cookie':cookie
}
res = requests.get(url, headers=headers, verify=False)
print(res.text)
return res.text
调用js方法加密pass
with open("encrypt.js", 'r', encoding="UTF-8") as f:
js = f.read().encode().decode("gbk", "ignore")
context1 = execjs.compile(js)
data = context1.call("encrypt", '1234567!',key)
传入接口
def login_kongzhongwang(password):
time_ = get_now_int_time(False)
url = f'https://sso.kongzhong.com/ajaxLogin?j=j&&type=1&service=https://passport.kongzhong.com/&username=18702508957&password={
password}&vcode=&toSave=0&_={
str(time_)}'
headers = {
'Connection': 'keep-alive',
'sec-ch-ua': '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
'Accept': '*/*',
'Sec-Fetch-Site': 'same-site',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Dest': 'script',
'Referer': 'https://passport.kongzhong.com/',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9',
'response-format': 'json',
'Cookie': cookie
}
res = requests.get(url, headers=headers, verify=False)
print(res.text)
难度不大 使用好搜索和调试就行