关于携程信用卡门事件的信息汇总和分析

把前断时间写的几篇漏洞分析的报告传上来


关于携程信用卡门事件的信息汇总和分析

一. 携程漏洞事件爆出

  2014-03-22在乌云漏洞平台,爆出了携程安全支付日志可遍历下载,导致用户信息卡关键信息泄露

二. 透露出的产生漏洞的原因

携程官方答复为是技术开发人员之前是为了排查系统疑问,留下了临时日志,因疏忽未及时删除,目前,这些信息已被全部删除,经携程排查,仅漏洞发现人做了测试下载,内容含有极少量加密卡号信息,共涉及93名存在潜在风险的携程用户。

根据漏洞作者本人、携程官方说法根据及各方信息报道来看,携程此次用户信息泄露事件,产品调试过程中,保存了日志并在Web.config 开了目录遍历,然后可以利用目录遍历攻击漏洞,从而访问到文件系统调试日志信息。

也就是说这次事件中携程是两个事件的关联发生导致的漏洞爆发:

1.线上调试接口导致敏感的信用卡信息明文存储在日中文件中

2.是服务器存在目录遍历漏洞,导致所谓的调试信息日志泄露

   这次漏洞比较受关注的原因是因为用户信用卡关键信息被泄露。

信用卡公司和金融机构采用PCI-DSS (Payment Card Industry-data storagesecurity)一种第三方支付的规范来保证信用卡人的信息防止被他人利用 及3D 验证的方式保证信用卡支付使用安全(3D验证一般是在支付时候会弹框要求输入更加详细隐私的信息,比如密保之类的),其中PCI是预防信息泄露,携程的这个接口属于站内支付,提供PCI验证服务的公司通常会找出各类漏洞,还有在申请时要保证不能存储敏感信息,必须使用SSL验证等等,携程肯定也是做了并且有能力做到PCI的规范,信息泄露的源头是在日志,而非数据库,这说明携程可能并未故意存储CVV(Card Verification Value)信息,而是因为调试导致日志存储,但在线上长时间打开调试功能,并且数据传输为明文,导致系统日志中亦为明文,又未及时清理,所存储的服务器还有安全漏洞,这就是一连串的错误,安全事件的发生往往就是一连串的失误才造成的爆发。

 

三.漏洞导致的信用卡泄露造成的危害

首先介绍下信用卡支付的一些知识,CVV,即Card Verification Value,Mastercard

称作Card Validation Code (CVC)。VISA CVV和MC CVC都是由卡号、有效期和服务约束代码生成的3位或4位数字,一般写在卡片磁条的2磁道用户自定义数据区里面。CVV和CVC的生成方法是一样的,只是叫法不一样而已。CVV2是打印在 Visa/MasterCard 卡区的一个数字.它位于信用卡号后的3位数字。我们通常在信用卡背面看到的后三位数字,其实是CVV2,并非CVV代码。CVV2和CVC2也是同样算法得出的卡片验证值,只不过是在卡片生成的时候印制在签名条上。CVV/CVC在联机交易(刷卡)的时候核对,CVV2/CVC2在非现场交易/手工交易(刷不到卡)时核对。信用卡背后的三位验证码会被视为密码或签名。在一些消费场景下,如利用相关信息注册第三方支付帐号后,拥有这个验证码就可以等同用户使用信用卡后签字的过程,交易会被银行认可。携程也是通过信用卡购买机票需要提供的信息是:卡号、信用卡有效期、“后三位”验证码、持卡人身份证号即可

 

从其中泄露的信息包括用户的:

持卡人姓名

持卡人身份证

所持银行卡类别(比如,招商银行信用卡、中国银行信用卡)

所持银行卡卡号

所持银行卡CVV

所持银行卡6位Bin(用于验证支付信息的6位数字)

这就是传说中的信用卡轨道料,也是信用卡伪造和盗刷的源头

(1)CVV2码的盗刷

信用卡的使用,一般就分为“过卡交易”和“离线交易”两种。
  “过卡交易”是指持卡人持信用卡在商场、超市等“实体店”的POS机“刷卡”,输密码签字授权,完成交易。
    “
离线交易”是指在酒店、航空公司销售中心、公司财务、网络购物等,同样通过POS系统,只需提供信用卡账号及其cvv2验证码,就可以完成交易的方式。这种交易方式,通常只需要电话就可以达成。
     
现在所说的cvv2码盗刷,都是指离线交易,尤其猖狂的就是:获取您的信用卡号、有效期以及cvv2码之后,进行海淘随意刷,瞬间刷爆卡也是常事, 知道以上三条信息,盗刷的大门就为不法分子打开了。
   
    

(2)信用卡的伪造:

ATM卡(信用卡)通常有一个磁条,包含要求其轨道运行的原始数据,信用卡磁条包含个人账户信息、卡的消费记录等资料,磁条上有三条磁道,都存有信用卡的信息,通过窃取磁条轨道码即可伪造信用卡盗刷


Usually only track1 and track2 are needed to exploit the ATM card. 

Example of Track1
B4888603170607238^Head/Potato^050510100000000001203191805191000000

基本数据格式:卡号^名/姓^YYMM(expiry date is YYMM)+3 digit servicecode+10 zero +remaining numbers from Track2(after the service code)+ six zero's(6)
As clearly shown above it is possible togenerate track1 from track2 using the method shown above. However track2 gensoftware automates the process.

 

Example of Track2(正常刷卡时,POS机会读取这条磁道信息)
4888603170607238=05051011203191805191

FORMAT FOR TRACK2
CC NUMBER: YYMM (SERVICE CODE)(PVV)/(CVV)
Here is the Fleet's credit track2 dump:
4305500092327108=040110110000426

we see card number, an expiration date, 1011 -service code, 0000 is the place for pvn (but it is absent!), and at least 426is the cvv (do not mix with cvv2)

As clearly shown above it is possible togenerate track1 from track2 using the method shown above. However track2 gensoftware automates the process.
Now what is the nature of the algos you mightask? I will give you a sample.
518445**********=YYMM10100000000779
529107**********=YYMM10100000000CVV
These are track2 info. The RHS is the cardnumber. YYMM is the exp date
( year/month) and the CVV is the cardverification value. The first 6 digits of the card number is called the BIN .You only neeed to know if the BIN is casahble or vunerable to use .

 

四.建议

通过携程关于该漏洞的公告,应该是很快处理了该事件,应该没有造成很严重的信息泄露的后果,但是在使用信用卡的时候,还是提醒大家注意:

开卡后可以用贴纸把背面cvv2码盖住,不将卡片外借,不提供卡片信息给任何人,建议设置信用卡消费短信提醒,不光要保管好信用卡密码,还要保管好包括信用卡号、卡背面后三码等信用卡信息和办卡时所预留的个人信息,这样才能有效的避免那些不必要的损失。

 

 

 

 

 

 



阅读更多

更多精彩内容