某校教务管理系统post分析,Python实现自动查询成绩并发送短信

前言
本人是一名大三大学生,考完试不久,由于自己不知道期末考试什么时候出考试成绩,并且每次查询成绩特别麻烦(首先得登录VPN连接学校内网,然后再登录教务管理系统,再进入查询界面,点击查询成绩等,相信各位大学生在家查询成绩也有同样的麻烦),于是自己突发奇想,想做一个免VPN成绩查询的WEB界面(只需要输入账号,密码就可以直接显示出考试成绩,下面会解释这个项目是怎么做的),另外还想做一个短信通知服务,就是只要这门成绩一出,就会自动给你发短信通知 什么科目考了什么成绩等信息。下面就详细地介绍这个项目是怎么做的。
步骤
一、整体架构
1、首先要完成这个小项目,第一步就是要认真分析需求

当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 
学习Python中有不明白推荐加入交流Q群号:928946953 
群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!
还有大牛解答!


1.1、免VPN
1.2、WEB可视化界面
1.3、短信通知功能
2、下面是根据这些需求具体的架构
首先免VPN,是让用户感觉到没有用VPN,但是不用VPN是无法连接学校服务器进入的,所以这里我的想法是在服务器端架设VPN,在前台,用户只需要把教务管理系统的账号,密码输入,然后将信息传到服务器,服务器端再连接学校服务器,将信息传入服务器,分析get,post请求将查询到的成绩返回,WEB可视化使用的python的flask, 短信通知就是写一个python程序,让它死循环地向学校服务器发送post请求,只要一检测到成绩就查询每个用户的程序并向用户发送短信
3、数据库
这里我使用的是mysql数据库,我建了 3个表
表1、com_user,存储的是有查询权限的用户(学号,姓名)
表2、note_user,存储的是开通短信服务的用户(学号,姓名,密码(加密的,这里我采用了最简单的Base64加密), 手机号)
表3、kcs,存储的是已出的考试成绩,因为短信服务需要每次查询成绩与数据库的做对比,多的就是新出的,表的字段是(课程号(唯一确定一门课程), 课程名称)
二、逆向分析教务管理系统的WEB界面实现自动登录
1、首先需要登录在家查询成绩所需的VPN,因为这样才会登录学校的教务管理系统
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信

2、 我们从登录入口开始分析
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信


点击登录后发现密码框中的数据变长了
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信


说明密码是在前台加密过的
再次回退再次登录,这时我们打开F12,观察发送的数据,,点击登录后
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信


观察第一个http请求,发现发送的Form表单中yhm是学号,下面的mm是加密的密码,上面的csrftoken现在也不知道是什么东西,百度搜索后,发现好像是为用户实现防止跨站请求伪造的功能
这里先不管它
再次倒回,审查按钮元素,观察click事件
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信


进入,惊讶地发现密码是RSA加密的,进一步调试并百度后发现这个是RSA的PKCS的一种标准
 

某校教务管理系统post分析,Python实现自动查询成绩并发送短信


那么公钥是从哪里来的呢?
回到最初的登录界面,打开F12,在谷歌浏览器搜索栏中输入教务管理系统的URL,回车,捕捉HTTP数据包
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值