浅析云南某大学门户网密码加密算法

浅析云南某大学门户网密码加密算法_第1张图片

声明

该笔记仅为学习测试记录,请不要通过本篇文章进行其他非法操作,文中对于一些特殊敏感的信息做了处理,仅供学习思路,贴到的代码对于ip以及域名做了处理,我爱我校!

开始

通过抓包我们发现登录的密码被加密了
浅析云南某大学门户网密码加密算法_第2张图片
而且每次算法对同一个数据不太一样,应该是密码通过解密后验证达到登录的效果

通过模拟登录发现本次的请求

http://****/sso/ssoLogin

接口返回的响应体为

{“state”:true}

再次观察下一个抓包记录
浅析云南某大学门户网密码加密算法_第3张图片

猜测这应该才是正确的登录请求,第一个应该是验证密码正确性

继续往下,我们观察该接口

http:///sso/login?service=**

响应体包含

COMSYSUIATGC=TGT-*********
Location:http://****?ticket=ST-119***********

截图
浅析云南某大学门户网密码加密算法_第4张图片

当然这个有啥用是吧,有人可能会问

通过location重定向新的地址,后面的ticket就是token

我们再返回官网f12看下,发现了个文件
浅析云南某大学门户网密码加密算法_第5张图片
打开后,令我不敢相信,密码的publickKey居然就在第一行????
浅析云南某大学门户网密码加密算法_第6张图片

var publickKey=“MIGf**********************************************************************************************************************************************************AB”;

为了验证算法它是如何加密的 ,我将门户网站登录页保存下来,
保存到桌面
浅析云南某大学门户网密码加密算法_第7张图片

通过对该网页的编辑查看,我发现密码加密的算法

 $.post("/sso/ssoLogin",{"username":$(".un_input input").val(),"password":encodeURIComponent(encrypt.encrypt($(".passwd input").val()))

在这里插入图片描述

为了继续验证我在js里面打了
console.log();
进行输出

确定密码前输出加密后的密码
在这里插入图片描述

以及 获取到publickKey的代码
在这里插入图片描述

接下来 我保存 卡开 f12

浅析云南某大学门户网密码加密算法_第8张图片
对比发现 与jsencrypt.js中的一致

接下来验证密码算法,因为密码不唯一,所以我们不好在这里测试,刚刚忘记将密码套上encodeURIComponent()了
在这里插入图片描述

我套上后,模拟登陆一次
浅析云南某大学门户网密码加密算法_第9张图片
将得到的加密后的密码,通过刚刚抓包的接口发送

python代码如下(为了保护母校,ip及其有关信息就不方便放出来)

def ssologin():


    cookies = {
        'JSESSIONID': 'E3628BB0DE360FBB6F7DC6EF0A3C2525',
        'JSESSIONID': 'A61C163B10934153639B46789D6B0AA4',
        'ymu': '22313507',
    }

    headers = {
        'Host': 'ip',
        'Connection': 'keep-alive',
        # 'Content-Length': '229',
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Origin': 'ip',
        'X-Requested-With': 'XMLHttpRequest',
        'User-Agent': 'Mozilla/5.0 (Linux; Android 9; Redmi 6 Build/PPR1.180610.011;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'Referer': 'http://202.203.158.158/sso/login?service=http%3A%2F%2F****%2Fj_spring_cas_security_check',
        # 'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
        # Requests sorts cookies= alphabetically
        # 'Cookie': 'JSESSIONID=E3628BB0DE360FBB6F7DC6EF0A3C2525; JSESSIONID=A61C163B10934153639B46789D6B0AA4; ymu=22313507',
    }

    data = {
        'username': '学号',
        'password': 'JunsLYUvD*******EAys=',
    }

    response = requests.post('http://*******/sso/ssoLogin', cookies=cookies, headers=headers, data=data)
    print(response.text)

运行结果

在这里插入图片描述

登陆成功!!

本次学习仅作为一个记录
我爱我校

你可能感兴趣的:(爬虫专栏,python,javascript脚本,java,前端,javascript,python)