30 ene 2012

Solución al #FPR5: ¡Jackmi Amijo!

Buenas a todos, acaba de finalizar el reto de Flu Project #FPR5: ¡Jackmi Amijo!, correspondiente al mes de Enero. Este reto era de dificultad media-baja y consistía en una pequeña intrusión en un portal programado en PHP. Contábais de inicio con el código fuente del programa, lo que facilitaba enormemente la labor para los usuarios que se están iniciando en las técnicas de penetración.

El reto se dividía en 2 fases. En la primera había que explotar una vulnerabilidad de Xpath Injection que padecía el formulario de autenticación del portal al interactuar con una base de datos XML donde almacenaba el usuario y contraseña del usuario administrador:

En la segunda fase había que descargar un archivo de tipo .run, que en realidad era un archivo docx con una imagen oculta:

Os dejamos con el solucionario que nos a enviado Danigargu, tercer clasificado del reto.

Mirando un poco el código de login.php vemos que es una autenticaciónbasada en XML, también vemos que las variables enviadas porPOST no están filtradas, por lo que puede haber un XPath Injection.17:   $resultado = $xml->xpath("//users/user[username/text()='" . $user . "' and password/text()='" . $pass . "']");Al intentar bypassearlo vemos que la web solo deja introducir hasta10 caracteres en cada campo por lo que tendremos que modificar lapagina o modificar los datos durante el envio con TamperData o cualquier otro programa.Bypass------usuario: abc' or 1=1 or 'a'='bpasswd: (blanco)Tras ello, la web nos redirige a menuPrincipal.php donde nos descargamos un fichero llamado programa.zip. Su contenido es un fichero llamado 'programa.run'. Como no sabemos que tipo de fichero se trata, lo comprobamos con el comando file.dani@debian:~/FPR5$ file programa.runprograma.run: Zip archive data, at least v2.0 to extractViendo que es otro fichero zip, lo descomprimimos:dani@debian:~/FPR5$ unzip programa.runArchive:  programa.run   creating: docProps/  inflating: docProps/app.xml  inflating: docProps/core.xml   creating: word/  inflating: word/document.xml  inflating: word/fontTable.xml   creating: word/media/ extracting: word/media/image1.png  inflating: word/media/reto.png  inflating: word/settings.xml  inflating: word/styles.xml   creating: word/theme/  inflating: word/theme/theme1.xml  inflating: word/webSettings.xml   creating: word/_rels/  inflating: word/_rels/document.xml.rels  inflating: [Content_Types].xml   creating: _rels/  inflating: _rels/.rels Al parecer es un fichero de Word. Si lo abrimos nos aparece una imagen que no nos dice nada, pero si miramos la carpeta word/media que hemos descomprimido,encontramos otra imagen llamada reto.png la cual nos dice:!Enhorabuena!, has pasado el reto.

El reto era muy sencillo como podéis ver. Algunas inyecciones de ejemplo que podríais haber utilizado para saltar el formulario serían:

' or 1=1 or ''='abc' or 1=1 or 'a'='b' or '1'='1admin' or '1'='1

No hemos dado por buenas las soluciones que nos habéis pasado en las que os saltábais el primer paso del reto, explotar la vulnerabilidad de Xpath Injection (o no nos lo habéis indicado claramente).

A continuación os dejamos con el listado de h4x0rs que han finalizado el reto correctamente:

  1. @sh4r3m4n [licenciaparahackear.wordpress.com] (4horas y 57 minutos)
  2. Alverid (7 horas y 15 minutos)
  3. Danigargu (14 horas y 22 minutos)
  4. zprian (15 horas y 19 minutos)
  5. Fuska (19 horas y 4 minutos)
  6. Jesus Gutierrez (19 horas y 19 minutos)
  7. --J4z-- (19 horas y 32 minutos)
  8. Pedro Tunelko (20 horas y 16 minutos)
  9. Edwin Alberto (1 dia)
  10. Aneraka (1 dia)
  11. Palangui (5 dias)
  12. Oscar @dot_ike (6 dias)

Esperamos que os hayáis divertido con el reto :) Para febrero, si el tiempo lo permite, lanzaremos un reto de mayor complejidad, podéis enviarnos ideas que se os ocurran para este reto por Twitter y correo electrónico.

Saludos!

4 comentarios:

  1. Felicitaciones a todas estas personas, que son un ejemplo para mi... aun me inicio en la informatica y me gustaria llegar a ser como ustedes...

    ResponderEliminar
  2. Necesitaría mas software para la modificación de los datos salientes. Cuales me recomendáis?Saludos y gracias de antemano.

    ResponderEliminar
  3. zipus: Necesitaría mas software para la modificación de los datos salientes. Cuales me recomendáis?Saludos y gracias de antemano.Te refieres a proxys? Por ejemplo Paros o Tamper Data son los que más suelo usar.saludos

    ResponderEliminar