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

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

缺陷编号:wooyun-2015-0153947

漏洞标题:招行某漏洞可刷豹子号银行卡(且旧卡号依然可以支付与收款)

相关厂商:招商银行

漏洞作者: Slcio

提交时间:2015-11-18 15:52

修复时间:2015-11-25 09:00

公开时间:2015-11-25 09:00

漏洞类型:账户体系控制不严

危害等级:中

自评Rank:5

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-18: 细节已通知厂商并且等待厂商处理中
2015-11-25: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

招商银行银行卡号随意刷,未做限制大量8A、9A尾号等你拿。。存50W三个月的用户才能订制后4位,我们可以订制后8位!!

详细说明:

电子一卡通
通过大众版,专业版,手机登陆。。。有一个升降级功能,可以无限刷好吗,通过Luhn算号出来,然后刷就可以了。。
另外号码是一个月更换一次,但是实际测试是第二天就可以继续更换,所以认为计划任务跑设置错时间了。。。
已经开发出插件刷号,写了vbs算号。
利用工具发布在论坛中多数用户已经刷到号码。
http://bbs.51credit.com/forum.php?mod=viewthread&tid=2315957

cardnum = InputBox("请输入当前卡号:")
dim fso, f
set fso = CreateObject("Scripting.FileSystemObject")
If IsNumeric(cardnum) = False Then
MsgBox "请输入正确卡号!!"
Wscript.Quit
End If
If Len(cardnum) = 16 Then
Dim sss(8000)
For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(i) = s1 & 1111
End If
Next
For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(1 & s1) = s1 & 2222
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(2 & s1) = s1 & 3333
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(3 & s1) = s1 & 5555
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(4 & s1) = s1 & 6666
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(5 & s1) = s1 & 7777
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(6 & s1) = s1 & 8888
End If
Next

For i = 0 To 999
If Len(i) < 4 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(7 & s1) = s1 & 9999
End If
Next

Set f = fso.CreateTextFile("./cardnum.txt", True)
For n = 0 To 7999
newcard = Mid(cardnum, 1, 9) & sss(n)
If newcard >= cardnum then
s = Luhn_Test(newcard)
If s = 0 Then
f.WriteLine strreverse(newcard)
End If
End If
Next
f.Close()
Else
MsgBox "请输入16位正确卡号!!"
Wscript.Quit
End If
For i = 0 To 999
If Len(i) < 3 Then
s1 = "00" & i
s1 = Right(s1, 3)
sss(i) = s1 & 1111
End If
Next
Function Luhn_Test(cc)
cc = RevString(cc)
s1 = 0
s2 = 0
For i = 1 To Len(cc)
If i Mod 2 > 0 Then
s1 = s1 + CInt(Mid(cc, i, 1))
Else
tmp = CInt(Mid(cc, i, 1)) * 2
If tmp < 10 Then
s2 = s2 + tmp
Else
s2 = s2 + CInt(Right(CStr(tmp), 1)) + 1
End If
End If
Next
If Right(CStr(s1 + s2), 1) = "0" Then
Luhn_Test = "0"
Else
Luhn_Test = "1"
End If
End Function

Function RevString(s)
For i = Len(s) To 1 Step -1
RevString = RevString & Mid(s, i, 1)
Next
End Function


1111.png


我刷到的号码

2222.png


写的插件
最开始试用按键精灵,然后是浏览器插件。。。
本来一个月的更换期,实际是一天即可更换。。。。
发漏洞时发现已经关闭了该功能,但是手机端未关闭,通过
https://mobile.cmbchina.com/MobileHtml/Login/LoginA.aspx
登陆
依然可以刷号,登陆提示必须手机改user-agent 就行了chrome就支持模拟,新插件开发中。。

漏洞证明:

2.招商银行,电子一卡通如果更换过卡号是可以查询历史记录的。并且旧卡号可以用于支付与收款。。
我用旧卡号绑定的其他第三方付款,还是可以支付费用!!
会出现A帐户付款,扣B帐户的钱。。
如果用户旧卡号泄露会造成风险!!
新产品,新场景可能并没有考虑到吧。。。

1111.jpeg


2222.jpeg


1111.png


2222.png


3333.jpg


4444.jpg


5555.png

修复方案:

加验证码,重新设置更换时间。。。

版权声明:转载请注明来源 Slcio@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-11-25 09:00

厂商回复:

漏洞Rank:2 (WooYun评价)

最新状态:

暂无