Instalación de VBulletin sin licencias de pago

  • 4 Respuestas
  • 3379 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LucaSthefano

  • *
  • Underc0der
  • Mensajes: 399
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Instalación de VBulletin sin licencias de pago

  • en: Julio 17, 2011, 03:27:29 pm
Instalación de VBulletin sin licencias de pago

Primero nos conseguimos los archivos de vbulletín, ahora lo montamos en el servidor normalmente y cuando hagamos nuestro archivo de configuraciones veremos que nos redireccionará hacia http://ejemplo/vbulletin/install/install.php y nos pide un numero de serie asi que si no tenemos ese mágico numero de serie no podremos instalar el sistema.

Vamos al directorio de instalación y hacemos ingeniería inversa, asío como en la electrónica mi profesor siempre me decía que si queremos saber como funciona algo solo debemos recorrer el camino que hace la energía eléctrica, asi que nosotros para saber como hace la validación seguiremos las funciones y las inclusiones en orden una por una.

Abrimos el archivo /install/install.php y encontramos que la única inclusión que hay es hacia require_once('./installsteps.php'); sin anteponer ninguna función y despues finaliza el script asi que dejamos tranquilo ese archivo y nos vamos a editar /install/installsteps.php.

En este archivo lo primero que vemos cuando lo ejecutas es un if con una comparación:

Código: PHP
  1. if ($_GET['step'] > 2 OR $_POST['step'] > 2)
  2. {
  3.    require_once('./installcore.php');
  4.    // connected to the database now lets load schema
  5.    require_once(DIR . '/install/mysql-schema.php');
  6. }
  7. else
  8. {
  9.    if ($_ENV['REQUEST_URI'] OR $_SERVER['REQUEST_URI'])
  10.    {
  11.       $scriptpath = $_SERVER['REQUEST_URI'] ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'];
  12.    }
  13.    else
  14.    {
  15.       if ($_ENV['PATH_INFO'] OR $_SERVER['PATH_INFO'])
  16.       {
  17.          $scriptpath = $_SERVER['PATH_INFO'] ? $_SERVER['PATH_INFO']: $_ENV['PATH_INFO'];
  18.       }
  19.       else if ($_ENV['REDIRECT_URL'] OR $_SERVER['REDIRECT_URL'])
  20.       {
  21.          $scriptpath = $_SERVER['REDIRECT_URL'] ? $_SERVER['REDIRECT_URL']: $_ENV['REDIRECT_URL'];
  22.       }
  23.       else
  24.       {
  25.          $scriptpath = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_ENV['PHP_SELF'];
  26.       }
  27.  
  28.       if ($_ENV['QUERY_STRING'] OR $_SERVER['QUERY_STRING'])
  29.       {
  30.          $scriptpath .= '?' . ($_SERVER['QUERY_STRING'] ? $_SERVER['QUERY_STRING'] : $_ENV['QUERY_STRING']);
  31.       }
  32.    }
  33.    define('SCRIPTPATH', $scriptpath);
  34.    define('SKIPDB', true);
  35.  
  36.    require_once('./installcore.php');
  37. }

No estamos enviando ninguna variable GET asi que se está activando el "else" cuando lo ejecutamos y solo se hacen declaraciones de rutas y la única inclusion que hay es hacia installcore.php pero como sabremos si es ese archivo que hace la validación o es algo mas hacia abajo?

Probamos poniendo "exit;" despues de la inclusion, algo así como:

Código: PHP
  1. require_once('./installcore.php');

Me sigue apareciendo la pantalla de verificación, asi que le pongo el exit antes de la inclusion:

Código: PHP
  1. require_once('./installcore.php');

Ahi se queda la pantalla en blanco asi que ya sabemos que la pantalla de validación se está llamando desde ahi, por lo tanto lo abrimos y nos encontramos con esto:

Código: PHP
  1. require_once('./install/init.php');
  2. require_once(DIR . '/install/functions_installupgrade.php');
  3. require_once(DIR . '/install/install_language_en.php');
  4. require_once(DIR . '/includes/functions.php');
  5. require_once(DIR . '/includes/adminfunctions.php');
  6. $steptitles = $install_phrases['steps'];
  7. require_once(DIR . '/install/authenticate.php');

Pero ahora como sabremos que archivo es el que autentifica?. Le ponemos un exit al final de todas estas inclusiones para ver si lo hace alguno de estos archivos o se hace mas abajo la validación:

Código: PHP
  1. require_once('./install/init.php');
  2. require_once(DIR . '/install/functions_installupgrade.php');
  3. require_once(DIR . '/install/install_language_en.php');
  4. require_once(DIR . '/includes/functions.php');
  5. require_once(DIR . '/includes/adminfunctions.php');
  6. $steptitles = $install_phrases['steps'];
  7. require_once(DIR . '/install/authenticate.php');

Acá vemos que la pantalla sigue apareciendo asi que subimos archivo por archivo:

