【bb平台刷课记】wireshark结合实例学抓包

【bb平台刷课记】wireshark结合实例学抓包

背景:本校形势与政策课程课需要在网上观看视频的方式来修得学分,视频网页自带“播放器不可快进+离开窗口自动暂停+看完一集解锁下一集(即不能同时刷多集)”的神奇技能,鉴于视频一共有十多集每集30多分钟,广大学子苦不堪言(此乃背景~)

身为技术人,当然不能容忍这种浪费时间的事情发生!时间是最宝贵的应该用来学习!学习!学习!(滑稽)所以我最初做了一个基于按键精灵+图像识别的小(刷)助(课)手(器),但是明显缺点就是课虽然能自动刷了,但是电脑要一直挂着,不能干别的事。什么?!长达几个小时的刷课时间里面再也不能动电脑?!是可忍孰(叔)不可忍!

最近偶然得到一神器,不仅能自动完成上述过程而且速度快得惊人,如此黑科技,必须得弄懂原理!心痒痒地于是乎开始了今天的分析之旅~

----我是萌萌的分割线-----

首先观察小(刷)助(课)手(器)的工作流程:

图一:打开时软件内嵌浏览器会访问网上授课系统的登录页面

防止查水表,暂且把登录地址叫做 http://bb.bilbil.edu.cn/(这当然不是真的)

图2:输入账号密码后跳转到一个页面

我在浏览器模拟了一下,得到跳转后地址为http://bb.bilbil.edu.cn/webapps/portal/frameset.jsp?tab_tab_group_id=_2_1

图3点击开始观看,等待进度条结束后,提示观看完毕....

然后我去查看了一下,果然十几集的视频都解锁完毕了(这时还不能确定只是仅仅解锁了,还是真的已经观看完了)

怀着内心的窃喜和愧疚,我一集集地把进度条重新从0%到100%拉了一下,以防没有触发“观看完毕”的服务器提交~(后面证实没必要)

开始思考和分析:

根据流程走下来,破解的关键就在弄清楚于第三步进度条在走的时候,软件和服务器之间发生了什么屁眼交易。

此时就要祭出神器wireshark

Wireshark_百度百科

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

首先要知道,wireshark会把电脑所有的包一起抓过来(qq、360、浏览器等)但我们只要电脑与在线课堂的服务器之间收发的数据包。

所以第一步:用命令行ping bb.bilbil.edu.cn ,得到在线课堂服务器的ip地址 202.103.223.101

第二步打开Wireshark开始抓包,并设置过滤条件 http && ip.addr==202.103.223.101

第三步打开刷课器,重复一遍刷课的过程,此时Wireshark窗口会显示与202.103.223.101通信过程中 抓到的数据包(这里只关心http协议的包)

若此步Wireshark窗口没任何包那可能是网卡没选对,重新选要抓包的网卡

第4步分析数据,这里最让人头疼,我会尽量详细讲

首先这里有个窍门,注意第1列no,是按时间顺序递增的序号,在刷课软件操作时,每按一下操作,记录一下当时的No号,有利于分析的时候知道哪些数据包是什么操作触发的,能节省很多时间。

我记录得

操作 点击登录 点击刷课
No 314~4771 ~5761

所以选取登录完毕后点击刷课之前看起,也就是从序号为4771的包看起(节省不必要的时间)

看到下面有规律的数据包不断重复,猜测正是里面的内容能把一个一个的课刷完。分析序号5227到5245之间的包(为一个重复周期)估计就能明了

 包5227

POST /webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=initLog&course_id=_1083_1&folderParentId=0 HTTP/1.1\r\n

关键看这句,post后面的是数据接收地址和一些参数,数据是 video_id=_144_1

收到回复包5245

回复是一段json:{"timer":0,"status":1,"videoId":"_144_1","logid":"_503659_1"} (暂时不知道作用是什么,继续看下一个包)

包5247

post到POST /webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=videoEndPlay HTTP/1.1\r\n

数据是videolog_id=_503659_1&video_id=_144_1(这里不正好是上一包接收到的json值吗)

所以上一个post为了获得videolog_id=_503659_1,而video_id=_144_1是一直知道的(应该就是标记不同集的视频),

而将这两个值POST到execute/mediaLog?cmd=videoEndPlay ,字面一看就明白了,是模拟播放完成浏览器给服务器发送的标志。

重复看下一个周期的包5251~5265,只有video_id在改变,以上猜想是正确的。

至此分析结束

实战!重放攻击

以上都是纯理论分析,好多童鞋要说,分析顶个鸟用!实在地自己动手做一次才是王道!下面就带大家一起来实验一下我的猜想是否正确~~

1.根据以上猜想,主要实施手段就是POST,既然是post,直接就用js代码就可以完成

下面贴出我自己写的验证代码(懂js的童鞋看看就明白是什么回事了)

