Inicio » Sin categoría » SQL injection: qué es y cómo funciona

SQL injection: qué es y cómo funciona

SQL INJECTION qué es y cómo funciona

Existen miles de exploits diseñados para aprovechar sitios web mal diseñados. Sin embargo, aquellos ataques que utilizan inyección de código SQL o SQL injection son los más efectivos, los más fáciles y los de mayor alcance. Este tipo de ataque se fueron popularizando conforme los sitios web iban migrando a diseños que presentaban al lector contenidos dinámicos procedentes de una base de datos accedida por el servidor web y situada “detrás” de este. Si estas bases de datos utilizan MySQL, o cualquier otro sistema gestor de base de datos que interprete las órdenes en lenguaje SQL procedentes del servidor, se vuelven potencialmente vulnerables a este tipo de ataques.

Conseguir comprometer un sistema explotando un fallo o mala implementación de protocolos de bajo nivel requiere profundos conocimientos telemáticos y de programación, mucho tesón y mucho tiempo. Hacerlo atacando la capa de la base de datos de una aplicación, como es el caso de la inyección SQL, resulta relativamente sencillo y rápido. Irónicamente, muchos “hackers” se han hecho famosos (y ricos) explotando este tipo de vulnerabilidades y otras similares como las de “cross site scripting”, sin necesidad de sólidos fundamentos en sistemas operativos o protocolos de comunicaciones

Este tipo de vulnerabilidad se puede encontrar cuando la entrada del usuario en un formulario que nos presenta una página web, se filtra incorrectamente para los caracteres de escape en los literales de cadena incrustados en las sentencias de SQL. El primer paso para realizar un ataque de este tipo es encontrar un sitio web vulnerable. Este será probablemente el proceso que consuma más tiempo en todo el ataque. El año pasado, un estudio realizado por una compañía de seguridad puso de manifiesto que una aplicación web es atacada en promedio al menos cuatro veces al mes mediante técnicas de inyección SQL. Las pequeñas tiendas minoristas en línea reciben más ataques que cualquier otra industria, ya que disponen de menos medios para el desarrollo de sus sitios web, en muchos casos levantados por programadores “amateur”. Sin embargo, cada vez más sitios web se protegen de la inyección de SQL, lo que significa que encontrar un objetivo vulnerable podría llevar bastante tiempo.

Si estás construyendo tu sitio web y quieres saber si es vulnerable, puedes empezar utilizando una técnica sencilla conocida como “Google Dorking”. Aquí, un “dork” es una consulta de búsqueda específica que encuentra sitios web que cumplen los parámetros de la consulta, por ejemplo, podemos buscar el string “inurl: index.php? id =”. Hay docenas de parámetros que se pueden incluir en una consulta como esa, y que circulan por internet, pero todas tienen como denominador común centrarse en sitios web que dependen de los scripts de PHP para generar contenido dinámico desde una base de datos SQL. Los sitios web basados en PHP suelen ser sus mejores objetivos, y WordPress es un CMS construido con el lenguaje de programación PHP, por eso los sitios basados en WordPress son de los más populares también para ser atacados.

Pero atención, solo porque Google nos devuelva un listado de sitios como resultado de estas búsquedas, no significa que sean vulnerables al ataque. Lo que haría un hacker principiante sería probar cada sitio hasta encontrar uno que fuera vulnerable.

Imaginemos, por ejemplo, que uno de los resultados de la búsqueda es http://unsitiovulnerable.com/index.php?parentid=1. Para saber si este sitio es vulnerable a la inyección de SQL, el aprendiz de hacker simplemente agregaría un apóstrofo al final de la URL tal que así: http://unsitiovulnerable.com/index.php?parentid=1

Si la página devuelve un error SQL, ¡zasca!, el sitio web es vulnerable a la inyección SQL, pero si la página se carga normalmente, el aprendiz de hacker debería pasar a la siguiente URL en la lista. Para entonces, y no es broma, una alarma habrá saltado en la sede central de Montain View de Google, y muchos otros ojos empezarán a monitorizar la IP del “hackercillo”, para ver qué más cosas hace a continuación. Cualquier lector que intente jugar con esto en casa, debe tener presente que este tipo de prácticas están tipificadas en el Código Penal español. Estáis avisados.

El tipo de error que se recibe, en principio no importa. Como general, si el sitio web devuelve algún error SQL, debería ser vulnerable a las técnicas de inyección SQL, y puede seguir estudiándose con mayor detenimiento. Es en este punto donde empieza a ser importante entender SQL para comenzar a manipular la base de datos directamente desde la página vulnerable.

Después de localizar un sitio vulnerable, nuestro aprendiz de hacker necesitará averiguar, por ejemplo, cuántas columnas tiene la base de datos SQL y cuántas de esas columnas pueden aceptar sus consultas. Eso puede hacerse agregando una declaración “Union Select” a la URL, tal que así: http://unsitiovulnerable.com/index.php?parentid=1 union select 1,2,3,4,. Por lo dicho más arriba, el lector sabrá perdonar que obviemos detalles de estas técnicas. Lo importante es quedarse con la idea de que con los resultados de esta consulta se obtendrían los números de columna que aceptan consultas. Así, nuestro aprendiz de hacker podría elegir cualquiera de estas columnas para inyectar sus instrucciones SQL, simplemente agregándolas a la URL. Algunas de las funciones comunes que puede realizar en este momento incluyen obtener una lista de las bases de datos disponibles, obtener el usuario actual, obtener las tablas y, en última instancia, las columnas dentro de estas tablas.

 

 

 Manuel Carpio, tutor del Máster de Ciberseguridad de IMF Business School

Formación Relacionada

Las dos pestañas siguientes cambian el contenido a continuación.
IMF Business School
Equipo de profesionales formado esencialmente por profesores y colaboradores con amplia experiencia en las distintas áreas de negocio del mundo empresarial y del mundo académico. IMF Business School ofrece una exclusiva oferta de postgrados en tecnología en colaboración con empresa como Deloitte, Indra o EY (masters en Big Data, Ciberseguridad, Sistemas, Deep Learning, IoT) y un máster que permite acceder a la certificación PMP/PMI. Para ello IMF cuenta con acuerdos con universidades como Nebrija, la Universidad de Alcalá y la Universidad Católica de Ávila así como con un selecto grupo de universidades de Latinoamérica.

Deja una respuesta

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

¡Noticias, eventos y formación!

Suscríbete ahora y recibe los mejores contenidos sobre Negocios, Prevención, Marketing, Energías Renovables, Tecnología, Logística y Recursos Humanos.

Acepto recibir comunicaciones comerciales por parte del grupo IMF
He leído y acepto las condiciones


SQL injection: qué es y cómo funciona

Existen miles de exploits diseñados para aprovechar sitios web mal diseñados. Los ataques que utilizan SQL injection son los más efectivos.