Código: PHP
  1. require_once('./install/init.php');
  2. require_once(DIR . '/install/functions_installupgrade.php');
  3. require_once(DIR . '/install/install_language_en.php');
  4. require_once(DIR . '/includes/functions.php');
  5. require_once(DIR . '/includes/adminfunctions.php');
  6. $steptitles = $install_phrases['steps'];
  7. require_once(DIR . '/install/authenticate.php');

Ahi se queda en blanco, eso quiere decir que autentificate no se alcanzó a ejecutar y ese es el archivo que nos detiene la instalación, por lo tanto dejamos tranquilo estos archivos y nos vamos directamente hacia autentificate.php.

Ahi vemos lo siguiente:

Código: PHP
  1. if ($vbulletin->GPC['bbcustomerid'] !== CUSTOMER_NUMBER)

Nos está haciendo comparación con nuestro id de licencia asi que lo reemplazamos por esto:

Código: PHP
  1. if (1 == 2)

Y listo! ya podemos utilizar vbulletín sin tener que pasar pro el sistema de validación de licencias. Ahora si alguien quiere utilizarlo entonces no le haga nada y pague por este buén sistema.

Hagamos un parchador automático:

Código: PHP
  1. <?php
  2.  $finstall = 'install/authenticate.php';
  3.  if(!$buffer = file_get_contents($finstall)){
  4.   die('Imposible obtener el archivo '.$finstall);
  5.  }
  6.  $payload = '$vbulletin->GPC[\'bbcustomerid\'] !== CUSTOMER_NUMBER';
  7.  if(strpos($buffer, $payload) > 0){
  8.   $buffer = str_replace($payload, '1==2', $buffer);
  9.   if(file_put_contents($finstall, $buffer)){
  10.    header('location: /'); /* Procede la instalación */
  11.   }else{
  12.    die('Imposible sobreescribir el archivo '.$finstall);
  13.   }
  14.  }else{
  15.   die('La versi&oacute;n de VBullet&iacute;n es incompatible');
  16.  }
  17. ?>

Lo dejas en el directorio de vbulletín y despues lo visualizas, cuando comienze la instalación del sistema lo borras.

Autor: WHK
Fuente: elhacker.net
« Última modificación: Julio 28, 2014, 01:01:52 pm por Expermicid »

Desconectado michoacano094

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Instalación de VBulletin sin licencias de pago

  • en: Julio 21, 2011, 02:59:06 am
=D!!!

y alguien qe conprueve qe funcione? jeje

se ve de 100% pff me toca probar ya qe no ai comentarios xD!


Gracias!

Desconectado LucaSthefano

  • *
  • Underc0der
  • Mensajes: 399
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Instalación de VBulletin sin licencias de pago

  • en: Julio 21, 2011, 03:51:43 am
Funcionaba 100%. No sé si funcionará con la versión actual.

Saludos!

Desconectado Harakiri

  • *
  • Underc0der
  • Mensajes: 92
  • Actividad:
    0%
  • Reputación 0
  • ~Lets hack like its 1998!
    • Ver Perfil
    • Email

Re:Instalación de VBulletin sin licencias de pago

  • en: Agosto 06, 2011, 05:12:30 pm
Para vBulletin 4.x.x es muy similar pero hay que editar el archivo:

/install/includes/class_upgrade_ajax.php

Lineas: 129 y 161 sobreescribiendo con "if (1 == 2)"

y pasa piola, tengo la impresion de que debe haber algo mas que editar, le voy a dar una vuelta al asunto y despues publico pero por lo pronto ya paso bien la instalacion editando esas lineas.


Desconectado th3n0lO

  • *
  • Underc0der
  • Mensajes: 54
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Instalación de VBulletin sin licencias de pago

  • en: Agosto 12, 2011, 02:13:31 pm
GRACIAS ;)

 

Instalación de BadStore en VirtualBox [Vulnerabilidad virtual para practicar]

Iniciado por Stiuvert

Respuestas: 0
Vistas: 4380
Último mensaje Abril 23, 2012, 05:28:08 pm
por Stiuvert
vBulletin 5.0.0 Beta 11 - 5.0.0 Beta 28 - SQL Injection

Iniciado por morodog

Respuestas: 1
Vistas: 3300
Último mensaje Junio 09, 2013, 12:05:31 pm
por ANTRAX
vBulletin 0day [Yet Another Awards System] SQL Injection

Iniciado por CalebBucker

Respuestas: 1
Vistas: 3242
Último mensaje Agosto 30, 2012, 09:13:41 pm
por hdbreaker
Inyección SQL en foros vBulletin 5.0.4 a 5.1.2 (Exploit + vídeo)

Iniciado por Stiuvert

Respuestas: 5
Vistas: 5814
Último mensaje Julio 26, 2014, 07:48:12 pm
por fermino
Upload shell Vbulletin via AdminCP

Iniciado por ZanGetsu

Respuestas: 0
Vistas: 3184
Último mensaje Mayo 26, 2013, 07:46:08 pm
por ZanGetsu