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

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

缺陷编号:wooyun-2014-088245

漏洞标题:金龙卡M1卡加密分析(在有校验算法情况下的金额修改,附视频/POC代码)

相关厂商:哈尔滨新中新华科电子设备有限公司

漏洞作者: 路人甲

提交时间:2014-12-23 01:41

修复时间:2015-03-23 01:42

公开时间:2015-03-23 01:42

漏洞类型:设计不当

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-23: 细节已通知厂商并且等待厂商处理中
2014-12-26: 厂商已经确认,细节仅向厂商公开
2014-12-29: 细节向第三方安全合作伙伴开放
2015-02-19: 细节向核心白帽子及相关领域专家公开
2015-03-01: 细节向普通白帽子公开
2015-03-11: 细节向实习白帽子公开
2015-03-23: 细节向公众公开

简要描述:

金龙卡M1卡加密分析,存了好久了~~发出来给大家看一下吧,希望能够多多交流下,原理没有什么很难的地方,关键是将大部分区段的数据所代表的信息做了整理并算出了校验算法,附带POC代码和演示视频。

详细说明:

这是从一所大学里找到的一张可用的卡,通过对这张卡的数据反复对比分析研究最终得到了这张图。

扇区分析.png


其中消费密码明文存储的漏洞我在之前的漏洞中提到过,消费密码并非普通用户想象的存到服务器上,而是直接存储到卡里;http://wooyun.org/bugs/wooyun-2014-062374 ,而且不是16进制表示,上述漏洞的实际密码就是123456
这里面最难的一部分当属校验位了,经过仔细分析,最终计算出了校验位算法,在之前,不知道有校验位的存在,故修改卡内金额后总是无法识别卡片金额,导致无法刷卡;现在已经定位校验位的位置和校验算法,因此可任意修改卡内的金额,并在一天内任意的进行刷卡消费。
同时结合该漏洞(http://wooyun.org/bugs/wooyun-2014-066075)即可查看他人卡扇区密码,使用UID卡任意制作他人的卡片,随意消费了,而不需要物理接触到他人卡片。
许多人对卡片消费后服务器对账不平有什么问题有疑问。这里给出一个解释。
对于消费过程,卡机先与卡片直接进行数据交换,也就是只要卡里有钱有卡密码就能随意刷,等一段时间后,该消费数据会同步到数据库,注意该处有一个卡的实际余额问题;
卡片当中存储一个余额,这个余额是会在交易记录中看到的,也就是说如果有这样的一条记录
卡号|交易金额|当前卡余额
1|10.00|900
而这个余额是不会对用户实际有多少金额产生影响的,数据库中会存储一个用户实际的金额,然后使用用户的实际金额减去当次消费,得出此时用户的实际金额
对账不平:
系统每天会对账,分为人工和手工对账,如果对账不平则锁定卡片;直到用户去解锁,解锁的时候就是纠正卡片余额,所以并未能够多消费系统里的钱,所有客户端和服务器端同时存储余额的还是相对好一些的。

漏洞证明:

附送一段改金额的视频,注意看视频中放入UID卡后,卡机上面一行有一个6,实际上那是下面那行余额显示不完了,所以跑到上面去了。
找个地方上传视频真麻烦:http://storagecdn.qiniudn.com/WP_20140518_002 - 副本.mp4
附后记:卡刷完第二天就被锁定了。。。。

修复方案:

不知道这个要是提交乌云知识库可不可以..

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:9

确认时间:2014-12-26 15:46

厂商回复:

CNVD确认所述漏洞情况,暂未建立与软件生产厂商的直接处置渠道,待认领。

最新状态:

暂无