24 May

SQLMap; herramienta automática de inyección SQL

Si eres programador seguro que la siguiente frase te resulta más o menos familiar:

Todo valor introducido por el usuario es tonto o malicioso, a menos que se demuestre lo contrario.

Un programador no debe preocuparse únicamente porque su aplicación cumpla con la funcionalidad requerida, en realidad su aplicación debe cumplir con la funcionalidad de forma óptima cuidando además el rendimiento, robustez y sobre todo la seguridad. Existen herramientas para ayudar a validar que las aplicaciones cumplen con estas características, y para el tema de seguridad en particular les presento la herramienta SQL Map.

SQL Map es una herramienta de código abierto que permite realizar pruebas de intrusión a través de la automatización de procesos de detección y explotación de fallas conocidas como inyecciones SQL con la finalidad de tomar el control de servidores de bases de datos.

Las características de SQL Map son las siguientes:

  • Soporte completo para MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase y los sistemas de administración de bases de datos SAP MaxDB.
  • Soporte para 5 técnicas de inyección sql: boolean-based blind, time-based blind, error-based, UNION query y stacked queries.
  • Permite enumerar los usuarios de una base de datos, los hashes de los passwords, los privilegios de un usuario, los roles, las bases de datos, tablas, columnas y desde luego los registros.
  • Reconocimiento automático de los hashes de los passwords para «crackearlos» utilizando un ataque de fuerza bruta basado en diccionarios.
  • Permite descargar y subir cualquier archivo al servidor de base de datos cuando el gestor es MySQL, PostgreSQL o Microsoft SQL Server.
  • Permite enviar comandos al sistema operativo y obtener la «salida» cuando el servidor de base de datos es MySQL, PostgreSQL o Microsoft SQL Server.
  • Permite realizar una elevación de privilegios del usuario a través del comando getsystem utilizando Metasploit.

El funcionamiento de la aplicación es bastante sencillo. Primero debes proporcionarle al programa una dirección URL del tipo:

http://www.sitiowebvulnerable.com/paginavulnerable.php?variable1=valor1&variable2vulnerable=valor2

Si sospechas que la aplicación web es inyectable en alguno de los parámetros en esa dirección URL, SQL Map te ayudará a confirmarlo y finalmente a explotar la vulnerabilidad para obtener información del servidor de base de datos. Puedes encontrar información más detallada en la documentación oficial en la web oficial del programa.

Personalmente la he utilizado para analizar algunos sitios personales (y de terceros), y he tenido resultados bastante satisfactorios. La herramienta es útil principalmente para explotar vulnerabilidades de inyección SQL a ciegas.

Sitio web: SQL Map