当前位置:七道奇文章资讯安全技术网络技术
日期:2010-09-04 00:23:00  来源:本站整理

QuickTime QTPlugin.ocx控件_Marshaled_pUnk参数考证漏洞及修复[网络技术]

赞助商链接



  本文“QuickTime QTPlugin.ocx控件_Marshaled_pUnk参数考证漏洞及修复[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
影响版本:
Apple QuickTime Player 7.6.7 (1675)
漏洞描写:
Apple QuickTime是一款非常风行的多媒体播放器.

QuickTime ActiveX控件(QTPlugin.ocx)实现了IPersistPropertyBag2::Read(1000E330)来处理所接纳到的param:

.text:1000E330  
.text:1000E330 ; =============== S U B R O U T I N E =======================================  
.text:1000E330  
.text:1000E330  
.text:1000E330 sub_1000E330    proc near               ; DATA XREF: .rdata:1002E0ECo  
.text:1000E330                                         ; .rdata:1002E86Co  
.text:1000E330  
.text:1000E330 arg_0           = dword ptr  4  
.text:1000E330 arg_4           = dword ptr  8  
.text:1000E330 arg_8           = dword ptr  0Ch  
.text:1000E330  
.text:1000E330                 push    esi  
.text:1000E331                 mov     esi, [esp+4+arg_0]  
.text:1000E335                 mov     ecx, [esi+84h]  
.text:1000E33B                 xor     eax, eax  
.text:1000E33D                 test    ecx, ecx  
.text:1000E33F                 jz      short loc_1000E393  
.text:1000E341                 mov     eax, [esp+4+arg_8]  
.text:1000E345                 mov     edx, [esp+4+arg_4]  
.text:1000E349                 push    eax  
.text:1000E34A                 push    edx  
.text:1000E34B                 call    sub_100031F0  

履行流:  
sub_10002980+27A  
sub_10002980+27A  loc_10002BFA:                           ; CODE XREF: sub_10002980+266j  
sub_10002980+27A                                          ; sub_10002980+272j  
sub_10002980+27A                  push    offset aType    ; "type"  
sub_10002980+27F                  push    ebx             ; lpString1  
sub_10002980+280                  call    ebp ; lstrcmpiA  
sub_10002980+282                  test    eax, eax  
sub_10002980+284                  jnz     short loc_10002C22  
sub_10002980+286                  push    edi             ; lpString  
sub_10002980+287                  call    ds:lstrlenA  
sub_10002980+28D                  cmp     eax, 104h  
sub_10002980+292                  jnb     short loc_10002C22  
sub_10002980+294                  push    edi             ; lpString2  
sub_10002980+295                  lea     edx, [esi+83Ch]  
sub_10002980+29B                  push    edx             ; lpString1  
sub_10002980+29C                  call    ds:lstrcpyA  
sub_10002980+2A2  
sub_10002980+2A2  loc_10002C22:                           ; CODE XREF: sub_10002980+284j  
sub_10002980+2A2                                          ; sub_10002980+292j  
sub_10002980+2A2                  push    offset a_marshaled_pun ; "_Marshaled_pUnk"  
sub_10002980+2A7                  push    ebx             ; lpString1  
sub_10002980+2A8                  call    ebp ; lstrcmpiA  
sub_10002980+2AA                  test    eax, eax  
sub_10002980+2AC                  jnz     short loc_10002C4A  
sub_10002980+2AE                  push    edi  
sub_10002980+2AF                  call    sub_10001310   ; SIMPLE ASCII NUMBERS TO LONG routine  
sub_10002980+2B4                  add     esp, 4  
sub_10002980+2B7                  lea     ecx, [esi+13B8h]  
sub_10002980+2BD                  push    ecx             ; ppv  
sub_10002980+2BE                  push    offset iid      ; iid  
sub_10002980+2C3                  push    eax             ; pStm  
sub_10002980+2C4                  call    ds:CoGetInterfaceAndReleaseStream  ; WE HAVE A WINNER!!  
sub_10002980+2CA  
sub_10002980+2CA  loc_10002C4A:                           ; CODE XREF: sub_10002980+2ACj  
sub_10002980+2CA                  push    edi             ; int  

QTPlugin.OCX控件查抄对象的属性中能否存在_Marshaled_pUnk,假如存在就通过将地址从ASCII表示
转换为数字表示(sub_10001310)举行散列,之后将所生成的指针用作了pStm(所要散列流上指向
IStream接口的指针)CoGetInterfaceAndReleaseStream以获得所列集接口的IUnknown指针(pUnk)
,这样就得到了对IStream 指针的掌握.
<*参考
http://secunia.com/advisories/41213/
*> 测试办法:
本站供应程序(办法)大概带有攻击性,仅供安全研究与讲授之用,风险自负!
addr = 354552864; // 0x15220C20 [pUnk]    

var obj=  '<' + 'object class width="0" height="0"'+'>'  

       +'<' + 'PARAM  value="'+addr+'"' + '/>'  

       +'<'+'/'+'object>';
安全倡议:
用户随时关注厂商Apple的主页以获得最新版本:http://www.apple.com
  以上是“QuickTime QTPlugin.ocx控件_Marshaled_pUnk参数考证漏洞及修复[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • appRain Quick Start Edition Core Edition Multiple Persistence Cros...
  • QuickReport基本知识
  • QuickTime QTPlugin.ocx控件_Marshaled_pUnk参数考证漏洞及修复
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .