首先随便输点东西,抓个包:
发现这里提交了加过密的password,接下来就是找password参数,看看对它怎么处理了:
全局搜索发现了奇怪的东西
_etd2(password.val(),casLoginForm.find("#pwdDefaultEncryptSalt").val());
可以看见,使用了_etd2函数对password进行处理了,传参还有一个盐值(pwdDefaultEncryptSalt)
那就去找找_etd2函数具体写了啥:
function _etd2(_p0, _p1) {
try {
var _p2 = encryptAES(_p0, _p1);
$("#casLoginForm").find("#passwordEncrypt").val(_p2);
} catch (e) {
$("#casLoginForm").find("#passwordEncrypt").val(_p0);
}
}
接着跟进到enc.js中的encryptAES函数:
function encryptAES(data, _p1) {
if (!_p1) {
return data;
}
var encrypted = _gas(_rds(64) + data, _p1, _rds(16));
return encrypted;
}
在往上看看_gds和_rds是什么东西:
function _gas(data, key0, iv0) {
key0 = key0.replace(/(^\\s+)|(\\s+$)/g, "");
var key = CryptoJS.enc.Utf8.parse(key0);
var iv = CryptoJS.enc.Utf8.parse(iv0);
var encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
var $_chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var _chars_len = $_chars.length;
function _rds(len) {
var retStr = '';
for (i = 0; i
...
接下来请求了一次
如果这里返回false就不用验证码,反之true就要
最后就post提交登录请求:
浅浅写个脚本模拟一下:
import requests,execjs,re,json
requests=requests.Session()
class SZUauth():
def __init__(self,username,password):
self.username=username
self.password=password
self.js=open('enc.js','r',encoding='utf-8').read()
self.js=execjs.compile(self.js)
print('Started!')
def first_req(self):
headers = {
'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Host': 'authserver.***.edu.cn',
'Referer': 'https://authserver.****.edu.cn/authserver/login?service=http%3A%2F%2Fwww1%2Eszu%2Eedu%2Ecn%2Fmanage%2Fcaslogin%2Easp%3Frurl%3D%2F',
'Sec-Fetch-Dest': 'image',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"'
}
params={
'service': 'http://www1.***.edu.cn/manage/caslogin.asp'
}
url="https://authserver.***.edu.cn/authserver/login"
requests.get(url,headers=headers,params=params)
print('GET Cookie OK!')
def get_salt(self):
headers = {
'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Host': 'authserver.***.edu.cn',
'Referer': 'https://authserver.**.edu.cn/authserver/login?service=http%3A%2F%2Fwww1%2Eszu%2Eedu%2Ecn%2Fmanage%2Fcaslogin%2Easp%3Frurl%3D%2F',
'Sec-Fetch-Dest': 'image',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"'
}
params = {
'service': 'http://www1.***.edu.cn/manage/caslogin.asp'
}
url = "https://authserver.**.edu.cn/authserver/login"
res=requests.get(url, headers=headers, params=params)
salt=re.findall('var pwdDefaultEncryptSalt = "(.*?)";',res.text)[0]
lt=re.findall('',res.text)[0]
return salt,lt
def captcha(self):
headers = {
'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Host': 'authserver.***.edu.cn',
'Referer': 'https://authserver.***.edu.cn/authserver/login?service=http%3A%2F%2Fwww1%2E***%2Eedu%2Ecn%2Fmanage%2Fcaslogin%2Easp%3Frurl%3D%2F',
'Sec-Fetch-Dest': 'image',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"'
}
params={
'username': '*********',
'pwdEncrypt2': 'pwdEncryptSalt',
'_': '1710940015117'
}
url="https://authserver.***.edu.cn/authserver/needCaptcha.html"
res=requests.get(url,headers=headers,params=params)
print("Captcha--->>>"+res.text)
def login(self,salt,lt,password,username):
headers = {
'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Host': 'authserver.***.edu.cn',
'Referer': 'https://authserver.***.edu.cn/authserver/login?service=http%3A%2F%2Fwww1%2E***%2Eedu%2Ecn%2Fmanage%2Fcaslogin%2Easp%3Frurl%3D%2F',
'Sec-Fetch-Dest': 'image',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0',
'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Microsoft Edge";v="122"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"'
}
pwd=self.js.call('encryptAES',password,salt)
data= {
'username': username,
'password':pwd,
'lt': lt,
'dllt': 'userNamePasswordLogin',
'execution': 'e2s1',
'_eventId': 'submit',
'rmShown': '1'
}
params = {
'service': 'http://www1.***.edu.cn/manage/caslogin.asp'
}
url="https://authserver.****.edu.cn/authserver/login"
res=requests.post(url=url,params=params,data=data,headers=headers)
return res.text,res.status_code
def check(self):
self.first_req()
salt,lt=self.get_salt()
self.captcha()
return self.login(salt,lt,self.password,self.username)
def check_pwd(username,password):
s=***auth(username,password)
output,code=s.check()
if code==302:
return True
else:
return False
这个由于验证码还在,所以同一个账号只能测三次,可以拿来测测默认密码啥的
很多学校的auth都是用的这套系统
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
Track-魔方 | 100.00 | 0 | 2024-05-11 14:02:12 | 本月有效投稿一篇文章奖励 100 |
Track-魔方 | 700.00 | 0 | 2024-05-11 14:02:55 | 深度 200 普适 300 可读 200 |
打赏我,让我更有动力~
© 2016 - 2025 掌控者 All Rights Reserved.
小瑟斯
发表于 7个月前
666
评论列表
加载数据中...
st2021
发表于 7个月前
666
评论列表
加载数据中...
syxh
发表于 7个月前
666
评论列表
加载数据中...
zangmeng
发表于 7个月前
666
评论列表
加载数据中...
st2021
发表于 7个月前
楼主,图片中码没打全,好像是可以看到具体域名的
评论列表
加载数据中...
极限
发表于 6天前
《简简单单写个脚本模拟一下》
评论列表
加载数据中...