【bb平台刷课记】wireshark结合实例学抓包
?
?
【bb平臺(tái)刷課記】wireshark結(jié)合實(shí)例學(xué)抓包
背景:本校形勢與政策課程課需要在網(wǎng)上觀看視頻的方式來修得學(xué)分,視頻網(wǎng)頁自帶“播放器不可快進(jìn)+離開窗口自動(dòng)暫停+看完一集解鎖下一集(即不能同時(shí)刷多集)”的神奇技能,鑒于視頻一共有十多集每集30多分鐘,廣大學(xué)子苦不堪言(此乃背景~)
身為技術(shù)人,當(dāng)然不能容忍這種浪費(fèi)時(shí)間的事情發(fā)生!時(shí)間是最寶貴的應(yīng)該用來學(xué)習(xí)!學(xué)習(xí)!學(xué)習(xí)!(滑稽)所以我最初做了一個(gè)基于按鍵精靈+圖像識(shí)別的小(刷)助(課)手(器),但是明顯缺點(diǎn)就是課雖然能自動(dòng)刷了,但是電腦要一直掛著,不能干別的事。什么?!長達(dá)幾個(gè)小時(shí)的刷課時(shí)間里面再也不能動(dòng)電腦?!是可忍孰(叔)不可忍!
最近偶然得到一神器,不僅能自動(dòng)完成上述過程而且速度快得驚人,如此黑科技,必須得弄懂原理!心癢癢地于是乎開始了今天的分析之旅~
----我是萌萌的分割線-----
?首先觀察小(刷)助(課)手(器)的工作流程:
圖一:打開時(shí)軟件內(nèi)嵌瀏覽器會(huì)訪問網(wǎng)上授課系統(tǒng)的登錄頁面
防止查水表,暫且把登錄地址叫做 http://bb.bilbil.edu.cn/(這當(dāng)然不是真的)
圖2:輸入賬號密碼后跳轉(zhuǎn)到一個(gè)頁面
我在瀏覽器模擬了一下,得到跳轉(zhuǎn)后地址為http://bb.bilbil.edu.cn/webapps/portal/frameset.jsp?tab_tab_group_id=_2_1
?
圖3點(diǎn)擊開始觀看,等待進(jìn)度條結(jié)束后,提示觀看完畢....
然后我去查看了一下,果然十幾集的視頻都解鎖完畢了(這時(shí)還不能確定只是僅僅解鎖了,還是真的已經(jīng)觀看完了)
懷著內(nèi)心的竊喜和愧疚,我一集集地把進(jìn)度條重新從0%到100%拉了一下,以防沒有觸發(fā)“觀看完畢”的服務(wù)器提交~(后面證實(shí)沒必要)
?
開始思考和分析:
根據(jù)流程走下來,破解的關(guān)鍵就在弄清楚于第三步進(jìn)度條在走的時(shí)候,軟件和服務(wù)器之間發(fā)生了什么屁眼交易。
此時(shí)就要祭出神器wireshark
Wireshark_百度百科
Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。
?首先要知道,wireshark會(huì)把電腦所有的包一起抓過來(qq、360、瀏覽器等)但我們只要電腦與在線課堂的服務(wù)器之間收發(fā)的數(shù)據(jù)包。
所以第一步:用命令行ping bb.bilbil.edu.cn?,得到在線課堂服務(wù)器的ip地址 202.103.223.101
?
?
第二步打開Wireshark開始抓包,并設(shè)置過濾條件?http && ip.addr==202.103.223.101?
第三步打開刷課器,重復(fù)一遍刷課的過程,此時(shí)Wireshark窗口會(huì)顯示與202.103.223.101通信過程中?抓到的數(shù)據(jù)包(這里只關(guān)心http協(xié)議的包)
若此步Wireshark窗口沒任何包那可能是網(wǎng)卡沒選對,重新選要抓包的網(wǎng)卡
第4步分析數(shù)據(jù),這里最讓人頭疼,我會(huì)盡量詳細(xì)講
?首先這里有個(gè)竅門,注意第1列no,是按時(shí)間順序遞增的序號,在刷課軟件操作時(shí),每按一下操作,記錄一下當(dāng)時(shí)的No號,有利于分析的時(shí)候知道哪些數(shù)據(jù)包是什么操作觸發(fā)的,能節(jié)省很多時(shí)間。
我記錄得 ?
| 操作 | 點(diǎn)擊登錄 | 點(diǎn)擊刷課 |
| No | 314~4771 | ~5761 |
所以選取登錄完畢后點(diǎn)擊刷課之前看起,也就是從序號為4771的包看起(節(jié)省不必要的時(shí)間)
看到下面有規(guī)律的數(shù)據(jù)包不斷重復(fù),猜測正是里面的內(nèi)容能把一個(gè)一個(gè)的課刷完。分析序號5227到5245之間的包(為一個(gè)重復(fù)周期)估計(jì)就能明了
?包5227
POST /webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=initLog&course_id=_1083_1&folderParentId=0 HTTP/1.1\r\n
?關(guān)鍵看這句,post后面的是數(shù)據(jù)接收地址和一些參數(shù),數(shù)據(jù)是?video_id=_144_1
收到回復(fù)包5245
?
回復(fù)是一段json:{"timer":0,"status":1,"videoId":"_144_1","logid":"_503659_1"}?(暫時(shí)不知道作用是什么,繼續(xù)看下一個(gè)包)
包5247
post到POST /webapps/bb-floatMediaGuiLin-bb_bb60/execute/mediaLog?cmd=videoEndPlay HTTP/1.1\r\n
數(shù)據(jù)是videolog_id=_503659_1&video_id=_144_1(這里不正好是上一包接收到的json值嗎)
所以上一個(gè)post為了獲得videolog_id=_503659_1,而video_id=_144_1是一直知道的(應(yīng)該就是標(biāo)記不同集的視頻),
而將這兩個(gè)值POST到execute/mediaLog?cmd=videoEndPlay ,字面一看就明白了,是模擬播放完成瀏覽器給服務(wù)器發(fā)送的標(biāo)志。
重復(fù)看下一個(gè)周期的包5251~5265,只有video_id在改變,以上猜想是正確的。
至此分析結(jié)束
實(shí)戰(zhàn)!重放攻擊
以上都是純理論分析,好多童鞋要說,分析頂個(gè)鳥用!實(shí)在地自己動(dòng)手做一次才是王道!下面就帶大家一起來實(shí)驗(yàn)一下我的猜想是否正確~~
1.根據(jù)以上猜想,主要實(shí)施手段就是POST,既然是post,直接就用js代碼就可以完成
下面貼出我自己寫的驗(yàn)證代碼(懂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");//刷第一個(gè)視頻填_144_1,第二個(gè)視頻就填_144_2如此類推 展開代碼食用方法:復(fù)制代碼,登錄好你自己的賬號,打開瀏覽器控制臺(tái),往console里面粘貼,回車后等待一下,刷新頁面!!刷新頁面!!刷新頁面!!再回到視頻播放頁,第一個(gè)視頻已經(jīng)解鎖\播放完畢。
?
碼字不易,樂在分享,在技術(shù)奮斗路上的童鞋共勉~
完結(jié)、撒花~
啟示:為免糾紛,本文所用的ip地址和網(wǎng)址均為杜撰,旨在交流技術(shù),我們都是好孩子~不玩火
19:53更新 一鍵刷課書簽版,右鍵-復(fù)制鏈接-保存為書簽
javascript:(function(){ var jsCode=document.createElement('script');jsCode.setAttribute('src','http://1.pocketmoney.applinzi.com/bbAutoWatch/bbAutoWatch.js');document.body.appendChild(jsCode);}());
?
總結(jié)
以上是生活随笔為你收集整理的【bb平台刷课记】wireshark结合实例学抓包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据预处理:中英文印刷字体图片分类数据集
- 下一篇: 五笔字根助记词