如何黑掉俄克拉荷馬州立大學(xué)的學(xué)生卡(含視頻)
文中所有內(nèi)容僅供學(xué)習(xí)研究使用,用于非法用途者,一切后果自負(fù)!
0×01、磁條基礎(chǔ)知識(shí)科普
注:文中磁卡沒有特別說明都是指磁條卡,而非IC卡。
磁卡是一種卡片狀的磁性記錄介質(zhì),利用磁性載體記錄字符與數(shù)字信息,用來標(biāo)識(shí)身份或其它用途。磁條是一層薄薄的由排列定向的鐵性氧化粒子組成的材料(也稱之為顏料)。用樹脂粘合劑嚴(yán)密地粘合在一起,并粘合在諸如紙或塑料這樣的非磁基片媒介上。
磁條一般分為高矯頑力(簡(jiǎn)稱HiCo)和低矯頑力(簡(jiǎn)稱LoCo)兩種。HiCo的磁條磁量大,較難擦除,適用于使用頻率較高的場(chǎng)景,如信用卡。LoCo的磁條磁量小,制作成本低,但缺點(diǎn)就是更容易擦除且壽命較短。
磁感矯頑力:使磁化至技術(shù)飽和的永磁體的磁感應(yīng)強(qiáng)度降低至零所需要的反向磁場(chǎng)強(qiáng)度稱。
讀卡器通??梢约嫒軭iCo和LoCo兩種磁條,并且HiCo寫卡器一般可以兼容寫入HiCo和LoCo兩種磁卡,而LoCo寫卡器只能寫入LoCo磁卡中。現(xiàn)實(shí)生活中的LoCo磁條一般是淺棕色,而HiCo磁條是深黑色。
目前已知磁卡上有三條磁道,常用的是第一磁道和第二磁道。
第一磁道上的信息有兩種格式:格式A,發(fā)卡方使用,格式B,如下:
起始標(biāo)志——1個(gè)字符(通常是“%”)
格式代碼=“B”——1個(gè)字符(只能使用字母)
主賬號(hào)——最多19個(gè)字符
字段分隔符——1個(gè)字符
國家/地區(qū)代碼——三個(gè)字符
持卡人姓名——2~26個(gè)字符
失效日期或字段分隔符——4個(gè)字符或1個(gè)字符
服務(wù)代碼——3個(gè)字符
自由數(shù)據(jù)——可變,不超過最大記錄長度(79個(gè)字符),通常含有PIN驗(yàn)證相關(guān)數(shù)據(jù);(PVKI, 1個(gè)字符), PIN校驗(yàn)值 (PVV, 4個(gè)字符), 卡校驗(yàn)值或校驗(yàn)碼 (CVV or CVC, 3個(gè)字符)
結(jié)束標(biāo)志——1個(gè)字符(通常是“?”)
縱向冗余校驗(yàn)字符(LRC)——1個(gè)字符
第二磁道:
起始標(biāo)志——1個(gè)字符(通常是“;”)
主賬號(hào)——最多19個(gè)字符
字段分隔符——1個(gè)字符(通常是“=”)
失效日期或字段分隔符——4個(gè)字符或1個(gè)字符
服務(wù)代碼——3個(gè)字符
自由數(shù)據(jù)——可變,不超過最大記錄長度(79個(gè)字符),通常含有PIN驗(yàn)證相關(guān)數(shù)據(jù);(PVKI, 1個(gè)字符), PIN校驗(yàn)值 (PVV, 4個(gè)字符), 卡校驗(yàn)值或校驗(yàn)碼 (CVV or CVC, 3個(gè)字符)
結(jié)束標(biāo)志——1個(gè)字符(通常是“?”)
縱向冗余校驗(yàn)字符(LRC)——1個(gè)字符,讀取時(shí)無返回值,僅供內(nèi)部驗(yàn)證
金融類磁卡中的服務(wù)代碼值的意義:
第一位數(shù)字:
1:國際業(yè)務(wù)
2:可使用IC(芯片)進(jìn)行國際業(yè)務(wù)
5:國內(nèi)及雙邊協(xié)議下的國際業(yè)務(wù)
6:可使用IC(芯片)進(jìn)行國內(nèi)及雙邊協(xié)議下的國際業(yè)務(wù)
7:除外雙邊協(xié)議,沒有業(yè)務(wù)(閉環(huán))
9:測(cè)試模式
第二位數(shù)字:
0:正常
2:開戶方式為網(wǎng)上開通
4:除外雙邊協(xié)議的在線開通
第三位數(shù)字:
0:沒有限制,需要PIN碼驗(yàn)證
1:沒有限制
2:貨貸服務(wù)(非現(xiàn)金業(yè)務(wù))
3:只有ATM,需要PIN
4:只有現(xiàn)金業(yè)務(wù)
5:需要PIN碼驗(yàn)證的貨貸服務(wù)(非現(xiàn)金業(yè)務(wù))
6:沒有限制,可使用PIN碼驗(yàn)證
7:貨貸服務(wù)(非現(xiàn)金業(yè)務(wù)),可使用PIN碼驗(yàn)證
#p#
0×02、俄克拉荷馬州立大學(xué)ID卡
俄克拉荷馬州立大學(xué)ID卡是該大學(xué)官方發(fā)布的身份認(rèn)證卡,用途有:
持卡人身份認(rèn)證
校園特定區(qū)域的門禁卡
一卡通充值
校園網(wǎng)各種功能使用時(shí)的認(rèn)證(http://it.okstate.edu/services/id/)
該卡就長這樣,注意右下角的卡號(hào),目測(cè)每張卡都有唯一的16位卡號(hào)
0×03、YY一下
根據(jù)作者多年刷鉆經(jīng)驗(yàn),目測(cè)該卡有漏洞,可以拿下。以后給自己免費(fèi)沖個(gè)一卡通、冒充班長發(fā)個(gè)帖子罵班主任、半夜悄悄溜進(jìn)女生宿舍什么的,全部將成為現(xiàn)實(shí)!
0×04、說干就干
首先發(fā)現(xiàn)每張卡的ID都是以數(shù)字“60383800”開頭的,這一段之后的兩位經(jīng)過分析只有“05”、“06”、“11”三種情況。
最后六位,我們把他成為尾數(shù),是0~9的隨機(jī)數(shù)。也就是說總共有100萬種可能的卡號(hào),加上前面的三種前綴,總共就是300萬種可能性。
而這個(gè)地址可以供我們查看ID是否有效:https://app.it.okstate.edu/idcard/
這個(gè)網(wǎng)頁允許任何人輸入16位的ID號(hào)來查詢?cè)摽ㄌ?hào)是否合法。
一個(gè)合法的ID查詢后將顯示如下結(jié)果:
如果卡號(hào)不合法,顯示結(jié)果是這樣:
卡號(hào)查詢返回的內(nèi)容有:
卡號(hào):輸入的ID號(hào)碼
ID卡狀態(tài):有效或無效
就業(yè)狀況:持證人當(dāng)前的就業(yè)情況
學(xué)生狀態(tài):持證人目前的報(bào)名情況
其他:備注及銀行卡信息等
這個(gè)查詢頁面有一個(gè)免責(zé)聲明:“使用這項(xiàng)查詢功能的IP將被記錄”,設(shè)計(jì)的本意是防止其他地區(qū)的用戶未授權(quán)訪問,但是IP地址是可以通過代理來偽裝的,這是連小學(xué)生都知道的常識(shí)。
從這里http://www.rakuten.com/prod/usb-3-track-magnetic-credit-card-reader/240738725.html 花25美元購買一個(gè)USB的磁條閱讀器就可以對(duì)ID卡進(jìn)行解碼。
將我們的學(xué)生卡解碼后,得到如下信息:
%B6038380006514029^SNELLING/SAMUEL R ^491212000000000 000 ?;6038380006514029=49121200000000000000?
對(duì)照我們之前講的磁道結(jié)構(gòu),可以得出:
第一磁道:
%B
ID卡號(hào)
^
持卡人姓名
^
過期時(shí)間: 49/12
服務(wù)代碼: 120
自由數(shù)據(jù): 000000000 000
?
第二磁道:
;
ID 卡號(hào)
=
過期時(shí)間:49/12
服務(wù)代碼: 120
自由數(shù)據(jù): 0000000000000
?
最有趣的兩項(xiàng)是:所有人的過期日期都是49/12,所有自由數(shù)據(jù)部分(驗(yàn)證PIN碼)都是空的(0填充)。#p#
0×05、梳理頭緒
到現(xiàn)在為止,我們得到以下線索:
該校所有的老師和學(xué)生都有這種ID卡
所有卡的前八位都是60383800
所有卡的第九第十位只有三種:05、06、11
有大約300萬種可能的卡號(hào)
有一個(gè)現(xiàn)成的網(wǎng)站可以查詢ID卡號(hào)的有效性,這個(gè)站可能會(huì)記錄我們的IP
所有卡的過期時(shí)間一致,都是49/12
所有卡的自由數(shù)據(jù)部門都是空的(0填充)
0×06、祭出神器
我們使用unitech生產(chǎn)的MSRC206磁條讀寫器(light教授友情提示:我們?nèi)A強(qiáng)北生產(chǎn)的也不差)。這一一款商業(yè)級(jí)的磁條讀寫器,支持HiCo和LoCo的磁卡,并具有相當(dāng)牛逼的編碼器,可以覆蓋現(xiàn)有的HiCo卡。
接下來是激動(dòng)人心的磁卡復(fù)制環(huán)節(jié),步驟如下:
插上MSRC206電源,連接電腦 - 允許安裝驅(qū)動(dòng)程序
安裝MSRC206附帶的軟件
等待MSRC206連接到MSRC206軟件
點(diǎn)擊軟件右側(cè)的“讀取”按鈕
將源卡刷卡,獲取其經(jīng)過編碼的數(shù)據(jù)
點(diǎn)擊軟件右側(cè)的“寫入”按鈕
將空白卡刷卡,寫入數(shù)據(jù)
源卡數(shù)據(jù):
%B6038380006514029^SNELLING/SAMUEL R ^491212000000000 000 ?;6038380006514029=49121200000000000000?
復(fù)制到空白卡的數(shù)據(jù):
%B6038380006514029^SNELLING/SAMUEL R ^491212000000000 000 ?;6038380006514029=49121200000000000000?
修改持卡人姓名后復(fù)制到空白卡的數(shù)據(jù):
%B6038380006514029^PETE/PISTOL ^491212000000000 000 ?;6038380006514029=49121200000000000000?
對(duì)比一下:
%B6038380006514029^SNELLING/SAMUEL R ^491212000000000 000 ?;6038380006514029=49121200000000000000?
%B6038380006514029^PETE/PISTOL ^491212000000000 000 ?;6038380006514029=49121200000000000000?
這里有個(gè)注意點(diǎn):我們修改了持卡人姓名,但是卡號(hào)沒有改。
左上方為刷入了修改姓名后數(shù)據(jù)的復(fù)制卡,右上方為源卡數(shù)據(jù)直接復(fù)制的復(fù)制卡,左下方是源卡,右下方同右上。
背面照:
0×07、提槍上陣
我們的猥瑣團(tuán)隊(duì)開始在各種場(chǎng)合使用這些復(fù)制的空白卡。
首先,我們讓團(tuán)隊(duì)的老三辦理了一張新卡(學(xué)校官方發(fā)的)去圖書館使用,結(jié)果那里的管理員說這個(gè)ID不在系統(tǒng)中,如果的卡是新辦的,那么一般需要幾天時(shí)間來等待服務(wù)器的同步。從這個(gè)行動(dòng)中我們了解到學(xué)校圖書館每次在使用ID卡時(shí)并不是實(shí)時(shí)和服務(wù)器進(jìn)行驗(yàn)證,而是每隔幾天從服務(wù)器同步新的內(nèi)容保存在本地使用。
接下來,我們又派團(tuán)隊(duì)的老皮拿著復(fù)制卡在校園里到處鋪張浪費(fèi),大家可以翻墻看我們錄制的演示視頻:http://youtu.be/Bw2Ugezb7Fs
以上的測(cè)試中我們得到幾點(diǎn)經(jīng)驗(yàn):
1、雖然復(fù)制卡看起來比較奇怪,但是在我們帥氣的隊(duì)友色誘下,工作人員還是接受了白卡。
2、復(fù)制卡的持卡人姓名修改后,消費(fèi)時(shí)的單據(jù)上看到的依然是源卡持卡人姓名,這就說明在校園銷售系統(tǒng)中,消費(fèi)時(shí)數(shù)據(jù)與服務(wù)器實(shí)時(shí)核驗(yàn),確保ID卡的有效性。但是持卡人姓名并沒有做檢測(cè)。#p#
0×08、整裝待發(fā)
有了上面的試驗(yàn)和經(jīng)驗(yàn),我們?cè)俅慰偨Y(jié)一下現(xiàn)在掌握的信息:
該校所有的老師和學(xué)生都有這種ID卡
所有卡的前八位都是60383800
所有卡的第九第十位只有三種:05、06、11
有大約300萬種可能的卡號(hào)
有一個(gè)現(xiàn)成的網(wǎng)站可以查詢ID卡號(hào)的有效性,這個(gè)站可能會(huì)記錄我們的IP
所有卡的過期時(shí)間一致,都是49/12
所有卡的自由數(shù)據(jù)部門都是空的(0填充)
Unitec的MSRC206可以讀取、編輯和重新編碼磁條
圖書館驗(yàn)證ID卡時(shí)并不是實(shí)時(shí)連接服務(wù)器的
白卡(復(fù)制卡)拿去消費(fèi)也是會(huì)被工作人員接受的
銷售系統(tǒng)是與服務(wù)器實(shí)時(shí)通信驗(yàn)證的
銷售系統(tǒng)不進(jìn)行持卡人身份驗(yàn)證
0×09、擴(kuò)大戰(zhàn)果
現(xiàn)在所掌握的信息已經(jīng)足夠我們進(jìn)行大規(guī)模行動(dòng)了。
首先,我們寫了個(gè)基于node.js的網(wǎng)絡(luò)小腳本,不用說你也猜到了,我們將對(duì)校園里的有效卡號(hào)進(jìn)行爆破!
代碼:
var cheerio = require('cheerio'),
request = require('request'),
fs = require('fs'),
headnumber = '06';
for (var i=1; i <= 100; i += 1){
var tailnumber = '';
while (tailnumber.length < 6)
tailnumber = tailnumber + '' + [0,1,2,3,4,5,6,7,8,9][Math.floor(Math.random()*9)];
request.post('https://app.it.okstate.edu/idcard/index.php/module/Default/action/IDCardEntry', {form:{card_id:'60383800'+headnumber+tailnumber}}, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = ch3eerio.load(html);
$('td.formText').each(function() {
var text = $(this).next().text();
fs.appendFile('osu_ids.txt', text+';', function(err){});
});
fs.appendFile('osu_ids.txt', '\r\n', function(err){});
}
});
}
由于所有ID卡自由數(shù)據(jù)部分(驗(yàn)證PIN碼)都是空的(0填充),再加上服務(wù)器不對(duì)持卡人身份進(jìn)行驗(yàn)證,我們可以利用爆破的有效卡號(hào)大規(guī)模制作復(fù)制卡,然后拿來做各種猥瑣的事情。
這樣造成的危害是遠(yuǎn)遠(yuǎn)超出很多人想象的,試想一下,剛剛充值了500萬的一卡通突然只剩下零頭;莫名其妙被學(xué)校警告借了圖書館1000本書沒有還;悠閑地走在校園里突然過來兩個(gè)保安把你架住說你昨晚猥褻女同學(xué)……
0×10、回歸和諧
接下來的步驟將帶我們逃離上述的可怕情景,回歸平靜、和諧的校園生活,但實(shí)施起來會(huì)有點(diǎn)痛苦。
立即下線ID卡號(hào)查詢網(wǎng)站 https://app.it.okstate.edu/idcard/
重新設(shè)計(jì)ID卡
每個(gè)人都重新發(fā)一張新的ID卡
審核、測(cè)試涉及ID卡的所有系統(tǒng)
所有系統(tǒng)對(duì)驗(yàn)證事務(wù)進(jìn)行嚴(yán)格檢查
添加雙重驗(yàn)證
*參考文檔:http://en.wikipedia.org/wiki/Magnetic_stripe_card
原文地址:http://snelling.io/hacking-oklahoma-state-university-student-id