架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 27215|回复: 1

RFID安全之校园水卡破解教程,破解校园水卡

[复制链接]
发表于 2014-10-27 10:07:21 | 显示全部楼层 |阅读模式
这次的主角是学校可怜的水卡(热水卡)
12057ecb0a46f21f4f19e3dff4246b600d33ae59.jpg
74fa36fa828ba61ef73f7aa34334970a324e59bc.jpg

用NFC手机上安装的MCT(Mifare Classic Tool)查看,水卡的确是Mifare Classic 1k类型的
cd35543d269759eedd7bdd47b0fb43166c22df67.jpg

此次破解用到的工具有:电脑一台,ACR122U一台,带NFC功能的手机一台,水卡一张


在进行破解工作之前,我们要为电脑搭建相应的环境,大家需要在电脑上安装.NET Farmwork 4以及Java,请自行上网下载安装,后面用到的软件依赖这两个运行库。
caeb47a7d933c895461d25f7d31373f08302002e.jpg

安装完运行库之后就需要安装ACR122U的驱动了(文章后附软件链接),为了方便后续的开发,我将SDK也一并安装。
86d968224f4a20a4a1a4814b92529822700ed0d0.jpg

9c21386d55fbb2fba099e59e4d4a20a44423dcd8.jpg

10f6b3003af33a87e320bd96c45c10385243b538.jpg

安装完驱动和SDK之后,把ACR122U连接电脑,设备就能正常工作了。把我们的水卡放上去,ACR122U的蜂鸣器就会响并且LED的颜色也会改变
5af2fddcd100baa1bc8bfa374510b912cafc2ee2.jpg

验证漏洞可利用的程序是mfoc,mfoc在Windows上的版本叫mfocgui,但mfocgui对于刚刚接触RFID安全的同学来说有点麻烦,所以这次直接采用M1卡服务程序(其实就是简化版的mfocgui)。
abc918950a7b0208b42b826d60d9f2d3552cc8a8.jpg

打开之后,程序界面非常简洁,只有一个按钮,就是开始破解。在读卡器列表那我已经见到我的ACR122U了,所以直接按开始破解就可以
11e52d34349b033b5ab9405617ce36d3d439bd5c.jpg

然后接下来就等待程序自己破解密钥。
fc14b3fd5266d01683cf23a4952bd40737fa35b3.jpg

不用很久,就看到所有扇区都被打勾了,破解成功了。
0601c6fdfc039245af9b5d838594a4c27c1e255b.jpg

破解成功后根目录就生成了这张卡的dump文件了,大小是1kb,整张卡就被读取出来了。
f154063b5bb5c9ea16d9bf6fd739b6003bf3b367.jpg

但mfoc原本是运行在Linux环境下的,移植到Windows下的mfocgui生成的dump文件是并不能直接使用的,还需要一个修复工具fixdump(下载fixdump),将1kb的dump文件修复成4kb的dump文件才行。
c2c72d381f30e9247f8320bd4e086e061c95f763.jpg

fixdump是命令行操作,并且必须安装了.NET Farmwork 4运行库才可以使用,为了方便命令操作,我们将dump文件拷贝到fixdump的目录里,打开cmd进行修复。命令很简单,直接“fixdump ”就可以,生成的文件会直接覆盖源文件。
f635878ba61ea8d3a2e5c988950a304e271f5842.jpg

修复完成后,用UltraEdit或者WinHex之类的十六进制编辑器打开,就可以看到dump文件的数据了。
559d9d22720e0cf33bcbf2770846f21fbf09aa4a.jpg

看到上图我用方框框着的数据了吗?这就是卡扇区的控制段,其中前6字节和后6字节的FFFFFFFFFFFF就是这个扇区的密码,中间的FF078069就是控制位,还不清楚M1卡的结构的可以去看看这篇介绍M1卡结构文章。


知道密码之后,我将密码导入MCT中,开始读取卡片的数据了。
648ba8345982b2b7cb30854833adcbef74099bda.jpg

由于MCT自带数据高亮的功能,我们可以清楚的看到4扇区中有两行值块,我卡中现在的余额是32.31,我们根据值块的计算规矩进行计算,不清楚值块的还请去看看介绍M1卡结构的文章。值块的数值是两次不取反一次取反,并且保存在最低的地址里面的。看到第一个值块,0C9F,因为计算机数据是倒序存入的,所以就是真正的数据就是9F0C,换成十进制就是3231。中间那段的60F3是取反保存的,60F3倒序一次是F360,换成二进制就是1111001101100000, 取反一次就是0000110010011111,换成十进制就是3231。最后一段跟第一段一样,都是不取反保存。末端的11和EE就是地址,可以忽略不计,只要后面记得地址保持一致就可以。到此为止,卡的数据因为并没有采取任何加密导致被破解,现在我将卡的钱修改成999.99试试,999.99元应该是十进制99999,十六进制就是01869F,倒序一次结果就是9F8601 ,其他几位一样原理计算, 或者我们可以用MCT自带的值块计算工具计,最终算出结果如下图。
a94e850a19d8bc3ee8a3ba46808ba61eaad345e6.jpg

将数据写入到卡里,现在就是去机器实践的时候了。
89c76b061d950a7bcf97f24808d162d9f0d3c9e8.jpg




上一篇:以后论坛就不更新了,坐等百度开始收录内页后再更新。
下一篇:教你秒变iPhone6 (安卓用户勿进)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2014-11-10 17:23:59 | 显示全部楼层
大赞。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-5-18 10:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表