安全研究
安全漏洞
Anzio Web Print Object ActiveX组件mainurl参数栈溢出漏洞
发布日期:2008-08-20
更新日期:2008-08-22
受影响系统:
Anzio Web Print Object 3.2.24不受影响系统:
Anzio Web Print Object 3.2.19
Anzio Print Wizard Server Edition 3.2.19
Anzio Print Wizard Personal Edition 3.2.19
Anzio Web Print Object 3.2.30描述:
BUGTRAQ ID: 30545
CVE(CAN) ID: CVE-2008-3480
Anzio Web Print Object(WePO)是一个Windows ActiveX web页面组件,用于从网页启动打印任务。
WePO ActiveX组件的mainurl参数用于指定所要打印内容的本地文件名或URL:
/-----------
<param name="mainurl" value="http://www.somewhere.com/myreport.pcl">
- -----------/
WePO取OLECHAR格式的mainurl参数值并使用oleaut32.dll的API SysAllocStringLen将其转换为BSTR字符串。SysAllocStringLen返回的BSTR字符串指针存储到了栈中。
/-----------
024F64B8 . 51 PUSH ECX
~ ; length of "mainurl" value
024F64B9 . 52 PUSH EDX
~ ; pointer to "mainurl" value
024F64BA . E8 4DB0FFFF CALL JMP.oleaut32.SysAllocStringLen
024F64BF . 5A POP EDX
024F64C0 . 85C0 TEST EAX,EAX
024F64C2 .^0F84 94F9FFFF JE PWBUTT~1.024F5E5C
024F64C8 . 8902 MOV DWORD PTR DS:[EDX],EAX
~ ; ;Save BSTR pointer to stack
024F64CA > C3 RETN
- -----------/
之后没有验证长度便将ASCII格式的mainurl值拷贝到了栈上的缓冲区。
/-----------
024F300C /$ 56 PUSH ESI
024F300D |. 57 PUSH EDI
024F300E |. 89C6 MOV ESI,EAX
~ ; ESI = pointer to "mainurl" value
024F3010 |. 89D7 MOV EDI,EDX
~ ; EDI = pointer to destination buffer in the stack
024F3012 |. 89C8 MOV EAX,ECX
~ ; ECX = length of "mainurl" value
024F3014 |. 39F7 CMP EDI,ESI
024F3016 |. 77 13 JA SHORT PWBUTT~1.024F302B
024F3018 |. 74 2F JE SHORT PWBUTT~1.024F3049
024F301A |. C1F9 02 SAR ECX,2
024F301D |. 78 2A JS SHORT PWBUTT~1.024F3049
024F301F |. F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR
DS:[ESI] ; Copy "mainurl" value to stack buffer,
024F3021 |. 89C1 MOV ECX,EAX
~ ; without validating its length
024F3023 |. 83E1 03 AND ECX,3
024F3026 |. F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
024F3028 |. 5F POP EDI
024F3029 |. 5E POP ESI
024F302A |. C3 RETN
- -----------/
如果攻击者对网页提供了超长的mainurl值,就可以覆盖栈缓冲区和SEH,导致在安装了WePO ActiveX控件的机器上执行任意代码。
<*来源:Francisco Falcon
链接:http://secunia.com/advisories/31554/
http://marc.info/?l=bugtraq&m=121933135810729&w=2
http://www.anzio.com/news/newpw.htm#Release
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
建议:
厂商补丁:
Anzio
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.anzio.com/controls30/PWButtonXControl1.ocx
浏览次数:2705
严重程度:0(网友投票)
绿盟科技给您安全的保障
