RFID 安全之某学校饭卡破解

本文只作技术研究之用,请勿用于非法用途,否则后果自负。

继上次水卡的成功破解,对学校的饭卡也有点想要研究的念头了。既然这样,打铁趁热马上开始动手,先拿出 MCT 测试一下卡类型和扇区情况先。(不了解相关工具和术语的去看看之前的水卡破解案例以及M1 卡结构和破解探究

0 扇区并没加密,所以还是可以用跟水卡破解一样的手法,M1 卡的验证漏洞,具体过程就不再阐述了,可以去翻看一下之前写过的,破解出密钥之后就重点来分析下算法。其实这跟软件破解是一样原理,我们需要的不是破解密钥的方法,而是从根源上将算法破解,破解密钥简单几步没任何电脑基础的都能完成,正如学编程不是学语法而是不断提高自己的程序思维,这样我们才能学到东西。

在我破解了密钥之后,我直接将 Key 导入了 MCT 中,直接用 MCT 读取,比起用十六进制编辑器,我倒很喜欢有 M1 卡特有结构高亮功能的 MCT,毕竟是专门用于 Mifare 卡的工具,卡中数据十分直观。仔细看看,1、2、10 扇区存在数据,想要数据分析必须有多组数据,找同学借了几张卡来做对照。一轮对比过后,发现我的卡又是比较奇葩的,所有人的卡都是 1、2 扇区存在数据,只有我的 10 扇区有数据,纳闷啊……

把 10 扇区清空,忙着生命危险跑去小卖部试了试,发现一切正常,好了,我是奇葩……

我消费了几次,拿回来之后发现,都是 2 扇区的扇区数据发生了变化,基本可以确定钱的数据就在 2 扇区,那 1 扇区到底是干嘛的呢?尝试清空 1 扇区,再去小卖部试卡,一切正常。猛然想起,学校旧的热水系统是使用饭卡的,今年更换了新系统之后才换的卡,估计 1 扇区就是旧热水系统的了,机器现在已经不复存在了,果断清空。

重点来看看饭卡的数据,直接用电脑的十六进制编辑器打开 Dump 文件,就发现 2 扇区 0 段有我的名字的存在,这里是使用 GBK 内码保存的汉字,然后我尝试将刚刚在消费机上看到的卡号转成十六进制,在名字前不远的地方就发现了痕迹,那现在尝试下修改姓名和卡号。

Content Hidden.You Need To Login.

抱着赴死的心再去小卖部(小卖部的阿姨已经开始注意我这个鬼鬼祟祟的小子了),在众多掩护之下拍下了这个结果图,成功了。

接下来就到了最振奋人心的修改金额了,经过前面几次消费的分析,我发现 2 扇区除了 0 段和 3 段之外,中间的两段数据都是发生了改变,并且每次都只有其中一行发生改变,这个问题困扰了我将近一天时间,最后在某个时刻茅塞顿开,终于想明白了。卡中的两字节数据变化,泄露了这两行数据的用途。

Content Hidden.You Need To Login.

01BF 和 01BE 不刚刚好相差 1 吗?于是去小卖部多消费了几次,再结合之前充值的几次记录,终于发现,这个值每交易一次就会加 1。这应该就是交易的次数记录了,问同学借了一张刚刚充值过的卡,发现不管是充值还是消费在这里都记录了最近两次的消费记录,并且第一行是记录奇数次的,第二行是记录偶数次的,这也就造成了之前为什么变化的位置不通。知道这个规矩之后后面的工作就简单得多了,每一行肯定是代表了一次消费记录,其他数据干什么用对于我们的分析也不会造成太大的干扰。

Content Hidden.You Need To Login.

将我现在饭卡的余额转换成十六进制,马上就发现了前 8 位就是记录了这次交易后的余额,紧接着的就是这次的交易的金额,再接着就是消费次数,后面还有很长一段数据应该是消费机的编号了(这个会在后续继续破解,目前暂时没有头绪),尝试着将饭卡按这个规律计算了一次,将卡修改成一百多块钱,结果如下图。

Content Hidden.You Need To Login.

一切弄好之后写入到新卡,拿去测试,一切正常,使用非常完好,到此为止饭卡也被全部破解了。改个强悍点的数值看一看。

Content Hidden.You Need To Login.

不过数据修改了也并没什么卵用,只是能看一下,警告一下想要免费蹭饭的人,所有饭卡系统都是联网的,一分钱的数据都会同步到服务器,修改了拿去用了,你就等着警察上门吧。

此次破解总耗时接近 7 天,而且还有一些隐晦数据没有清楚用途,后期继续进行研究。

解决方案:

  1. 更换更安全的 CPU 卡,现在 CPU 卡可以模拟 M1 卡格式,但安全系数比逻辑加密的 M1 安全得多。

  2. 将现有卡片升级到一卡一密,并且保证扇区全加密,一卡一密可以很大程度保护现有的旧 IC 卡系统。

  3. 将系统设置成联网效验,联网效验是目前最安全的一种智能卡操作模式,可以很好的保护该系统。

Tags: 破解, 安全, RFID, 极客, Mifare, M1, S50, 黑客, 饭卡

110 Comments

  1. 新奧 新奧

    Good

  2. 来自19年的回复

  3. saber saber

    可以留下联系方式吗,我想学

  4. leifengwl leifengwl

    感谢分享,学习了!

  5. 雷疯 雷疯

    感谢分享,学习了

  6. Yuan Yuan

    楼主您好,请问想JAVA CARD 这种CPU卡 如JCOP31 如何才能进行读写呢,PM3 122什么的都不能读写

  7. 可以分享一个手机用OTG数据线连接ACR122U的软件吗?非常感谢!

  8. مەرىي مەرىي

    三年过去了,这个方法还能用吗

  9. fyh fyh

    支持作者!

  10. zhaohaobo zhaohaobo

    看了几篇大神的文章,留个名,敢问大神最近在忙什么,为什么不更新了

  11. 时空酱 时空酱

    呵呵红红火火恍恍惚惚哈哈哈哈

  12. Meteor Meteor

    然而我自己的现在还没分析出来

  13. lucis lucis

    最后两位效验码的规律一直没发现

  14. xx xx

    将饭卡的数据(除了uid)复制到M1白卡上,能够正常使用吗

  15. I am God I am God

    hi goodday

  16. xiaoping xiaoping

    过程很生动,结果也很美妙,有关公司可以注意起来了

  17. Andy Andy

    test123

  18. lucis lucis

    很多显示要登录后 才能看 在哪里登录呢?Content Hidden.You Need To Login.

  19. 黑鹰 黑鹰

    →_→淡定

  20. nickname nickname

    查看下

Write a new comment