SQL Injection - ¿Qué es y como funciona?

A todos nos suena este termino pero a veces es un poco confuso de entender. Aquí te explicamos de forma sencilla en que consiste.
¿Qué es SQL Injection?
SQL Injection o inyección de código SQL es un tipo de ataque que se vale de una vulnerabilidad informática que se encuentra presente en una aplicación a nivel de validación de las entradas con las cuales realiza un formulario.
Comúnmente utilizado en ataques hacia:
- Formularios HTML que pueden ser páginas de login por ejemplo, campos de busqueda, cajas de comentarios.
- Aplicaciones de escritorio que hacen uso de bases de datos
Un atacante puede aprovecharse del incorrecto filtrado de los campos de un formulario de login, cajas de texto para poner comentarios, cajas de busqueda del sitio, caja de texto en "recupera tu password" etc. Hace pruebas para tratar de introducir código SQL y probar si la página es o no vulnerable a la inyección.
Falsas creencias de seguridad
Muchas personas ignoran la importancia de la seguridad porque desconocen del peligro real de los ataques con SQL inyection.
Muchos desarrolladores piensan que estan seguros porque:
- Sus aplicaciones web no regresan ningún error SQL al navegador
- Envian log de los errores de su aplicación a la ventana de eventos de log
- Usan consultas almacenadas en código ó en funciones
- No conectan a la base de datos usando el SA ó la cuenta root.
¿Cómo probar si nuestro sitio es vulnerable a SQL inyection?
Una forma sencilla sería introducir en un campo de texto por ejemplo:
"' having 1=1 ---"
Al introducir esto trataremos de provocar un error que nos informe sobre detalle por ejemplo:
Esto quiere decir que la funcion o procedure "sp_Users_GetNewPassword" esperaba un parametro "password"
Lo que quiere decir que si esta ejecutando probablemente unas sentencias SQL dentro de la funcion. Vamos a probar con otro comando SQL
Y si ejecuta este comento efectivamente somos vulnerables a SQL injection.
Aquí el video para más detalle.
Resumen
El atacante puede usar el navegador para probar código SQL y ver si nuestro sitio es vulnerable, si es vulnerable entonces puede probar distintas técnicas para ir viendo que tablas existen, obtener información o incluso alterar y borrar información.
En otro post explicaremos más a detalle estas técnicas.

Comentarios
Publicar un comentario