漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-079123
漏洞标题:辉煌国际饭卡可被无限复制篡改从而可免费吃饭(射频卡设计安全隐患)
相关厂商:九鼎辉煌
漏洞作者: Ano_Tom
提交时间:2014-10-13 00:24
修复时间:2015-01-11 00:26
公开时间:2015-01-11 00:26
漏洞类型:设计错误/逻辑缺陷
危害等级:高
自评Rank:15
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-10-13: 细节已通知厂商并且等待厂商处理中
2014-10-16: 厂商已经确认,细节仅向厂商公开
2014-10-19: 细节向第三方安全合作伙伴开放
2014-12-10: 细节向核心白帽子及相关领域专家公开
2014-12-20: 细节向普通白帽子公开
2014-12-30: 细节向实习白帽子公开
2015-01-11: 细节向公众公开
简要描述:
继上次免费用水后,这次该免费吃饭了。辉煌国际里各店家均使用该卡,附近的联想、百度、神舟数码、天融信公司的员工都会去消费。
详细说明:
通过之前的多次消费数据对比,获知的信息如下,有效数据存储区域为第08扇区,大致如下
图为刚开卡时的数据内容,有效金额为20.00,2000其16进制为07 D0
首先通过加密算法缺陷可以获取其全扇区的内容,分析对比可以篡改卡的数据,首先是克隆已知卡。
读取原始卡的数据,其08扇区数据内容如下
剩余金额为0A8C=2700 即27元。将该卡获得的数据写入到两张空白卡(可改写uid的)里,标号为1号、2号
如图
测试三张卡的余额如下图(漂亮妹子看到我的卡说,这个卡也可以刷么。"可以,不信你看")
测试发现,每张卡都可以消费,而且剩余金额互不影响。所以如果三张卡都可以消费,而且消费的金额超过了27元那肯定是存在缺陷的。
三张卡的消费如图
吃的麻辣香锅,价格为23元(菜加一碗米饭)+1元(一碗米饭)
1.1号卡刷了10元,清单如下,剩余金额为17元。
2.2号卡刷了14元,剩余13元,如下图
3.原始卡消费了3次,第一次为1元的米饭,第二次为10元的大杯奶茶,第三次为12元的两个驴肉火烧,如图
所以总共的消费金额为10+14+23=47元,三张卡总的剩余为34元,从而证实复制的多张卡可以正常消费,从而免费吃饭。
战果如图。
接下来测试篡改卡的金额,看是否还能正常消费。
在将金额篡改后,重新写入卡中,刷卡时候提示读取金额错误。得知肯定还有校验位,在对比了多次数据后未能成功得到校验位是如何实现的。由于测试时间较短,前前后后搁置了老长时间,要离开的时候才想起来去测试该卡,因而未能实现修改为任意金额。但这不影响,办理一张新卡,读取内容,消费后将初始内容继续写入,那我的金额一样可以永远不变,因而可以免费吃饭。
观察商场里的终端设备,发现其有无线接口,是通过无线进行通信的。
但刷卡时,其读取的金额是从卡里读取的,应该并未查询数据库里的金额。当然,设备最终统计数据库的时候可能该卡的数据会产生异常。
使用工具:
ACR122U
MiFare Offline Cracker
libnfc
过程:
利用算法缺陷,读取全扇区内容,获得dump文件,将内容利用libnfc写入到一张可以改uid的空卡中即可。
参考:
MiFare卡结构即原理介绍:MF1S50YYX
算法相关缺陷:The MIFARE Hack
注:此次测试,多消费的金额为xx元,厂商若方便可以留下支付宝帐号,如数归还。:)
漏洞证明:
如上详细描述
修复方案:
全加密、卡换cpu卡
版权声明:转载请注明来源 Ano_Tom@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2014-10-16 15:20
厂商回复:
最新状态:
暂无