
这次案例的主角是某学校可怜的水卡(热水卡),先小小地上镜一下先。


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

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

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

安装完运行库之后就需要安装ACR122U的驱动了(驱动下载(百度云) ,SDK下载(百度云) ),为了方便后续的开发,我将SDK也一并安装。



安装完驱动和SDK之后,把ACR122U连接电脑,设备就能正常工作了。把我们的水卡放上去,ACR122U的蜂鸣器就会响并且LED的颜色也会改变。
在此之前我已经尝试过用MCT自带的常见的密钥去访问水卡,发现有部分扇区使用的不是默认密钥,被加密了,对于这种不是所有扇区加密的卡,我们可以采用验证漏洞把其他扇区密码破解出来。

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