聚合网登录分析
一、_token 查找
- _token查找:访问 https://passport.juhe.cn/cas/login?s=cas/login 【GET】在返回的text/html文件中header中返现csrf-token
并在body里找到**_token**【惊奇发现_token和csrf-token值相同】
二、publicKey查找
- publicKey获取:先访问 https://passport.juhe.cn/cas/login?s=cas/login 【GET】 响应头携带 XSRF-TOKEN、
passport_auth_session之后访问https://passport.juhe.cn/getPubKey【GET】携带 XSRF-TOKEN、passport_auth_session作为请求
cookie,返回数据响应体包含 publicKey ,同时相应头返回新的XSRF-TOKEN、passport_auth_session。
三、password加密
-
password加密:
密码加密在juheValidate.js文件中找到
function base64Endoce(txt) {
// 使用jsencrypt库加密前端参数
var encrypt = new JSEncrypt();
//encrypt-pub-key为获取publicKey值
encrypt.setPublicKey($('meta[name="encrypt-pub-key"]').attr('content'));
return encrypt.encrypt(txt);
}
四、登录post携带参数分析
提交post登录请求中携带参数包含
- cookie:getPubKey更新后的passport_auth_session、XSRF-TOKEN
- _token:访问登录首页时text/html界面中的值
- username:账号名
- password:加密后的密码
- uuid:默认值 “”
五、注意细节
注意点:
发送post登录请求时携带cookie值,该值在发送前有一次改变,改变点在获取publicKey时,最后登录的cookie是获取公匙的值,
而获取公匙的请求cookie是登录界面/登录post失败返回的cookie
六、模拟测试
1. 访问聚合网登录
https://passport.juhe.cn/cas/login?s=cas/login 【聚合网登录界面】
获取_token
获取publicKey
获取登录cookie【passport_auth_session、XSRF-TOKEN、16ce8e1bddbf1a125279935e03c3eea0】
密码加密
function base64Endoce(txt) {
// 使用jsencrypt库加密前端参数
var encrypt = new JSEncrypt();
//encrypt-pub-key为获取publicKey值
encrypt.setPublicKey(“publicKey”);
return encrypt.encrypt(txt);
}
发送登录post
七、 遗留问题
发送登录请求后,参数正确,出现CAS认证失败问题
如有解决方案,请联系交流。
QQ群:808798021
扫码加入交流群: