由于毕业设计需要,杭电的教务系统是正方和数字校园相结合的,网上基本上没有对此的相关文章,所以对学校教务系统做了一点分析,目前能实现对教务系统所有数据的抓取,该方法适用于杭电和类似的教务系统。

准备工具

  1. 浏览器:火狐,、chrome、IE等都可以
  2. charles:一款收费的跨平台抓包软件,网上很多破解版的,也可以使用其他类似的抓包工具或者浏览器自带的开发者工具(F12)charles原版下载地址,破解补丁

登录页分析

先打开charles,再打开杭电登录页面:http://cas.hdu.edu.cn/cas/login,输入学号密码直接登录,charles抓取到一个http://cas.hdu.edu.cn/cas/login的网址,分析登录的请求参数:

字段 备注
encodedService http%3a%2f%2fi.hdu.edu.cn%2fdcp%2findex.jsp 登录成功后跳转页面encode值
service http://i.hdu.edu.cn/dcp/index.jsp 登录成功后跳转页面
serviceName null 可选
loginErrCnt 0 默认0
username 12946137 学号
password a83aebcf531aacd35eea7f71e81c707c 用户密码MD5处理后的值
lt LT-364900-rrywwfuU5b3XSIje8d3h 随机生成的字段

在请求参数中lt是一个比较特殊的字段,该值一旦被请求过后便会失效,没有该参数也无法登录,现在的问题就是找到lt的值, 通过查看http://cas.hdu.edu.cn/cas/login的网页源代码,可以发现\这句话,其中value里面的值即为lt值。
请求成功后返回的Response如下:

图上红色框选中的数据中ST-364927-AstH1g93oQ9dDerlthMm是一个重要参数,后面会用到, 至此,登录页的分析完成。

选课系统分析(正方)

在进入到选课系统时,系统做了如下请求:

大部分都是跳转链接,现在分析图上红色框画出的链接,网址结构为:http: //jxgl.hdu.edu.cn/index.aspx?ticket=上面说到的ticket值(我这个是因为重新登录过,所以跟上面的值有些不一样) ,先看下Response:

图上看出,这个页面还进行了一次post请求,

字段
__VIEWSTATE /wEPDwUKLTUxMTcwNzgxMGRk

这个值为固定值,每个学校的值可能会有些差异,在请求后,需要获取里面的两个set-cookie值,有了这两个值,就能获取该学生在教务处的所有信息了。在下面的实例中每个请求都需要携带此cookie值进行请求

查询学生个人信息(实例)

链接网址格式:http:// jxgl.hdu.edu.cn/xsgrxx.aspx?xh=学号&xm=姓名urlencode值&gnmkdm= gnmkdm值, 其中nmkdm值可以在http:// jxgl.hdu.edu.cn/xs_main.aspx?xh=学号 返回的数据里面获取到,获取方法类似于lt字段的获取。请求成功返回的数据即为学生的个人信息数据。

源码

https://github.com/WrBug/tools