Probar la inyección de consultas SQL

Los ataques de inyección de código SQL implican insertar o "inyectar" consultas SQL a través de la entrada del cliente en la aplicación. Un ataque exitoso de este tipo se puede utilizar para leer información confidencial de la base de datos y modificarla o eliminarla. En los casos más extremos, le permite emitir comandos del sistema.


El siguiente es un fragmento de código peligroso que se puede utilizar para realizar un ataque de inyección sql:

SELECT * FROM users WHERE name = userName;

La variable "userName" se recupera del usuario. Si un atacante nombra 'OR' 1 '='1' como su nombre de usuario, esto obligará a seleccionar el nombre de usuario correcto porque la expresión '1' = '1' siempre es verdadera.


Puede utilizar una herramienta llamada sqlmap para probar vulnerabilidades de inyecciónsql, que automáticamente es capaz de encontrar y utilizar la capacidad de inyectar consultas SQL. Admite seis técnicas de inyección de código sql:basadas en lógica, ciegas, basadas en errores, consultas UNION,consultas acumulativas y ataques OOB. Permite atacar bases de datos MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB e Informix.


En la ilustración siguiente se muestra un ejemplo del uso de sqlmap,que, mediante pruebas heurísticas, detectó que el parámetro id puede ser vulnerable a un ataque por inyección de código sql en la consulta que se está probando.

Ejemplo de uso de SQLMAP
Marcar el Enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *