Las consecuencias de una mala comprobación

Iniciado por Xt3mP, Abril 20, 2012, 02:43:35 AM

Tema anterior - Siguiente tema

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

Es muy común que nos encontremos con sitios webs que tienen un panel de administración junto con un image uploader mal programados haciendo esto que la seguridad del sitio en cuestión quede totalmente en riesgo; por un lado, el no tener buena certificación de las sesiones nos permite navegar por todo el panel administrativo sin restricción alguna y el tener un "image uploader" mal programado nos facilita la tarea a la hora de intentar subir una shell al servidor para tener acceso completo al servidor (o al menos, de la página en cuestión).

Entonces, navegando por Google en busca de un image uploader me encontré con uno de estos paneles en cuestión; al inicio de el directorio nos encontramos con un archivo llamado login.php, el cual, como su nombre lo dice, es el encargado de darnos acceso al panel de administración:


A simples intentos no tenía Blind SQLi ni otras vulnerabilidades parecidas; pero... ¿válida la sesión de los demás archivos correspondiente a la de un administrador?, en este caso: ¡no!, continuando la búsqueda en Google nos encontramos con un archivo .php del panel de administrador indexado que al entrar simplemente nos daba acceso total sin sacarnos por no tener la sesión adecuada:


Código: php
<?php /*?><?php
session_start();
if ($_SESSION['k_admin']<>1) {

echo '<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>';
}
?><?php */?>


Acá tenemos dos opciones: o alguien accedió antes que yo al servidor y quito la comprobación de sesión (muy, muy dudable) o simplemente el administrador del sitio creeyó que al tener el script en varios paths no se indexaría en los buscadores pensando así que no correría ningún riesgo; opto más por la segunda opción.

Siguiendo con el script, podemos notar que se trata de un image uploader el cual, como todo curioso, procedemos a subir desde el primer intento nuestra shell.php y ¿qué obtenemos?, que efectivamente la subió correctamente puesto que la validación del tipo de archivo en cuestión es incorrecta o simplemente, no fue programada de una manera adecuada.

Despúes entra otra cuestión: ¿en dónde se subió la shell?, revisamos por Live Headers y no se mira hacia donde hace referencia, entonces recurrimos a subir otra imagen en el mismo image uploader y al mostrarnos la información (segunda imagen) damos click derecho en la imagen y ver imagen quedandonos de la siguiente manera:

Citarhttp://web/path/path/imagen.jpg

Al intentar acceder al directorio para revisar si efectivamente esta ahí nos encontramos con que tiene seguridad para no mostrar los "Index Of" al no tener un index la carpeta, por lo que a cuestión de suerte (y con dedos cruzados) cambiamos imagen.jpg (nombre de la imagen en cuestión) por shell.php y bingo, tenemos acceso total al hosting (ya después, se puede proceder a escalar privilegios pero esa es otra historia):


¿Qué quiero decir con esto?, que a veces siendo "curiosos" nos encontramos con scripts mal programados que nos facilitan la tarea a la hora de intentar acceder a un sitio.

P.D.: Ningún archivo fué tocado o eliminado (ha excepción de los archivos vulnerables).
P.D.2: Se parchó (se descomentó) la sesión por lo que si no tienes sesión activa, no te permite navegar en el panel de administración.
Cada vez que me das Karma me motivas