RFID 安全之某学校水卡破解后记 — 不留后患

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

前不久把某学校的水卡顺利破解了(不了解事情经过的看 上一篇文章),看似很顺利,但最近偶然发现一些细节问题,细心的话可能也有人留意到,卡中的数据除了两个值块保存余额之外,还存在其他的数据,虽说学校的热水系统不联网,但要是机器自带日志记录,把我卡记录下来那不就完蛋了?所以此次要斩草除根,免得引来无穷后患。

要掌握规矩,肯定要有多组数据对比,找同学借了两张正常未经修改的水卡进行读卡,结果分别如下。

纳闷的发现除了我的卡之外,其他卡的 1 扇区都是没有数据的。果断把自己卡的1扇区清空了,拿去饮水机测试,使用一切正常,不知道是哪个这么无聊把数据写进去的,继续研究。

可以发现,所有卡的 4 扇区的 0 段开头都有 0400,并以 C5AE 结尾,貌似这是一个校验位,把它清零,拿去饮水机测试,发现是 Error,看来这个位的确是校验用的,可以保持一致,重点来分析下 5 扇区那段数据。

似乎发现了点端倪,除了开头的 FA5C 0000 05AC FFFF 和对照卡不一样之外,其他数据都相同。接着试试除了这 8 字节的开头保留,其余清零,在饮水机上测试,一切正常,回来再次读卡的时候又重新生成了一样的数据,可以排除影响。

接着将这8字节开头清零,拿去饮水机消费,发现提示 Error,看来的确是一个校验,我们必须保证对数据的敏感,可以看到 0000 和 FFFF,两个值恰好是取反了一次,那 FA5C 和 05A3 是不是也一样?FA5C 转成二进制是 1111101001011100,05A3 转成二进制是 0000010110100011,结果很清楚,两个值是互相取反保存,那我将它修改成 0000 和 FFFF,其余部分清零,拿去饮水机测试,一切正常。

到此为止,水卡的校验也被破解了,为了保险起见,将水卡的无用数据清零,并用 0000 和 FFFF 代替取反的值,痕迹就被清理干净了。

Tags: 破解, RFID, 极客, Mifare, M1, S50, 黑客, 水卡, 热水卡

16 Comments

  1. Scorpio Scorpio

    一个初学者

  2. evnydd0f evnydd0f

    很厉害 受教了。

  3. 严雨烟 严雨烟

    大神,我dump数据之后,得到了四个密码,但是导入mct后,发现14和15扇区密码a全是--。控制位和密码b都正常,数据也可以显示,但是不可以修改,mct提示说密码a未知。我在详细对比了一下卡中数据后发现,0扇区数据和dump中的密码a有相同部分。但是mct读出来0扇区的数据却和dump中的不同。不知道密码a被加密还是怎么回事,希望大神教教我

    1. 可能是控制位问题,dump中的密码绝对没问题的

  4. 路飞 路飞

    我在小米3手机上安装了一个mifare classic tools ,

    总是出现 not a mifare classic tag! 这个消息。不知如何解决。。。。求教下。
    谢谢!!!

    1. 可自行翻译,不是Mifare标签,所以不支持

      1. 林乔 林乔

        博主救命!我的卡我自己改了以后不能用了 有人说是校验位错了 帮帮我吧

        1. 校验位错了没得教,换卡吧

      2. 路飞 路飞

        那直接拿其他卡的信息覆盖掉 校验和金额,这样会不会安全?
        还有机器自带那个卡记录,貌似没问题吧。怎么会查出来?

        1. 直接复制就是重放攻击,金额少还是看不出问题的

          1. 恩是的

          2. 路飞 路飞

            嗯,明白了。这样相当于一张新卡在使用,没有多余的记录。灰常安全。谢谢!

          3. 如果卡中有数据是负责记录用卡记录和持卡人身份的,或者是机器做的使用日志,那很有可能就被排查,既然不影响使用,痕迹当然要清理干净,以防后患

          4. 路飞 路飞

            虽说学校的热水系统不联网,但要是机器自带日志记录,把我卡记录下来那不就完蛋了?
            博主说的那些我知道,但是这句话让我很疑惑,前面写的那篇文章,卡都能正常使用了。还有其他数据认证就没别要管它了,怎么会留下后患?那后患是怎么查出来的?

          5. 用对比法啊,清空数据之后,如果还可以正常使用,则表示那段数据不参与验证过程,如果不可以使用了,则证明数据参与到验证过程中了,需要找出它的算法

          6. 路飞 路飞

            那个记录是怎么回事,是怎么查出异常的?能说下原理吗?

Write a new comment