Universidad Nacional Autónoma de México
Facultad de Contaduría y Administración
Diplomado Diseño, Construcción y Administración de Redes de Datos
Módulo 6. Seguridad de Bases de Datos
Actividad No. 1.11: SQL Injection con sqlmap en Kali Linux
1. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
1
Actividad
No.
1.11:
SQL
Injection
con
sqlmap
en
Kali
Linux
Antecedentes
SQL
Injection
(SQLi)
es
el
ataque
vía
web
que
aprovecha
errores
en
la
validación
de
datos
introducidos
por
el
usuario,
y
que
permiten
a
un
atacante,
tener
control
de
cierta
aplicación.
El
origen
de
la
vulnerabilidad
radica
en
la
incorrecta
revisión
y/o
filtrado
de
las
variables
utilizadas
en
un
programa
que
contiene,
o
bien
genera,
código
SQL.
Es,
de
hecho,
un
error
de
una
clase
más
general
de
vulnerabilidades
que
puede
ocurrir
en
cualquier
lenguaje
de
programación
o
script
que
esté
embebido
dentro
de
otro.
Kali
Linux
es
una
distribución
de
Linux
avanzada
para
pruebas
de
penetración
y
auditorías
de
seguridad.
Es
una
completa
re-‐construcción
de
BackTrack
Linux
que
se
adhiere
completamente
a
los
estándares
de
desarrollo
de
Debian.
SQLmap
es
una
herramienta
escrita
en
Python
que
se
encarga
de
realizar
peticiones
a
los
parámetros
de
una
URL
que
se
le
indiquen,
ya
sea
mediante
una
petición
GET
o
POST
buscando
que
la
aplicación
sea
vulnerable
a
una
posible
SQL
Injection
y
poder
explotarla.
Es
capaz
de
explotar
todo
tipo
de
SQLi
como
union-‐base,
time-‐base-‐blind,
base-‐blind-‐injection,
heavy-‐queries
entre
otros.
Requerimientos
Equipo
de
cómputo
con
el
sistema
operativo
Kali
Linux
correctamente
configurado
para
tener
acceso
a
la
Internet.
Servidor
web
objetivo
cuya
dirección
IP
será
proporcionada
por
el
instructor.
Para
el
caso
de
los
ejemplos
mostrados
en
este
documento
se
usará
la
dirección
IP
10.211.55.15
la
cual
deberá
ser
reemplazada
por
la
indicada
por
el
instructor.
2. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
2
Instrucciones
1. Inicia
tu
equipo
de
cómputo
con
el
sistema
operativo
Kali
Linux
y
configura
los
parámetros
de
red
para
tener
acceso
a
la
Internet.
2. Abre
una
terminal
usando
el
ícono
,
ubicado
en
el
panel
superior.
3. Ejecuta
el
siguiente
comando
en
la
terminal
(Recuerda
cambiar
la
dirección
IP
por
la
del
servidor
web
objetivo
indicada
por
el
instructor):
sqlmap
-‐u
"http://10.211.55.15/cat.php?id=3"
-‐-‐dbs
3. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
3
La
URL
/cat.php?id=3
fue
obtenida
por
el
escáner
de
vulnerabilidades
web
VEGA
en
la
Actividad
No.
1.10:
Análisis
de
vulnerabilidades
con
VEGA
en
Kali
Linux.
4. SQLmap
tratará
de
identificar
el
manejador
de
base
de
datos
utilizado
por
la
aplicación
web
ejecutándose
en
el
servidor
web
objetivo.
En
este
caso
determina
que
se
esta
utilizando
un
servidor
MySQL.
Presionar
la
tecla
Y
y
dar
Enter.
5. En
el
paso
siguiente,
SQLmap
nos
pregunta
si
deseamos
incluir
todas
las
pruebas
para
MySQL,
tecleamos
Enter
para
continuar.
4. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
4
6.
SQLmap
identifica
que
la
variable
‘id’
usada
por
la
aplicación
web
es
vulnerable
a
SQL
Injection.
Tecleamos
Enter
para
indicar
que
no
queremos
probar
otra
variable.
En
este
momento
SQLmap
realiza
el
ataque
de
SQL
Injection
y
logra
determinar
el
sistema
operativo
del
servidor
web
objetivo,
la
versión
del
servidor
web
empleado,
la
versión
del
manejador
de
base
de
datos
MySQL
en
ejecución
y
nos
muestra
las
dos
bases
de
datos
disponibles
en
el
servidor.
5. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
5
7. Una
vez
obtenido
el
nombre
de
las
bases
de
datos
disponibles
en
el
servidor,
vamos
a
indicar
a
SQLmap
que
obtenga
las
tablas
que
conforman
la
base
de
datos
photoblog,
para
ellos
ejecutamos
el
siguiente
comando:
sqlmap
-‐u
"http://10.211.55.15/cat.php?id=3"
-‐D
photoblog
-‐-‐tables
Podemos
observar
que
la
base
de
datos
photoblog
tiene
tres
tablas:
• categories
• pictures
• users
6. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
6
8. Una
vez
identificadas
las
tablas,
podemos
inferir
que
las
credenciales
de
acceso
a
la
aplicación
se
encuentran
en
la
tabla
users.
Para
realizar
una
consulta
y
mostrar
el
contenido
de
dicha
tabla,
ejecutamos
el
siguiente
comando:
sqlmap
-‐u
"http://10.211.55.15/cat.php?id=3"
-‐D
photoblog
-‐T
users
-‐-‐columns
El
resultado
de
la
ejecución
del
comando,
nos
permite
conocer
los
campos
de
la
tabla
user
dentro
de
la
base
de
datos
photoblog.
7. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
7
9. Conociendo
el
nombre
de
la
columnas
de
la
tabla
users,
es
posible
hacer
una
consulta
para
obtener
el
contenido
de
la
tabla.
Para
ellos
tecleamos
el
siguiente
comando:
sqlmap
-‐u
"http://10.211.55.15/cat.php?id=3"
-‐D
photoblog
-‐T
users
-‐C
login,password
-‐-‐dump
10. SQLmap
logra
identificar
un
campo
cifrado
que
contiene
las
contraseñas
de
las
cuentas
de
la
tabla
users.
Presionamos
la
tecla
Y
y
Enter.
11. SQLmap
permite
intentar
obtener
las
contraseñas
usando
un
diccionarios,
para
utilizarlo
presionamos
la
tecla
Enter.
8. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
8
12. El
siguiente
paso
consiste
en
indicar
la
ruta
al
diccionario
a
utilizar,
presionamos
la
tecla
Enter
para
utilizar
el
diccionario
por
Default
incluido
en
SQLmap.
13. A
continuación,
SQLmap
nos
pregunta
si
deseamos
usar
prefijos
comúnmente
utilizados
en
las
contraseñas.
Presionamos
la
tecla
Y
y
después
Enter
para
indicar
que
SI
queremos
usar
los
prefijos.
14. Terminado
el
proceso,
SQLmap
obtiene
el
nombre
de
usuario
y
la
contraseña
almacenada
en
la
tabla
users
de
la
base
de
datos
photoblog.
9. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Diplomado
Diseño,
Construcción
y
Administración
de
Redes
de
Datos
Módulo
6.
Seguridad
de
Bases
de
Datos
Elaboró:
Francisco
Medina
López
9
15. Introducimos
los
datos
obtenidos
en
la
aplicación
web
photoblog
desde
un
navegador
web.