期末了图书馆座位难抢,恰好有朋友想去,于是就浅浅研究了一下。
CTBU图书馆预约系统:https://ic.ctbu.edu.cn
进入预约系统,发现未登录状态下会获取一个带token的地址重定向到统一身份认证中心:https://ic.ctbu.edu.cn/ic-web/auth/address?finalAddress=https:%2F%2Fic.ctbu.edu.cn
登录,f12找到登录的请求:
https://cas.ctbu.edu.cn/lyuapServer/login?v=0.35525523410804727
username: 20234*****
password: 20055e0d3518c8c8d9b...
authcode: 8235
execution: 00ad4e35-6acc...
_eventId: submit
其中execution、_eventId可在页面源码中提取到
继续挖掘,找到加密密码的部分(https://cas.ctbu.edu.cn/lyuapServer/js/login/login.js?v=0.6063708780687932),密码使用了RSAUtils(也就是加载的security.js)进行加密,modulus和exponent都从https://cas.ctbu.edu.cn/lyuapServer/v2/getPubKey获得,所有参数一应俱全,这里就不多说了。验证码直接用tesseract或者ddddocr进行识别,效果还不错。
此外,getPubKey那里会有几个_pm0、_pv0开头的cookie,必须带上
写好登录脚本后发送登录请求,遇到302就是成功了,从headers中拿到ic-cookie。
登进系统后还有一个拿token的请求,经过测试后发现这个token并没有实质性的作用,每次请求时在请求头里带上cookie就行了
最后就是抓包看预约的请求,这个简单就懒得写了,搞了个自动预约座位的网站,每天到点自动预约,先给大家免费用:www.ctbu.top
特别鸣谢一起研究的扶师傅:@fulian23
Comments NOTHING