CVE ID:CVE-2008-3480 CNCVE ID:CNCVE-20083480 Anzio Web Print Object是一款Windows ActiveX WEB页组件,当放置在WEB页上时可从文件或WEB服务器推打印作业到用户本地打印机而不需要限制一些附加的HTML。 Anzio Web Print Object处理"mainurl"参数存在缓冲区溢出,远程攻击者可以利用漏洞以应用程序权限执行任意指令。 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...
CVE ID:CVE-2008-3480 CNCVE ID:CNCVE-20083480 Anzio Web Print Object是一款Windows ActiveX WEB页组件,当放置在WEB页上时可从文件或WEB服务器推打印作业到用户本地打印机而不需要限制一些附加的HTML。 Anzio Web Print Object处理"mainurl"参数存在缓冲区溢出,远程攻击者可以利用漏洞以应用程序权限执行任意指令。 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"值的WEB页,攻击者以溢出堆栈缓冲区,并覆盖SEH以执行任意代码。 Anzio Print Wizard Personal Edition 3.x Anzio Print Wizard Server Edition 3.x Anzio Web Print Object (WePO) 3.x 升级到Anzio Web Print Object 3.2.30版本: <a href=http://www.anzio.com/download-wepo.htm target=_blank>http://www.anzio.com/download-wepo.htm</a>