最近一段时间突发其想打算做个类似携程抢火车票一样的云抢课平台,项目做了一大半突然看见新闻有人做帮其他人抢火车票的生意被逮起来的。而且云抢课平台一旦做起来,学校的土豆服务器肯定分分钟崩溃,到时候学校肯定要请我去喝茶。所以把我这段时间的研究成果公开供大家学习。文中有什么不对的地方还请各位大佬指出。

首先,学校的抢课系统是比较常见的正方教务系统,按理来说应该非常简单。但是,对比其他正方教务系统,显然我们学校的教务系统登录页面被关闭,而采用了CAS,Central Authentication Service—中央认证服务。

但是,对比其他正方教务系统,显然我们学校的教务系统登录页面被关闭,而采用了CAS,Central Authentication Service—中央认证服务。

在github上找到一位杭电16级学长做过的类似的项目,但是学校的登录系统又进行了升级,后来要到了学长的联系方式,通过交流我也大概了解到思路,于是开始研究新版数字杭电登录系统。

首先用chrome进行抓包

可以看到登录的数据进行了rsa非对称加密算法进行了加密,老版的数字杭电登录系统采用的是md5加密算法。

知道采用rsa加密后首先想到去前端的js里面查找加密函数

果然找到了一个名称为des的js文件,刚好鄙人上学期选修了信息安全技术的专业选修课,课上研究过des+rsa的加密。打开des.js果然就是页面所采取的加密算法。

下一步在login.js的代码里面找到调用加密函数的语句

经过分析u就是学号,p是密码,lt是loginticket

紧接着就是获取loginticket,经过学长的指导,得知loginticket在html中。

此时我们在代码中通过正则表达式则可以把lt提取出来


此时rsa加密部分基本上已经分析完毕了

紧接着将des.js保存,并通过python的execjs库调用加密函数

这里我特意尝试对比一下加密结果是否和抓包得到的结果一致,结果发现完全一致

此时我们已经获取了登录所需的所有的参数(execution获取同理lt此处略过)ul是学号长度,pl是密码长度

此时我们就可以将Data进行发送了。接下来的操作就和其他网站的操作类似了。

不得不说学校对安全性还是很重视的,老版数字杭电采用的只是将密码进行md5加密,虽然传输的数据即使被截取没办法知道密码是多少但是攻击者就可以通过这个md5值当作密码伪装并成功登录。而新版的数字杭电采用的则是 学号+密码+loginticket 合成一个字符串进行rsa非对称加密,虽然公钥是固定的,但由于loginticket每次都会改变使得即使数据被截取攻击者也没办法伪装。

数字杭电之抢课系统分析相关推荐

  1. 如何用计算机猜数字,杭电2010计算机复试笔试题 2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;...

    //第一题是猜数字的游戏. //题目:随即产生一个3位的正整数,让你进行猜数字, //如果猜小了,输出:"猜小了,请继续". //如果猜大了,输出:"猜大了,请继续&qu ...

  2. 杭电选课脚本(一)登录选课系统

    序 又到了学期末,选课的时间到了,中国的大学系统你懂得,卡,每次到了抢课时间,总是又卡又慢,半天刷不出来一个网站,如何写一个脚本,到了抢课时间运行一下,可以省时省力.这一篇只是伪登陆,后续的选课不知道 ...

  3. 杭电c语言课程设计短学期第七次作业,杭电短学期数字电子钟整点报时系统实验报告...

    杭电数字电子钟整点报时系统实验报告 链接: http://pan.杭电baidu.杭电com杭电/s杭电/1nuxwOdz 密杭电码: k4yy 1. 自主设计: 1.1选题目的 数字电子钟是一种用数 ...

  4. 杭电 汉诺塔问题总结

    看了一下杭电的各种汉诺塔问题,遇到些奇奇葩葩的小问题,也有很多很好的思想,比如最后一题,来来回回的颠倒很有意思.总结一下: Pro.ID 1207 :http://acm.hdu.edu.cn/sho ...

  5. 杭电ACM刷题(1):1002,A + B Problem II

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

  6. java最简单的并查集(不想交集合)以及杭电1272

    并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点. 还有一个属性number:表示该树存在的总个数.(也可以用深度表示).我用小树插在大树上. 如果是普通数字表示的树,可 ...

  7. 杭电1043java实现bfs一遍

    题目Eight Problem Description 这个15难题已经存在了100多年了,即使你不知道它的名字,你也看到了.它由15个滑动瓦片构成,每个滑动瓦片的数量从1到15,并且全部装入4乘4帧 ...

  8. 杭电1430康托 bfs(java)

    魔板: Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版--魔板.魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示.任一时刻魔板 ...

  9. 杭电1254java实现(双bfs 优先队列)

    推箱子 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个 ...

最新文章

  1. 分布式账本(Distributed ledger)
  2. 面试官灵魂的一击:你懂MySQL事务吗?
  3. seaborn使用violinplot函数可视化水平小提琴图(Make Horizontal Violin Plot with violinplot in Seaborn)
  4. 东野圭吾梦幻花读后感_《梦幻花》精选读后感
  5. 机器学习(六)支持向量机svm初级篇
  6. 链路两段不同网段怎么通信_为什么不同网段不能通信(转)
  7. sql 取两个表_图撕SQL表联结
  8. 【opencv】图像特征与描述
  9. oracle客户端导入dmp文件格式,在linux服务器上导入oracle的DMP文件
  10. Windows7系统的70个小技巧
  11. Retinex网络模型学习笔记
  12. AI矢量绘图_Illustrator 2022矢量图形编辑制作
  13. php ecshop 清除缓存文件夹,ecshop缓存常见问题
  14. Windows邮箱登录QQ邮箱
  15. bzoj-1270 [BeijingWc2008]雷涛的小猫
  16. 2022/7/14小记
  17. 密码重置用HTML怎么弄,如何用简单命令重置路由器密码
  18. 电商项目必备技能=>放大镜
  19. php_excel表中_如何自动将多行中文转换成拼音,Excel2007怎么批量将汉字转换为拼音...
  20. 郸城二高2021年高考成绩查询入口,2021年河南高考最高分多少分,历年河南高考状元...

热门文章

  1. ConstraintLayout 流式布局:Flow的用法
  2. 如何安装谷歌浏览器驱动(Google Chromedriver)
  3. 小学计算机室每日管理日志,2017小学信息技术工作研修日志
  4. 计算机设备行业特征,2018年我国计算机、通信和其他电子设备制造业现状分析 产业园区聚集特征明显...
  5. IKBC-DC87无线连接方法
  6. webStorm自动格式化
  7. 微信小程序解密手机号码异常
  8. 网络图标出现小地球,但可以正常上网的解决方法
  9. Win10能联网,但右下角网络图标变成小地球,显示无Internet连接的解决办法
  10. Win系统 - 解决 Win10 笔记本 WiFi 的标志变成小地球