重庆工商大学图书馆抢座分析

重庆工商大学图书馆抢座分析
fulian23起因
唐部搞完抢课脚本后又打起了抢图书馆座位的主意,让我也一起看看
经过
登陆密码加密
通过抓包得到提交登录表单的参数为
1 | { |
其中execution可在登录页源码中得到
源码中找到了对密码进行加密的位置
使用了security.js里的函数进行的加密
由于里面的加密太过复杂,笔者没能力改成python代码(菜)
但是python中的execjs库能运行js代码,于是想到在security.js中增加一个函数供python调用,连接python脚本与security.js中的函数
Modulus参数为网页发送的getPubKey请求返回的数据
成功得到加密后的密码
分析跳转路线
由于一开始是在未登陆的状态访问 https://ic.ctbu.edu.cn/ 所以会有302跳转登录页面,登录之后又会跳回原页面,所以分析网页跳转的路线
抓包得知,在进入 https://ic.ctbu.edu.cn/ 后,会发送userInfo请求来获取用户信息,如果没获取到信息,就使用address请求返回一个uuid和跳转网址
这个网址又会带着信息跳转到登陆页面
之后会发送getPubKey请求获取pubkey,并在cookie中设置_pm0,用来区分不同的pubkey
最后发送获取验证码的请求
那现在思路就有了:直接访问address,获得跳转网址,一直跳转到登陆页面,根据网页源码得到execution参数,再发送getPubKey请求得到pubkey,用get_rsa_pwd函数得到加密后的密码,然后发送获取验证码请求,用ddddocr识别,将这些数据一并给登陆页面。
至此,登录成功
成果
登陆成功后数据的筛选、预定的发送自然不是什么难事
使用多线程同时抢多个座位
都是唐部指使我干的!!