1. 1
Ataque por Inyección de Código SQL a una
Base de Datos contenida en una página Web
A. Valencia, C. Andres Coutin,
Universidad Nacional y a Distancia “UNAD”
Escuela de Ciencias Básicas, Tecnología e Ingeniería
Colombia
Resumen— Por medio de este documento se quiere demostrar
algunas formas de atacar una página Web conociendo, algunos
de los datos contenidos en las base de datos, estos ataques son de
manera educativos y no pretenden causar ningún tipo de daño a
las páginas web, vulnerables, en la actualizada este tipo de ataque
si son cometidos el código de procedimiento penal según la ley
1273 de 2011. Esta es una forma de evitar futuros problemas de
seguridad en dicho proceso. Este tipo de ataques que se plantean
en este documento pretenden además ser una guía en el manejo e
implementación de diferentes rutinas que pueden implementarse
para garantizar la seguridad de la información.
Palabras clave— Máquina Virtual, Sistema Operativo, Llave
Pública, Encriptación, Llave Privada, Archivo, Ataque de fuerza
Bruta, Firma Digital.
Abstract— Through this document is to show some ways to
attack a website know, some of the data contained in the
database, these attacks are educational way and not intended to
cause any harm to the websites, vulnerable, the date this type of
attack if they committed the criminal procedure code according
to the law 1273 of 2011 this is a way to prevent future security
problems in the process. Such attacks raised in this document
also intended as a guide in the management and implementation
of different routines that can be implemented to ensure
information security.
Keywords— Virtual Machine, Operating System, Public Key
Cryptography, Encryption, Private Key , File, Brute –Force
Attack, Digital S ignature.
I. INTRODUCCIÓN
a vulnerabilidad se puede producir automáticamente
cuando un programa "arma descuidadamente"
una sentencia SQL en tiempo de ejecución, o bien durante
L
la fase de desarrollo, cuando el programador explicita la
sentencia SQL a ejecutar en forma desprotegida. En cualquier
caso, siempre que el programador necesite y haga uso de
parámetros a ingresar por parte del usuario, a efectos de
consultar una base de datos; ya que, justamente, dentro de los
parámetros es donde se puede incorporar el código SQL
intruso a información contenida en una página web, se
considera.
Al ejecutarse la consulta en la base de datos, el
código SQL inyectado también se ejecutará y podría hacer un
sinnúmero de cosas, como insertar registros, modificar o
eliminar datos, autorizar accesos e, incluso, ejecutar otro tipo
de código malicioso en el computador
2. 2
II. DESARROLLO DEL ARTÍCULO
Descargue e instale la máquina virtual Virtualbox.
- Descargue BadStore.
- Descargue un programa para realizar ataque por inyección
de código SQL sesugiere SQLMAP (http://sqlmap.org/) o
Nmap (http://nmap.org/download.html.
- Realizar un ataque a la base de datos de Badstore, con lo
cual se debe obtener toda la información sobre la base de
datos por ejemplo servidor de BD y versión, nombre de la
base de datos, nombre de las tablas, información de las tablas,
información de las columnas, etc.
- Realizar una presentación o video sobre el ataque realizado
Para determinar la vulnerabilidad del sitio que se nos dá,
debemos colocar una comilla al lado del signo igual y
actualizamos la página y esto nos debe indicar que tiene un
error de sintaxis en al instrucción SQL, lo que lo hace
vulnerable al ataque.
Entonces copiamos la URL y lo copiamos en el comando del
software sqlmap y ejecutamos presionando la tecla Enter
sqlmap.py -u
http://testphp.vulnweb.com/listproducts.php?artist=1 –bds
Este comando nos permitirá conocer el nombre de la base de
datos, como lo muestra la siguiente gráfica
Conociendo el nombre de la base de datos podemos ahora
conocer las tablas que hacen parte de esa base de datos por
medio del siguiente comando
sqlmap.py -u
http://testphp.vulnweb.com/listproducts.php?artist=1 -D
acuart –tables
De este modo podremos conocer el nombre de las tablas, que
hacen parte de esa base de datos
3. 3
Una vez identificadas las tablas podremos conocer, las
columnas de cada tabla, para ello debemos digitar el siguiente
comando.
sqlmap.py -u
http://testphp.vulnweb.com/listproducts.php?artist=1 -D acuart -
T users –columns
Este comando nos mostrará, las columnas de la table Users, tal
como lo muestra la siguiente gráfica.
Luego conocer las columnas de la tabla Users, debemos
conocer el contenido de algunos de los campos, de dicha tabla.
Por medio del siguiente comando podremos conocer el
contenido del campo Uname, por medio del siguiente
comando:
sqlmap.py -u
http://testphp.vulnweb.com/listproducts.php?artist=1 -D acuart
-T users -C uname –dump
La siguiente gráfica nos muestra el contenido del campo
uname
Así mismo para los campos restantes, tales como el contenido
del campo name, por medio del siguiente comando.
sqlmap.py -u
http://testphp.vulnweb.com/listproducts.php?artist=1 -D
acuart -T users -C name –dump
la siguiente gráfica muestra el contenido del campo Name, en
la table acuart
4. 4
Y podemos seguir conociendo más datos de la tabla usuarios,
ahora lo vamos a hacer con el campo email
Y por si quedan dudas extraemos la información de la cedula
III. CONCLUSIONES
Durante el desarrollo de esta práctica podemos conocer y
aplicar diferentes formas de realizar ataques a la información
contenida en una base de datos, de un sitio web, los cuales no
permiten algún grado de confidencialidad y seguridad de la
información. Estos conceptos puestos en el contexto nos
permitirán garantizar de alguna manera la confidencialidad de
la información al interior de una empresa u organización.
También es de suma importancia que se tenga configurado y
listo el entorno de trabajo que servirá para el desarrollo de las
actividades y prácticas propuestas durante todo el curso y de
esta forma poder responder los interrogantes que se vayan
generando durante cada etapa, debatiendo acerca de los mismo
con los puntos de vista de los compañeros del grupo
colaborativo y con la experiencia del director del curso.
IV. AGRADECIMIENTOS
Alexander Valencia. Mi más sincero agradecimiento a mi
esposa e hijos por su apoyo constante. A los ingenieros John
Quintero, Delia Caicedo por su aporte y experiencia en el
desarrollo de artículos para la IEEE.
Carlos Andrés Coutin G. Mis agradecimientos a mi madre
que es la persona encargada de brindarme serenidad
tranquilidad para salir adelante en mis metas.
5. 5
V. REFERENCIAS
Periodicals (Artículos de revista):
[1] Universidad Nacional Abierta y a Distancia, Cátedra
Unadista
http://datateca.unad.edu.co/contenidos/434206/434206/
captulo_7_her ramientas_para_el_aprendizaje_virtual.html
}
[2] Universidad Nacional Abierta y a Distancia,
Especialización en Seguridad Informática.
http://campus0b.unadvirtual.org/mis_cursos/tablero201
31.php
[3] Página Oficial de Debian. Recuperado de:
https://www.debian.org/index.es.html
[4] Instalación de Debian. Recuperado de:
http://debianfacil.wordpress.com/instalar-debian/
VI. BIOGRAFÍAS
Alexander Valencia. Nació en Istmina Chocó, el
27 de Marzo de 1876. Se graduó en la
Universidad Manuela Belt rán en la ciudad de
Bogotá. Ejerció profesionalmente en la
Universidad Cooperativa de Colombia Seccional
Quibdó, en la Universidad Nacional Abierta y a
Distancia en la Ciudad de Quibdó, en la
Secretaria de Salud Departamental del Chocó.
Ent re sus campos de interés están la
programación cliente servidor, maneja los
lenguajes de programación Visual Basic, ent re los manejadores de base de
datos están SQL, Acces FireBird. Especialista en Administ ración de Base de
Datos.
Carlos Andres Cout in Garcia Nació en Quibdó
Choco el 9 de diciembre de 1985. Se graduó en la
Universidad cooperat iva de Colombia en la ciudad
de Quibdó, realizo una técnica en mantenimiento de
hardware y software en el Sena. Ejerció
profesionalmente en Compartel empresa de
telecomunicaciones, Inst ituto Colombiano de
Bienestar Familiar (ICBF) Donde se desempeña
como administ rador de un aplicat ivo llamado Cuéntame.