17 2 6 Lab Attacking A MySQL Database
17 2 6 Lab Attacking A MySQL Database
Objetivos
En esta práctica de laboratorio revisaremos un archivo PCAP de un ataque anterior a una base de
datos SQL.
Parte 1: Abrir Wireshark y cargar el archivo PCAP.
Parte 2: Visualizar el ataque de inyección SQL.
Parte 3: El ataque de inyección SQL continúa...
Parte 4: El ataque de inyección SQL proporciona información del sistema.
Parte 5: El ataque de inyección SQL e información de tablas
Parte 6: El ataque de inyección SQL concluye.
Recursos necesarios
Máquina virtual CyberOps Workstation
Instrucciones
Utilice Wireshark, un analizador (analyzer) de paquetes de red común, para analizar el tráfico de red.
Después de haber iniciado Wireshark, abra una captura de red ya guardada y observe un ataque de
inyección SQL paso a paso contra una base de datos SQL.
2018 – 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 1 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
e. El archivo PCAP se abre dentro de Wireshark para mostrar el tráfico de red capturado. Este archivo de
captura se extiende por un período de 8 minutos (441 segundos), la duración de este ataque de
inyección SQL.
Pregunta:
En función de la información que aparece en pantalla, ¿cuáles son las dos direcciones IP involucradas
en este ataque de inyección SQL?
10.0.2.4 y 10.0.2.15
El tráfico de origen se muestra en rojo. El origen ha enviado una solicitud GET al host 10.0.2.15. En color
azul, el dispositivo de destino le está respondiendo al origen.
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 2 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 3 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 4 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
a. Dentro de la captura de Wireshark, haga clic derecho en la línea 22 y seleccione Follow > HTTP
Stream. El tráfico de origen se muestra en rojo, y está enviando la solicitud GET al host 10.0.2.15. En
color azul, el dispositivo de destino le está respondiendo al origen.
b. En el apartado Find, escriba 1=1. Haga clic en Find Next.
c. El atacante ha ingresado una consulta (1’ or 1=1 union select null, version ()#) en un cuadro de búsqueda
de UserID en el objetivo 10.0.2.15 para localizar el identificador de la versión. Observe que el
identificador de versión se encuentra al final del resultado justo antes del cierre del código HTML
</pre>.</div> .
Pregunta:
¿Cuál es la versión?
MySQL 5.7.12-0
d. Cierre la ventana Follow HTTP Stream.
e. Haga clic en Clear display filter para mostrar toda la conversación de Wireshark.
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 5 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
UserID en el objetivo 10.0.2.15 para ver todas las tablas de la base de datos. Esto proporciona una
enorme salida de muchas tablas, ya que el atacante especificó “null” sin más especificaciones.
Pregunta:
¿Qué haría el comando modificado por el atacante: (1' OR 1=1 UNION SELECT null, column_name
FROM INFORMATION_SCHEMA.columns WHERE table_name='users')?
La base de datos respondería con una salida mucho más corta filtrada por la aparición de la
palabra "usuarios"
d. Cierre la ventana Follow HTTP Stream.
e. Haga clic en Clear display filter para mostrar la conversación completa de Wireshark.
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 6 de
7 www.netacad.com
Práctica de Laboratorio - Atacar una base de datos mySQL
¡El atacante ha ingresado una consulta (1’or 1=1 union select user, password from users#) en un cuadro
de búsqueda de UserID en el objetivo 10.0.2.15 para obtener nombres de usuario y hashes de
contraseñas!
Pregunta:
Preguntas de reflexión
1. ¿Cuál es el riesgo de hacer que las plataformas utilicen el lenguaje SQL?
Los sitios web suelen estar controlados por bases de datos y utilizan el lenguaje SQL. La gravedad
de un ataque de inyección SQL depende del atacante
2. Realice una búsqueda en internet sobre "Evitar ataques de inyección SQL". ¿Cuáles son 2 métodos o pasos
que se pueden utilizar para evitar ataques de inyección SQL?
Las respuestas variarán, pero deben incluir:
Filtrar la entrada del usuario
Implementar un firewall de aplicación web
Deshabilitar funciones / capacidades de base de datos innecesarias
Monitorear declaraciones SQL
Usar parámetros con procedimientos almacenados
Usar parámetros con SQL dinámico
2018 - 2020 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 7 de
7 www.netacad.com