19 jun 2014

CTFs y SQL Injections. Parte II

Buenas a todos, en el post de hoy daremos solución al pequeño reto de seguridad web que os planteamos ayer.

El reto consistía en localizar en una página del sitio web, una SQL Injection, con la que podríais realizar un "defacement" de la página, cambiando la imagen de la portada por una bandera.

Para realizar el CTF nosotros montamos un servidor WAMP, en el que alojamos los dos ficheros PHP y la imagen que os facilitamos, así como la BBDD MySql.

Si entramos en la raíz del sitio web veremos la siguiente imagen, y debajo de ella un enlace que nos llevaba a lo que parecía un buscador:



El buscador aceptaba un parámetro, en el cual podíamos indicar un término para buscar en una tabla de la BBDD. Este término era introducido en una búsqueda "LIKE", por lo que si no poníamos nada en el parámetro, nos volcaba directamente todo el contenido de la tabla:





Para facilitar la búsqueda de la inyección a los estudiantes, se mostraba por pantalla el estado de la query de BBDD.

En ese mismo parámetro podíamos inyectar cualquier código SQL, incluso ejecutar instrucciones encadenadas. Precisamente es esta la funcionalidad que vamos a aprovechar, con el fin de realizar un UPDATE de la tabla, después de ejecutar la sentencia SELECT:



Ya tenemos la inyección realizada, como veis el único truco se encontraba en cerrar las comillas del LIKE utilizando un comentario. No os olvidéis del espacio de después del comentario, porque sino no funcionará bien ("--%20"). Para que os coja bien este espacio podéis utilizar "%20".

Ahora si volvemos a visitar la página de inicio veremos nuestra bonita bandera :)



Saludos!

No hay comentarios:

Publicar un comentario