elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  [PCu] Instalar VBulletin sin utilizar licencias de pago
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PCu] Instalar VBulletin sin utilizar licencias de pago  (Leído 5,709 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
[PCu] Instalar VBulletin sin utilizar licencias de pago
« en: 20 Febrero 2010, 23:31 pm »


PCu es una selección de temas orientados a los parches de sistemas WEBs (PCu = Parche Curita).

Bueno, 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 :o 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
  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
  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
  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
  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
  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
  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
  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
  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
  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.
En línea

invisible_hack


Desconectado Desconectado

Mensajes: 978


Invisible_Hack™ Nick Registrado ^^


Ver Perfil WWW
Re: [PCu] Instalar VBulletin sin utilizar licencias de pago
« Respuesta #1 en: 20 Febrero 2010, 23:52 pm »

Brutal WHK, como todos tus aportes...

Lo malo es que cuando se haga conocido este tutorial, me da que los de VB se pondrán manos a la obra para buscarse otra manera para evitar este engaño...

Pero mientras dure, ale, a disfrutarlo  :laugh:

P.D. oye pero si los de soporte pillan a alguien usando VBulletin con este truco, sin licencia, ¿puede meterse en barullos no?

En línea

"Si no visitas mi blog, Chuck te dará una patada giratoria"
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [PCu] Instalar VBulletin sin utilizar licencias de pago
« Respuesta #2 en: 21 Febrero 2010, 02:10 am »

si es un foro grande si, o si no no, además no tienen porque saber que tu sistema es vbulletin, puede ser un sistema propio que usa las mismas variables :p solo es cosa de hacer las modificaciones adecuadas, pero siempre es mejor pagar por el sistema.

Citar
Lo malo es que cuando se haga conocido este tutorial, me da que los de VB se pondrán manos a la obra para buscarse otra manera para evitar este engaño...
Cuando eso pase al dia siguiente sacaré un nuevo parche curita :P
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: [PCu] Instalar VBulletin sin utilizar licencias de pago
« Respuesta #3 en: 21 Febrero 2010, 04:39 am »

Muy bueno WHK, muchas gracias

En línea

PHAMTOM

Desconectado Desconectado

Mensajes: 83

0x8B,0xEC,0x33,0xFF


Ver Perfil
Re: [PCu] Instalar VBulletin sin utilizar licencias de pago
« Respuesta #4 en: 7 Marzo 2010, 13:14 pm »

Muy bueno,por ahí lei, que pueden llegar a denunciar un vbulletin si licencia , pero como dice WHK , podes tomar las prevenciones y hacerla bien ,muchas gracias :)

PHAMTOM.-
En línea

Miran a cualquier ventana, mientras su pánico emana
y nubla su visión mi calma es pura precisión
cargo munición y miro tranquilo
ya ni respiro desde al ático os vigilo sigo al filo os tengo a tiro!

La kitchner quiere tanto a los pobres,que cada vez,tiene más
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: [PCu] Instalar VBulletin sin utilizar licencias de pago
« Respuesta #5 en: 7 Marzo 2010, 15:07 pm »

si es un foro grande si, o si no no, además no tienen porque saber que tu sistema es vbulletin, puede ser un sistema propio que usa las mismas variables :p solo es cosa de hacer las modificaciones adecuadas, pero siempre es mejor pagar por el sistema.

Citar
Lo malo es que cuando se haga conocido este tutorial, me da que los de VB se pondrán manos a la obra para buscarse otra manera para evitar este engaño...
Cuando eso pase al dia siguiente sacaré un nuevo parche curita :P

Jajajaj +1...

Bien hecho WHK, creo que a esto siempre se lo podra hace un PCu ya que es open source xD.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Las licencias retail de Office 2013 solamente se pueden utilizar en un único PC
Noticias
wolfbcn 0 1,543 Último mensaje 17 Febrero 2013, 02:06 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines