当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2011-03701

漏洞标题:某公司员工卡金额校验算法破解

相关厂商:某奇怪公司

漏洞作者: insight-labs

提交时间:2011-12-21 21:55

修复时间:2012-02-04 21:55

公开时间:2012-02-04 21:55

漏洞类型:成功的入侵事件

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-12-21: 细节已通知厂商并且等待厂商处理中
2011-12-21: 厂商已经确认,细节仅向厂商公开
2011-12-31: 细节向核心白帽子及相关领域专家公开
2012-01-10: 细节向普通白帽子公开
2012-01-20: 细节向实习白帽子公开
2012-02-04: 细节向公众公开

简要描述:

某公司的员工卡使用了RFID技术,其为Mifare Classic 1k卡,有2种功能:1是门禁系统,2是消费系统,可谓一卡走遍某公司大厦。
但其消费系统的实现存在缺陷,导致可以任意构造消费数据进行非法消费。

详细说明:

首先来看一个某公司员工卡的数据,如下图:


观察发现只有第五扇区有数据,其他扇区均为空,那么我们只分析此扇区的4个block的数据结构就可以了。
首先我借来同事的员工卡,分别进行对比分析,想先确定出来哪些部分是常量,哪些部分是变量。


上图为A,B,C,D,E 五个员工卡的第五扇区数据,
首先,蓝色矩阵框所在的block是Access Control Block,而蓝色矩阵框就是Key A,后面的FF 07 80 69是访问控制位,Key B为默认的全FF。注意这里所有的卡的Key都是相同且永远不变的。
然后看红色矩阵框,这里也是每个员工卡都相同的值,且永远不变。再看绿色矩阵框,
这里按入职的顺序排列,可以认为是发卡顺序,每个员工卡都是唯一的值,且永远不变。
这样block 16(图中00000100h)和block 19(图中00000130h)就分析完了,都是常量,
剩余的block 17和block 18都是变量,每次刷卡其中的值都是不断变化的,请看下图:


经过观察分析发现,block 17和block 18每次刷卡后数据都会对调。红色矩阵框是余额,比如第一次刷卡前余额为5.60元,对应60 05 00刷卡后为4.50元对应50 40 00,第二次刷卡前余额为4.50元,对应50 04 00,刷卡后为3.50元,对应50 03 00,之后两个block数据对调。这里的50代表五角零分,03代表零十三元,00代表零千零百元。
绿色矩阵框是消费日期,这里第一次数据中block 17里是11月07日,是上次消费的日期,本次是11月10日。
蓝色矩阵框是当日消费总额,每天清空一次。比如第一次的数据block 17是09 00,说明在11月7日此卡总共消费了9元,然后11月10日这天,第一次消费了1.10元,第二次消费了1.00元,所以1.10 + 1.00 = 2.10,依次类推。
粉色矩阵框是消费的时间,14 09即是下午14点09分。
最后是黄色矩阵框,这里是校验位,分析发现其算法很简单,是当前余额的数字之和与FF异或的结果,比如第一次刷卡的数据中block 18是ab,余额是50 04 00,这里
50+04+00=54,然后54 xor FF = ab
至此某公司员工通消费系统算法完全被攻破。

漏洞证明:

我们可以由算法推算一下数据,假如今天11月11日 ,15:00分充值50元 数据将为
block 18: ff 00 00 00 11 10 00 05 60 00 14 27 00 00 00 00
block 17: fa 00 50 00 11 11 00 00 00 00 15 00 00 00 00 00

修复方案:

修改为复杂算法,或一次一密,即每次刷卡Key的值都在变化。

版权声明:转载请注明来源 insight-labs@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2011-12-21 21:59

厂商回复:

多谢!猜测这个会一样影响到很多其他的公司

最新状态:

暂无


漏洞评价:

