Ir al contenido principal

SQL Injection - ¿Qué es y como funciona?

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
¿Cómo funciona?
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:
  1. Sus aplicaciones web no regresan ningún error SQL al navegador
  2. Envian log de los errores de su aplicación a la ventana de eventos de log
  3. Usan consultas almacenadas en código ó en funciones
  4. No conectan a la base de datos usando el SA ó la cuenta root.
Sin embargo, a pesar de todo esto es falso que sus aplicaciones web sean seguras.


¿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

Entradas populares de este blog

Un Tutorial de Aprendizaje Profundo: De Perceptrones a Redes Profundas

IA (iiiii AAA) no .. no son solo un par de vocales son las siglas de "Inteligencia Artificial" un campo de la informática que estudia la inteligenia exhibida por las máquinas y hoy hablaremos de esto. Te vamos a enseñar conceptos básicos de IA de una forma fáci. Comencemos, el dia de hoy tenemos este super interesante artículo que nos comparten desde Toptotal.com sobre el "Aprendizaje profundo de perceptrones a redes profundas" y si te suena a Chino no lo es :) Te invito a que leeas este articulo: En los últimos años, ha habido un resurgimiento en el campo de la Inteligencia Artificial. Se ha extendido más allá del mundo académico, con grandes figuras como  Google , Microsoft y  Facebook , quienes han creado sus propios equipos de investigación, obteniendo impresionantes  adquisiciones . Se comenta que esto puede atribuirse a la gran cantidad de datos brutos generados por los usuarios de redes sociales, muchos de los cuales deben ser analizados, al igual qu...

La H-1B: El viaje de un desarrollador iOS desde Honduras hasta Silicon Valley

Desde toptal.com nos cuentan ... La experiencia de un desarrollador Latinoamericano que llego hasta Silicon Valler desde Honduras, un interesante artículo que nos cuenta la travesía de llegar a trabajar en San Francisco, California. He aquí un fragmento del articulo: Por estos días, vivo en la gran ciudad de San Francisco. Obtuve un trabajo que amo, y uno con el cual soñé con tener durante mucho tiempo. Parece fácil ahora, pero no siempre fue así. Cómo empezó todo Nací en  San Pedro Sula , un pequeño pueblo en la esquina noroeste de Honduras. Comencé a programar cuando tenía 12 años. Todo empezó con BASIC. Un día, estaba jugando un vídeo juego y se colgó. Cuando ví la pantalla llena de códigos de error y mensajes, me picó la curiosidad—entonces comencé a aprender algunos comandos BASIC, que eventualmente me llevaron a comprar libros de programación sobre Clipper, Turbo Pascal, C, C++, etc. Fue genial. Tenía todo el tiempo del mundo para gastar programando cualq...

Por Qué Los Startups Necesitan Una Guía De Estilo

Incluso para un diseñador con experiencia, crear una nueva guía de estilo para un producto es difícil—hay muchas direcciones de diseño posible, y el proceso puede rápidamente convertirse en algo abrumador. La vida del  startup  es bastante agitada, rápida, y llena de clichés como “la perfección es la enemiga de tener algo hecho”, “muévete rápido y rompe cosas”, o “lancemos ahora, arreglemoslo después”. Crear una guía de estilo bajo dichos eslóganes y prioridades fluctuantes es desafiante, pero es necesario si queremos que el diseño de un producto tenga éxito a largo plazo. La  Experiencia Global de Lenguaje (GEL) de la BBC explica el propósito de cada componente y cómo deberían ser utilizados. En años recientes, hemos escuchado mucho sobre sistemas de diseño, guías de estilo, librerías de patrones, y  diseño atómico . Y si bien estas herramientas son muy útiles, usarlas puede sentirse como un exceso cuando lo único que quieres es crear un par de pantalla...