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, 黑客, 饭卡

96 Comments

  1. مەرىي مەرىي

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

  2. fyh fyh

    支持作者!

  3. zhaohaobo zhaohaobo

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

  4. 时空酱 时空酱

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

  5. Meteor Meteor

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

  6. lucis lucis

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

  7. xx xx

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

  8. I am God I am God

    hi goodday

  9. xiaoping xiaoping

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

  10. Andy Andy

    test123

  11. lucis lucis

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

  12. 黑鹰 黑鹰

    →_→淡定

  13. nickname nickname

    查看下

  14. rt rt

    rt

  15. YE YE

    ss

  16. Neat Neat

    https://www.zhihu.com/question/40078360#answer-29921287

    有人转载这篇文章....

  17. 你好 博主 我想问问 你是怎么修改饭卡数据的呢 直接跳过了额 是十六进制的吗?关于姓名我也没懂

  18. CainXie CainXie

    http://weibo.com/3880503940/D3uAXw31C?type=comment#_rnd1447324279322
    恭喜你文章被微博營銷號轉載,營銷博轉載不但沒添加原作者署名反而添加自己的水印

  19. 墨夜 墨夜

    用什么应用读取的?

  20. 李浪浪 李浪浪

    看了你这教程 M1卡咋破解

Write a new comment