评论

  1. 2011-12-22 08:06 | piaoye ( 普通白帽子 | Rank:343 漏洞数:53 | ww)

    RFID是个方向,抽空得学习下了,不然连门都进不去何谈安全啊!

  2. 2011-12-22 15:43 | Anthr@X ( 路人 | Rank:8 漏洞数:2 | Where there's a will,there's a way.)

    来顶了

  3. 2011-12-22 19:12 | s!lly3r ( 实习白帽子 | Rank:52 漏洞数:2 )

  4. 2011-12-22 19:16 | yangff ( 路人 | Rank:1 漏洞数:1 | 介绍写什么呢?)

    某家奇怪的公司准备攻略别的公司么=v=

  5. 2011-12-23 00:28 | zhuowater ( 路人 | Rank:15 漏洞数:2 | 程序员一枚,求妹子一枚)

    小心坠入魔道

  6. 2011-12-23 12:23 | Kevin2600 ( 实习白帽子 | Rank:62 漏洞数:4 | There is no fate, but what we make ...)

    嘿嘿...我也知道某个做电信设备的大公司...他们的门禁卡有问题...不是M1 哦!

  7. 2012-01-20 23:47 | 梦想肥羊 ( 实习白帽子 | Rank:89 漏洞数:18 | 博客:dnswalk.blog.163.com)

    oh~神贴~

  8. 2012-02-04 03:32 | 孤独浪子 ( 实习白帽子 | Rank:36 漏洞数:10 | hack30@qq.com)

    上海电信公司某童鞋已经邪恶了下

  9. 2012-02-04 23:10 | 歌颂 ( 实习白帽子 | Rank:36 漏洞数:5 | #1024)

    膜拜

  10. 2012-02-05 00:57 | tnt1200 ( 普通白帽子 | Rank:121 漏洞数:17 | 关注飞机安全....)

    呵呵,学习了!

  11. 2012-02-05 02:47 | Blackeagle ( 实习白帽子 | Rank:62 漏洞数:10 | 向WooYun致敬)

    厂商的意思是。。你们懂的~

  12. 2012-02-05 03:44 | 木木 ( 路人 | Rank:15 漏洞数:4 | 扯淡的人生。)

    有时间测试我们单位。

  13. 2012-02-06 11:47 | Aの碎碎念 ( 路人 | Rank:11 漏洞数:4 | 腐宅求妹子~)

    哈哈,这个碉堡了~

  14. 2012-02-08 09:01 | 路人乙 ( 普通白帽子 | Rank:147 漏洞数:29 | 中国移动不厚道,说给礼品也不给!)

    uid都可以改写了。呵呵。

  15. 2012-02-08 15:01 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    玩归玩 不要真触犯法律啊 ~

  16. 2012-02-08 15:05 | X-Secure ( 路人 | Rank:6 漏洞数:2 | 扭啊扭啊扭~~~)

    厂商的意思……我懂的……

  17. 2012-04-03 01:23 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    学习了。

  18. 2012-04-04 12:35 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    外部关联:(1)《从乌云的错误漏洞分析看Mifare Classic安全》:http://radiowar.org/?p=184 (2)@RadioWar 对此文的补充解释:http://t.qq.com/p/t/55235042671410

  19. 2012-04-04 16:40 | liyang ( 路人 | Rank:25 漏洞数:11 | 低调 沉默 守望)

    http://radiowar.org/?p=184我是小白,只是通知一下。

  20. 2012-04-04 17:08 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    把东西讲简单,而不是讲复杂,多么幼稚的技术注重分享而不是炫耀攀比,我顶insight-labs,第一个分享这方面详细过程的人

  21. 2012-04-16 12:33 | 墨水心_Len ( 实习白帽子 | Rank:70 漏洞数:15 | PKAV技术宅 | 每一个有文化的东西,我们都...)

    既简单又生动。

  22. 2012-06-27 00:17 | 北洋贱队 ( 普通白帽子 | Rank:252 漏洞数:25 )

    最近购买了设备 正在研究

  23. 2012-06-27 10:04 | 一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | ‮‮PKAV技术宅社区-安全爱好者)

    @北洋贱队 设备贵么?我想买个磁条的;这个卡常见一点~

  24. 2012-06-27 15:13 | 北洋贱队 ( 普通白帽子 | Rank:252 漏洞数:25 )

    @一刀终情 Proxmark3 229 美金ACR122 300 人民币