PENTESTING WEB PARTE 5 - SQLI
¿Qué es SQLI?
Un ataque de inyección SQL consiste en la
inserción o “inyección” de una consulta SQL a través de los datos de entrada
del cliente a la aplicación. Un exploit de inyección SQL exitoso puede leer
datos confidenciales de la base de datos, modificar datos de la base de datos
(Insertar/Actualizar/Eliminar), ejecutar operaciones de administración en la
base de datos (como apagar el DBMS), recuperar el contenido de un archivo dado
presente en el archivo DBMS sistema y, en algunos casos, emitir comandos al
sistema operativo. Los ataques de inyección SQL son un tipo de ataque de
inyección, en el que los comandos SQL se inyectan en la entrada del plano de
datos para afectar la ejecución de los comandos SQL predefinidos.
Tipos de ataques SQLI
- Ataque por error: Es el ataque más común y el más fácil de explotar ya que es la propia aplicación la que va indicando los errores de la base de datos al realizar las diferentes consultas.
- Ataque por unión: Este tipo de ataque consiste en que el portal devuelva un resultado, y a partir de ahí, añadir al resultado original el resultado de otra query de tal forma que se muestren junto con los datos del portal, los datos sensibles del mismo que no debería de poderse obtener.
- Ataque ciego (blind): Es el ataque más complicado, es la última opción cuando ninguno de los ataques anteriores funciona. En este caso hay que ser muy creativos y se deben de realizar preguntas a la base de datos mediante booleanos, es decir, verdadero o falso.
- Basado en condicionales: Si la consulta está bien mostrará los resultados, sino no.
- Basada en tiempo: Si la consulta es correcta devolverá los resultados a los N segundos, sino no.
Espero les sea de utilidad, nos vemos en la siguiente entrada.