说明
本文章仅用于学习交流,请勿用于其他用途!!!
!!!!!!本次使用的是学校内网访问的教务系统
不经常写文章,没这么好底子
自己分析 整体流程
登录 —— 抓目标地址的网页 —— 解析 —— 显示
登录接口解析
提前布置好环境,这里我使用的fidder,
网站首页抓包,传来的数据非常多,他们学校选课网站代码是不是和漯职一样 好奇
它使用一个session的工作机制,将这个id以cookie的形式发回到客户端
这里已经获取了一个 cookie
保存到浏览器缓存中
然后我们随便输入一个账号密码进行一下分析
可以看出,__VIEWSTATE是一开始就有了的,这说明它是服务器端就已经生成了的,而validcodestate,fgfggfdgtyuuyyuuckjg等等是空的,我在写文章之前就已经分析了一下午…青果是真的贼,和之前分析的小网站根本不一样
让我们顺着后面的JS继续看,这里很明显地调用了chkyzm()和chkpwd()两个方法,方法体如下
function chkpwd(obj) {
if (obj.value != '') {
var s = md5(document.all.txt_asmcdefsddsd.value + md5(obj.value).substring(0, 30).toUpperCase() + '10835').substring(0, 30).toUpperCase();
document.all.dsdsdsdsdxcxdfgfg.value = s;
} else {
document.all.dsdsdsdsdxcxdfgfg.value = obj.value;
}
}
function chkyzm(obj) {
if (obj.value != '') {
var s = md5(md5(obj.value.toUpperCase()).substring(0, 30).toUpperCase() + '10635').substring(0, 30).toUpperCase();
document.all.fgfggfdgtyuuyyuuckjg.value = s;
} else {
document.all.fgfggfdgtyuuyyuuckjg.value = obj.value.toUpperCase();
}
上面的函数就是对验证码,密码进行加密,加密的方式都可以看出来
加密的流程就是
- 将输入的密码使用MD5编码。
- 取编码后的结果的前30位,并将其转换为大写字母。
- 将输入的账号和学校代码 10635
- 对拼接后的字符串再次进行MD5编码。
- 取编码后的结果的前30位,并将其转换为大写字母。
- 最后将这个值写入到字段"dsdsdsdsdxcxdfgfg"中。
登录流程
1.我们只需要访问http://192.168.120.57/jwgl/_data/login_home.aspx这个页面就可以同时得到session和__VIEWSTATE了
2.我们尝试用正确密码访问
比第一次尝试错误密码进入的多了许多值,知道怎样加密就好办了
3.登陆成功的页面http://192.168.120.57/jwgl/MAINFRM.aspx
4.到这里我们已经基本无压力了,无非就是模拟查看成绩,查看课表的操作,我们通过抓包,可以看出是通过向/xscj/Stu_MyScore_rpt.aspx这个页面发送post请求(里面写输出格式之类的参数),从响应你内容中我们可以得到自己课程表的图片地址,http://192.168.120.57/jwgl/znpk/Pri_StuSel_Drawimg.aspx
结尾
分析这个东东主要是为了避免抢课高峰期
定时抢课,没想到网站水这么深。