4.2.8-Lab - Attacking A mySQL Database
4.2.8-Lab - Attacking A mySQL Database
Objetivos
En esta práctica de laboratorio verán un archivo PCAP de un ataque anterior a una base de
datos SQL.
Antecedentes / Escenario
Los ataques de inyección SQL permiten que los hackers maliciosos escriban sentencias SQL en
un sitio web y reciban una respuesta de la base de datos. Esto permite que los atacantes
modifiquen los datos actuales de la base de datos, suplanten identidades y ejecuten malware
variado.
Hemos creado un archivo PCAP para que vean un ataque anterior a una base de datos SQL. En
esta práctica de laboratorio verán los ataques a la base de datos SQL y responderán las
preguntas.
Recursos necesarios
Instrucciones
Utilizarán Wireshark, un analizador de paquetes de red común, para analizar el tráfico de red.
Después de iniciar Wireshark, abrirán una captura de red ya guardada y verán un ataque de
inyección SQL paso a paso contra una base de datos SQL.
La aplicación Wireshark se puede abrir por medio de diversos métodos en una estación de
trabajo de Linux.
b. En el escritorio haga clic en Applications > CyberOPS > Wireshark y luego busque la
aplicación Wireshark.
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.
e. Haga clic en Clear display filter para mostrar toda la conversación de Wireshark.
a. Dentro de la captura de Wireshark, haga clic derecho en la línea 19, y luego haga clic
en Follow > HTTP Stream.
e. Haga clic en Clear display filter para mostrar toda la conversación de Wireshark.
c. El atacante ha ingresado una consulta (1’ or 1=1 union select null, version ()#) en un
cuadro de búsqueda de ID de usuario en el destino 10.0.2.15 para localizar el identificador de
la versión. Observe que es el identificador de versión se encuentra al final del resultado justo
antes de </pre>.</div> cierre del código HTML.
regunta:
¿Cuál es la versión?
MySQL 5.7.12-0
e. Haga clic en Clear display filter para mostrar toda la conversación de Wireshark.
El atacante sabe que hay gran cantidad de tablas SQL repletas de información. Trata de
encontrarlas.
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 un resultado mucho más corto filtrado por la aparición de
la palabra “users”.
e. Haga clic en Clear display filter para mostrar toda la conversación de Wireshark.
b. Hagan clic en Find (Buscar) e introduzcan 1=1. Busquen esta entrada. Cuando se
encuentre el texto, hagan clic en Cancel (Cancelar) en el cuadro de búsqueda de texto Find.
¡El atacante ha ingresado una consulta (1’ or 1=1 union select user, password from users#) en
un cuadro de búsqueda de ID de usuario en el destino 10.0.2.15 para obtener nombres de
usuario y hashes de contraseñas!
Pregunta:
1337
Pregunta:
charley
d. Cierren la ventana Follow HTTP Stream. Cierren todas las ventanas abiertas.
Preguntas de reflexión
1. ¿Cuál es el riesgo de hacer que las plataformas utilicen el lenguaje SQL?
Los sitios web son comúnmente impulsados por bases de datos y usan 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 deberían incluir: filtrar la entrada del usuario, implementar un
firewall de aplicaciones web, deshabilitar características y funciones innecesarias de la base
de datos, monitorear las sentencias SQL, usar parámetros con procedimientos almacenados y
usar parámetros con SQL dinámico.