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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Ético
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?  (Leído 6,772 veces)
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« en: 17 Octubre 2011, 14:18 pm »

Buenas amigos,

Haciendo auditoria a un servidor me encontré con un script en php, que se usa para cargar dinámicamente archivos de javascript, el cual un bug de seguridad.

Este no validaba si el usuario colocaba una URL mal formada con retornos en el path lo cual me permitía ver cualquier archivo en el servidor que tuviera permisos generales o del usuario que corre apache. Lo explote de la siguiente manera : www.siteVulnerable.com/images/loader.php?x=../../../../../../../etc/passwd

El Script es el siguiente :

Código:
<?php
$cache = (isset($_GET['cache']))? intval($_GET['cache']) : TRUE;
$LF = "\n";
$output = '';
$files = explode(',', $_GET['X']);
foreach ($files as $file) {
$filepath = realpath('./'.$file);
$output .= $LF.@file_get_contents($filepath);
}
if (!empty($output)) {
# Remove spaces
$output = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $output);
$output = str_replace(array("\r\n", "\r", "\n", "\t", '', '', ''), '', $output);
# Send HTTP headersheader('Content-Type: text/css');
if ($cache) {
header('Pragma: public');
header('Cache-Control: max-age=31536000');
header('Last-Modified: Thu, 28 Jan 2010 22:31:25 GMT');
header('Expires: '.gmdate('D, d M Y H:i:s', time()+31536000).' GMT');
header('ETag: "'.md5($output).'"');} else {header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
}
# Output file(s)
contentsob_start('ob_gzhandler');
echo $output;ob_end_flush();
}
else {
header('HTTP/1.0 404 Not Found');
header('Expires: 0');
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
}
exit;
?>

Logre detectar que tipo de sistema para CMS usaban, por cierto fue algo difícil ya que modificaron mucho todo el sistema, aparte de que era uno algo desconocido. Tambien logre ver los usuarios (mas no sus contrasenas ya que usaban shadow). Pero si logre ver el archivo de configuracion a la base de datos: usuario, pass, nombre de la db y direccion. El problema es que no tiene puerto abierto para acceder a la base de datos de forma remota. Y no he podido reventar ese codigo php para ejecutar algun comando o levantarme una shell dentro del sistema.

En resumen:
El sistema usado es : Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch Server (Encontrado por errores que da apache)
Las puertas abiertas son: 21 y 80 (ftp y web)
Datos que tengo : /etc/passwd, /etc/hosts, default (de apache), httpd.conf, user y pass de la base de datos.

De aqui, y con estos datos, que puedo hacer? Es un camino sin salida?
 :silbar:
« Última modificación: 17 Octubre 2011, 20:55 pm por h3ct0r » En línea

[img[/img]
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.912



Ver Perfil WWW
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #1 en: 17 Octubre 2011, 21:06 pm »

¿Has probado si también admite incluir archivos remotos? Si lo permite, la clave es RFI.

En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #2 en: 17 Octubre 2011, 21:17 pm »

Hola madpitbull_99,

Intente ver que mas podía hacer con ese código, pero la función realpath le coloca la dirección real de donde se localiza el webpath y me impide hace un RFI (si coloco hola como parámetro, la variable output quedaría así "/var/www/public/hola") o conoces alguna manera de saltármelo?

Citar
foreach ($files as $file) {
   $filepath = realpath('./'.$file);
   $output .= $LF.@file_get_contents($filepath);
}
En línea

[img[/img]
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #3 en: 18 Octubre 2011, 17:21 pm »

ya tienes todo lo necesario. Cual es su objetivo?
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.
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #4 en: 18 Octubre 2011, 17:27 pm »

~ Yoya ~ , No puedo prácticamente hacer nada!, si quisiera ver datos de usuarios, correos, modificar los logs, etc se me hace imposible con lo que tengo hasta ahora. (Solo puedo leer archivos a los que apache tenga permiso).

Mi objetivo por ahora es ver la manera de levantar una shell, o tener algún tipo de acceso que me permita ejecutar comandos dentro del servidor para así acceder a la DB desde adentro, ya que no se puede acceder remotamente (tiene los puertos cerrados!).

Que me recomiendan?
En línea

[img[/img]
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #5 en: 18 Octubre 2011, 17:34 pm »

Ps puedes comenzar a buscar bug's, como puedes ver el source sera un poco mas fácil.

Se puede subir shell mediante LFI.
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.
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #6 en: 18 Octubre 2011, 18:02 pm »

Voy a empezar a buscar mas bugs, aver si tengo suerte y consigo algo mejor con que trabajar. Por ahora el LFI lo estoy descartando ya que no estoy ejecutando de ninguna manera el código de las paginas a las que hago referencia, solo las lee y muestra el contenido formateado.

Estuve buscando si hay alguna manera de reventar la función file_get_contents pero nada que pueda usar maliciosamente!

Posteare los avances que vaya logrando.  ;D
« Última modificación: 18 Octubre 2011, 18:05 pm por h3ct0r » En línea

[img[/img]
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #7 en: 18 Octubre 2011, 22:31 pm »

Si aprendieras PHP te vendria muy bien
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.
h3ct0r

Desconectado Desconectado

Mensajes: 108


Hail to the king baby!


Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #8 en: 18 Octubre 2011, 22:50 pm »

Yo se PHP.  (:
En línea

[img[/img]
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Infiltrar servidor a travez de bug en PHP. Encontre datos de DB ahora que sigue?
« Respuesta #9 en: 19 Octubre 2011, 04:59 am »

Entonce usa la logica ps.
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] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines