viernes, 8 de octubre de 2010

Inyección SQL en la librería Diego Marin

Diego Marin es una de las librerías más conocidas de Murcia, siempre la he considerado una librería de calidad pero viendo su web parece que la descuidaron un poco y era fácil encontrar vulnerabilidades de tipo inyección SQL y algún XSS. Y, si bien, no esta todo resuelto al 100% parece que ya lo han dado por válido.

Vamos por lo fácil, el XSS. Como es de esperar se encuentra en el buscador y, pese a que se tiene la precaución de filtrar el uso de las comillas (tanto dobles como simples) no hay ningún otro tipo de filtro por lo que saltarse el uso de estas comillas es sencillo, es suficiente con utilizar String.fromCharCode() en lugar de entrecomillar la cadena de texto que se desea escribir.


La inyección de SQL tampoco estaba demasiado escondida ya que prácticamente ninguna página filtraba los parámetros que se le pasaban en la url y estos eran utilizados directamente en la consulta SQL. Por ejemplo, al visualizar los detalles de cualquier libro podíamos ver el parámetro id_publicacion en la url, al cual se le asociaba el código del libro visualizado.


Al modificar el valor del parámetro id_publicacion añadiéndole una comilla simple se producía el siguiente error:


Donde era posible apreciar que el valor id_publicacion se utilizaba en la consulta SQL sin filtrarse de forma que podíamos utilizar este parámetro para "inyectar" cualquier consulta en el servidor y acceder a toda la información disponible, incluidas las contraseñas de los usuarios registrados.



Otras páginas afectadas eran: publicaciones.php (parámetro tema) y paginas.php (parámetro pagina)

Detección del problema: 21/09/2010
Comunicado a la empresa: 25/09/2010
Resolución: 08/10/2010

No hay comentarios:

Publicar un comentario en la entrada