高校教务系统协议分析

这几天研究了一下我们学校的教务管理系统,本想看看它在前端是怎么加密密码的,但是没想到的是用Firbug工具一抓包,发现我们学校的教务系统的账号密码居然没有在前端进行加密传输。于是瞬间有了进一步研究的兴趣。

上图是登录时候的抓的包,POST过去的账号密码是明文。

然后我想了一下发现应该不会那么简单就登录上去了,于是我清空了一下cookies ,重新抓了一次包

果然不出我所料,发现第一次登录POST过去数据后并没有返回什么东西,而是又GET到其他网页去了。

于是我就查看了一下登录地址的后一条GET过去的地址,发现地址的后面有一串应该是加密过的字符串。

这一串字符串是哪里来的呢? 难道是JS加密出来的吗? 上一条POST过去的数据并没有返回什么啊。

然后我又猜测会不是cookie?去查看了一下登录地址的cookies发现果然收到了这么一串字符串。

原来是收到的cookies,把收到的cookies中的其中一条cookies作为了地址的后缀,或者是身份验证。

于是这就好办了,我只要把收到的cookies取出来然后,再加到地址后面不久可以模拟登录和获取其他数据了吗?

说干就干,我用VS创建了一个winform窗体程序然后做了一个登录框,然后模拟网页POST数据过去发现果然登录成功了(此处应该有掌声) 。

POST函数如下:

