Hacking Ético, Seguridad Informática, Redes, RedTeam

miércoles, 6 de julio de 2022

PENTESTING WEB PARTE 5

 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.

Ejemplo de como realizar una inyección SQLI.

Para realizarla vamos a ir al módulo de "passphrase generator", luego capturamos la petición y la mandamos al repeter.

Después mandamos la petición y vemos lo que responde, posterior a eso usamos a modo de ejemplo este payload "' OR '1'='1" , nos dirigimos al decoder y lo encodeamos en url y como vemos nos devuelve la petición exitosa de igual forma nos deja pasar la petición.







Ya vimos que nos funciono lo del payload ahora vamos a usar la herramienta sqlmap, con ello vamos a conseguir explotar y sacar la información de la base de datos, lo aremos de la siguiente forma,



Y con ello conseguimos realizar una inyección sqli y su explotación con sqlmap.


Espero les sea de utilidad, nos vemos en la siguiente entrada.

Happy-Hacking 😊