xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
添加文章 Xcon English Version

百度超级搜霸远程代码执行漏洞


创建时间:2007-08-02
文章属性:原创
文章提交:cocoruder (frankruder_at_hotmail.com)

百度超级搜霸远程代码执行漏洞

by cocoruder(frankruer_at_hotmail.com)
http://ruder.cdut.net


Summary:

    百度超级搜霸是百度公司出品的一款免费的浏览器工具栏,提供百度公司的各种服务。更多信息请参考:

    http://bar.baidu.com/sobar/promotion.html

    在百度超级搜霸中的一个ActiveX控件中存在一个远程代码执行漏洞,远程攻击者可利用此漏洞在被攻击者系统上以当前浏览器权限执行任意代码,进而可安装木马以及间谍程序。


Affected Software Versions:

    百度超级搜霸5.4(Version of "BaiduBar.dll" is 2.0.2.144)



Details:
    
    漏洞存在于由ActiveX控件"BaiduBar.dll"导出的"DloadDS()"函数中,相关信息如下:

    InprocServer32:    C:\Program Files\baidu\bar\BaiduBar.dll
    ClassID      :     A7F05EE4-0426-454F-8013-C41E3596E9E9

    [id(0x0000001d), helpstring("method DloadDS")]
    void DloadDS(
                [in] BSTR bstrUrl,
                [in] BSTR bstrName,
                [in] long lShow);

    如果把bstrUrl设置成某个服务器上的CAB文件,DloadDS()函数会尝试下载这个文件到TEMP目录并解压,然后执行其中的以bstrName命名的文件,执行处的关键代码如下:

    .text:1006F407                 lea     eax, [ebp-28h]
    .text:1006F40A                 lea     ecx, [ebp-10h]
    .text:1006F40D                 push    eax            ; lpProcessInformation
    .text:1006F40E                 lea     eax, [ebp-6Ch]
    .text:1006F411                 push    eax            ; lpStartupInfo
    .text:1006F412                 push    esi            ; lpCurrentDirectory
    .text:1006F413                 push    esi            ; lpEnvironment
    .text:1006F414                 push    esi            ; dwCreationFlags
    .text:1006F415                 push    esi            ; bInheritHandles
    .text:1006F416                 push    esi            ; lpThreadAttributes
    .text:1006F417                 push    esi            ; lpProcessAttributes
    .text:1006F418                 push    esi
    .text:1006F419                 call    sub_10004147        ; get the CommandLine
    .text:1006F419
    .text:1006F41E                 push    eax            ; lpCommandLine
    .text:1006F41F                 push    esi            ; lpApplicationName
    .text:1006F420                 call    ds:CreateProcessA


    此时lpCommandLine指向"C:\DOCUME~1\administrator\LOCALS~1\Temp\calc.exe",由于之前没有任何有效的检查措施,因此攻击者可构造包含木马或者间谍程序的CAB文件,然后用DloadDS()函数下载并运行它。因此,有漏洞的百度搜霸相当于一个完美的后门。



How to Reproduce:

    Exploit在如下URL地址:

    http://ruder.cdut.net/attach/baidu_soba/baidu_soba_exploit.html

    安装百度搜霸, 用IE打开它并点击"DowndloadCalcAndRun"按纽,你会发现计数器程序(在http://ruder.cdut.net/attach/calc.cab)被下载并执行。

    如果你无法找到受影响的版本,带有数字签名的百度搜霸5.4版在如下地址也可以下载到:

    http://ruder.cdut.net/attach/baidu_soba/setup.exe

    此文件的MD5值:7F751A157AF42E92FDD0AF3F179FE9AB



Solution:

    Baidu通知已经修复了此漏洞,但实际上,从http://bar.baidu.com/sobar/promotion.html下载的Baidu搜霸依旧受到影响(MD5值没变,不过可能是在线更新未成功),强烈建议用户对此CLSID设置Killbit。



Disclosure Timeline:

    2007.07.19        漏洞发现并通知厂商
    2007.07.19        厂商回应
    2007.07.23        厂商通知新版本发布但不发布公告
    2007.07.24        新版本未发布成功
    2007.08.01        厂商再次通知新版本发布,但仍未完全修复
    2007.08.02        发布公告



--EOF--