publicstaticstringGetHtml(stringurl,stringpostData,boolisPost,CookieContainercookieContainer)
        {
            if(string.IsNullOrEmpty(postData))
            {
                returnGetHtml(url,cookieContainer);
            }
            Thread.Sleep(NetworkDelay);//等待
            currentTry++;

            HttpWebRequesthttpWebRequest=null;
            HttpWebResponsehttpWebResponse=null;
            try
            {
                byte[]byteRequest=Encoding.Default.GetBytes(postData);

                httpWebRequest=(HttpWebRequest)HttpWebRequest.Create(url);
                httpWebRequest.CookieContainer=cookieContainer;
                httpWebRequest.ContentType=contentType;
                httpWebRequest.ServicePoint.ConnectionLimit=maxTry;
                httpWebRequest.Referer=url;
                httpWebRequest.Accept=accept;
                httpWebRequest.UserAgent=userAgent;
                httpWebRequest.Method=isPost?"POST":"GET";
                httpWebRequest.ContentLength=byteRequest.Length;

                Streamstream=httpWebRequest.GetRequestStream();
                stream.Write(byteRequest,0,byteRequest.Length);
                stream.Close();

                httpWebResponse=(HttpWebResponse)httpWebRequest.GetResponse();

                StreamresponseStream=httpWebResponse.GetResponseStream();
                StreamReaderstreamReader=newStreamReader(responseStream,encoding);
                stringhtml=streamReader.ReadToEnd();

                cc.Add(httpWebResponse.Cookies);

                streamReader.Close();
                responseStream.Close();
                currentTry=0;

                httpWebRequest.Abort();
                httpWebResponse.Close();
                returnhtml;
            }
            catch
            {
                if(currentTry<=maxTry)
                {
                    GetHtml(url,postData,isPost,cookieContainer);
                }
                currentTry--;
                if(httpWebRequest!=null)
                {
                    httpWebRequest.Abort();
                }if(httpWebResponse!=null)
                {
                    httpWebResponse.Close();
                }
                returnstring.Empty;
            }

然后登录成功后,我开始模拟获取课程表等数据信息,但是发现却不行。

于是我不甘心,又重新抓了一次包,又看到了下面这些信息。

原来在登录成功后,它后post了一条数据过去这条数据就是guid=”登录收的cookie”来检查guid,然后返回了一个消息,类似令牌的东西吧。然后查看了一下下面一条POST数据发现确实用到了这个返回消息里面的内容。

是的,它把这条返回的内容作为了以guid命名的cookie里面了作为它的值,看了一下它的命名是ticket车票的意思,我想这个应该就是入场券了。哈哈(此处应该大笑三声)

在拿到这些cookie之后一切的数据获取都是顺风顺水了。我就想既然我们学校的教务系统这么烂偶尔网站还访问不了,为什么不做个PC版的教务助手给学弟学妹们使用呢?

然后我就用2天时间做出了如下工具(虽然界面还是一无既往的丑,但是程序员嘛不要在乎这些了):

  哈哈是不是很赞呢?

只要登录成功就可以查询全校学生的信息和成绩哦,不知道会不会被成绩差的人打 哈哈哈哈。

时间: 2024-11-06 14:32:40

高校教务系统协议分析的相关文章

android获取高校教务系统的数据原理分析

获取原理 想要获取到高校教务系统的数据,原理只有一个: 获取到教务系统的登陆Cookie的信息. 下面我拿我大学的学校的教务系统来分析分析: 首先我们要准备一个抓包的工具,推荐:win下Fiddler ,Mac下Charles. 接下来我将使用Charles这款工具,Charcles的使用需要注意的是不要开其他代理服务.比如翻墙的代理. 登陆系统 下面进入我们学校的电费查询系统,网址为:http://jn.hhtc.edu.cn:8021/XSCK/: 进入系统,如图: 打开抓包工具,勾选Mac

作业7--南通大学教务系统体验分析

  关于南通大学教务管理系统,用的地方还是挺多的,比如选课,查个人成绩,查课表,重修报名等等,跟学生的学习生活联系密切,所以综合个人的使用情况,我在此做一些用户体验评价.首先是排版,下面就是一张主页图,看着太简洁了,没有一点提示窗口按钮,让人不知如何上手.          没有比较就没有优劣之分,下面这是一张移动客户端的公众号截图,可以比较一下.比较之后可以发现教务系统确实需要改进一些提示窗口.                                 然后我打开咨询窗口,如图所示,我只

基于UML的高校教务管理系统的设计与实现

一.基本信息 标题:基于UML的高校教务管理系统的设计与实现 时间:2018 出版源:南昌航空大学 领域分类:教育信息化:教务管理系统:UML:SSH:Oracle 二.研究背景 问题定义:高校教务管理系统的设计与实现 难点:想出新的数据录入方式,采用面向对象的分析方法和设计思路来逐步实现一个较为完善的高校教务管理系统 相关工作:了解并掌握相关技术,进行系统分析.设计,实现系统,测试系统可行性. 三.创新方法 1.多种技术构成的体系结构.平台.开发框架.交互技术的综合的系统 四.实验 实验1:相

从爬取华科hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;

原创文章与源码,如果转载请注明来源. 开发环境:Myeclipse,依赖包:apache-httpclient . Jsoup.base64 一.概述 华科大的教务系统(hub系统)做的算是比较好的,无论是界面还是其安全性来说,都是很不错的.大家可以用浏览器的调试工具F12看一下里面的源码.关于它的安全性,在后面会为大家提到.而在布局方面,用<div>代替了一些传统网站使用的<iframe>,导航栏也是使用的比较流行的插件. 其首页地址为http://hub.hust.edu.cn

物联网MQTT协议分析和开源Mosquitto部署验证

在<物联网核心协议—消息推送技术演进>一文中已向读者介绍了多种消息推送技术的情况,包括HTTP单向通信.Ajax轮询.Websocket.MQTT.CoAP等,其中MQTT协议为IBM制定并力推,其具有开放.简单.轻量级以及易于实现的特点使得其即便在资源受限的环境中也能得到很好的使用,比如运行在资源紧缺型的嵌入式系统中或网络带宽非常昂贵的环境中,除此之外,它也被广泛用于遥感勘测.智能家居.能源监测和医疗应用程序等各个领域,是物联网的重要组成部分,将来可能会成为物联网的事实标准. 本篇文章将帮助

POP3协议分析邮箱自动激活用户

使用POP3协议分析邮箱自动激活用户 2015-03-28 Lover雪儿 前几天,我们实现了,用户PHP模拟邮件激活注册用户, 地址:http://www.cnblogs.com/lihaiyan/p/4359927.html ,但是有的时候,往往是需要注册用户自己手动的向服务器的邮箱进行发送一封邮件,然后服务器通过分析邮箱的发件人,从而匹配自动的激活用户账号. 上class.pop3.php 邮件发送人分析php源代码: 1 <?php 2 3 //用户往[email protected]邮

NetAnalyzer笔记 之 二. 简单的协议分析

[创建时间:2015-08-27 22:15:17] NetAnalyzer下载地址 上篇我们回顾完了NetAnalyzer一些可有可无的历史,在本篇,我决定先不对NetAnalyzer做介绍,而是先要了解一些关于构建NetAnalyzer的基础知识,如系统中可以分析的一些网络协议,了解它们的分布方式,字段含义等.在了解了协议的基础上,开始对Winpcap进行一些介绍,在这过程中,学习配置Winpcap的开发环境,做一些简单的数据采集程序.第三部分着重介绍过滤表达式的一些基本语法结构.写下来则要

RTP协议分析

整理记录 版本号 时间 内容 整理人 V1.0 2008-03-31 RTP协议分析初稿 彭令鹏 RTP协议分析 第1章.     RTP概述 1.1.  RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议).它是IETF提出的一个标准,相应的RFC文档为RFC3550(RFC1889为其过期版本号).RFC3550不仅定义了RTP,并且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输

SMTP协议分析

SMTP协议分析 第1章.     SMTP概述 1.1.  SMTP在邮件通信中的位置 SMTP,即简单邮件传送协议,所相应RFC文档为RFC821.同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送.SMTP在整个电子邮件通信中所处的位置如图 1所看到的. 图 1电子邮件的通信过程 能够看出,SMTP是用来将客户机上的邮件传送到server上.这里的客户机是指某次连接中的发送方,server是指对应的接收方.在解说发送邮件的整个通信过程前,先解释一以下几个术语.