var xml = new XMLHttpRequest(),res=‘‘;
    var url = "/webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=initLog&course_id=_1083_1&folderParentId=0";
    xml.open(‘POST‘, url, true);
    xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xml.onreadystatechange = function () {
        if (xml.readyState == 4) {
            if (xml.status == 200) {
                //console.log(xml.responseText);
                res = eval(‘(‘ + xml.responseText + ‘)‘);
                // console.log("videolog_id="+res.logid+"&video_id="+res.videoId);
                var url = "/webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=videoEndPlay";
                xml.open(‘POST‘, url, true);
                xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                xml.onreadystatechange = function () {
                    if (xml.readyState == 4) {
                        if (xml.status == 200) {
                            console.log(xml.responseText);
                        }}}
                xml.send("videolog_id="+res.logid+"&video_id="+res.videoId);
            }}}
    xml.send("video_id=_144_1");//刷第一个视频填_144_1,第二个视频就填_144_2如此类推

展开代码

食用方法:复制代码,登录好你自己的账号,打开浏览器控制台,往console里面粘贴,回车后等待一下,刷新页面!!刷新页面!!刷新页面!!再回到视频播放页,第一个视频已经解锁\播放完毕。

码字不易,乐在分享,在技术奋斗路上的童鞋共勉~

完结、撒花~

启示:为免纠纷,本文所用的ip地址和网址均为杜撰,旨在交流技术,我们都是好孩子~不玩火

时间: 2024-10-19 23:45:36

【bb平台刷课记】wireshark结合实例学抓包的相关文章

pcapng文件的python解析实例以及抓包补遗

正文 为了弥补pcap文件的缺陷,让抓包文件可以容纳更多的信息,pcapng格式应运而生.关于它的介绍详见<PCAP Next Generation Dump File Format> 当前的wireshark/tshark抓取的包默认都被保存为pcapng格式. 形而上的论述就不多谈了,直接给出一个pcapng数据包文件的例子: 然后我强烈建议,对着<PCAP Next Generation Dump File Format>来把一个实际抓取的pcapng文件里面的每一个字节都对

wireshark实战之局域网抓包分析

Wireshark.它是一款本地监听数据的大杀器,弊端是只能监听本地的数据,有什么办法可以让局域网中的流量都从本机走呢? 第一ARP嗅探,劫持网关,再本地抓包. 第二交换机镜像端口,在路由或者交换机处设置,复制一份数据到指定机子端口.第三Ap一个无线,让他们连接,然后再抓包.第一种方法不用考虑,第二种方法因为企业级路由才有镜像端口功能,我等屌丝用的TP-LINK无这个功能.所以只能考虑第三种方法.  首先建立一个WIFI热点,懒得用WIN7自带的虚拟WIFI功能.(PS:window 7有一个"

Mac使用wireshark对移动设备抓包

在系统偏好设置中,打开蓝牙共享网络,就能让移动设备通过连接蓝牙来访问网络,这个途径访问都会被wireshark所抓 然后捕获接口中可选 设置 筛选 为 http and (ip.src == 192.168.2.2 or ip.dst == 192.168.2.2) 试着访问一下博客,就可以抓到 这里因为并没有iphone,所以测试的移动设备是ipad

Android网络开发实例(基于抓包实现的网络模拟登录,登出和强制登出)

学习Android有几个月了,最近喜欢上了网络编程,于是想通过Android写一些一个小程序用于连接外网.在这里非常感谢雪夜圣诞的支持,非常感谢,给我打开新的一扇门. 1.声明,本程序只能用于西南大学连接外网登录,其他网站需要自己进行抓包测试. 2.声明,本文更多的是关注网络抓包已经,本地构造,如果有什么错误,请尽情指教,非常感谢. 3.声明,最后源代码,以全部上传github,需要的同志可以自行下载,文章结尾会附带链接. 废话不多说,正文开始: 学校官网 第一步,首先需要实现的是登录操作: 当

了解使用wireshark抓包工具

一.简介 1.什么是wireshark 百度: Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件.Ethereal的出现改变了这一切.在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利.Etherea

linux主机上编译安装rpcapd实现wireshark远程抓包功能

使用wireshark在远程linux系统抓包 简介 由于在做分布式HLR时,需要一边测试,一边抓取信令消息,而现在分布式HLR的系统都是采用linux,抓包可以使用tcpdump工具,不过感觉不是很方便.正好,之前的测试的同事,已经实现了使用笔记本上的wireshark远程抓包,而我以前对此没有做过了解,不是很懂,抽空在网上查了查资料,大概屡清楚了实现方法.实现远程抓包,主要借助winpacp这个软件中的rpcapd工具,这里就对在linux下的rpcapd工具的安装,使用和windows下的

Wireshark和TcpDump抓包分析对比

常见的抓包分析工具有:微软的Network Monitor和Message Analyzer.Sniff.WSExplorer.SpyNet.iptools.WinNetCap.WinSock Expert.Wireshark和linux的tcpdump等工具 今天,做了实验测试就对比分析其中的两款,其他的大家可以百度谷歌测试一哈^_^ 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用

比Wireshark更轻量、更方便的抓包软件:Charles

转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireShark抓取iOS联网数据实例分析>:http://blog.csdn.net/lixing333/article/details/7782539 最近一些工作需要抓包,在我的Mac上安装了Wireshark之后,发现运行不了.探究之,发现Wireshark的界面用的是X Window,所以需要在X11

Wireshark和TcpDump抓包分析心得

? 1. Wireshark与tcpdump介绍 ?Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析. 在Windows平台下,Wireshark通过WinPcap进行抓包,封装的很好,使用起来很方便,可以很容易的制定抓