Uso de ZAP - SQLI y XSS

  • 1 Respuestas
  • 5033 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xyz

  • *
  • Ex-Staff
  • *****
  • Mensajes: 533
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • Under0cde

Uso de ZAP - SQLI y XSS

  • en: Marzo 19, 2017, 08:39:17 pm
Utilizando ZAP para SQLI y XSS.

En esta ocasión vengo con algo con lo que he estado estudiando y quiero compartir.

Para este laboratorio es necesario leer los siguientes posts:


Que es ZAP.
Citar
OWASP Zed Attack Proxy (ZAP) es una de las herramientas más populares libres de seguridad y activamente mantenida por centenares de voluntarios internacionales. Puede ayudar automaticamente a encontrar vulnerabilidades de seguridad en aplicaciones Web mientras desarrolla y verifican nuevas aplicaciones.
Es una gran herramienta para pentesters, con experiencia, para utilizar como herramienta de testeo manual.

Sitio oficial de la aplicación.
Código: You are not allowed to view links. Register or Login
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

De aquí debe conocer lo que es un Proxy.
Citar
Un programa que hace de intermediario en las peticiones que realiza un cliente a otro servidor
Fuente:
Código: You are not allowed to view links. Register or Login
https://es.wikipedia.org/wiki/Servidor_proxy
Entonces, ZAP permite interceptar solicitudes; aquí es cuando tiene que investigar....

Luego de bajar la aplicación You are not allowed to view links. Register or Login, instalar y ejecutar obtendrá la siguiente imagen:



Donde pregunta si:
  • Si, quiero que esta sesión sea persistente con el nombre y la marca de tiempo actual
  • Si, quiero que esta sesión sea persistente pero quiero especificar el nombre y ubicación
  • No, no quiero que la sesión sea persistente en este momento

Permitiendo elegir si queremos guardar o no, el proyecto actual de investigación.

Luego es posible cambiar la configuración del proxy:
Menú Herramientas - Opciones



La misma, debe replicar en el navegador que utilice para la investigación.



A partir de aquí, se trabajará en laboratorios locales para demostrar el uso de ZAP, cabe remarcar que la potencia de la herramienta está en el uso del estudiante/investigador/pentester.

La herramienta seleccionada para tal efecto es OWASP - BWA
 
Código: You are not allowed to view links. Register or Login
https://www.owasp.org/index.php/OWASP_Broken_Web_Applications_Project
Continuando con el trabajo de campo, Buggy Web App (BWAPP) es el marco que permitira continuar con el trabajo.



ZAP ya ha empezado a capturar trafico de la red local, precisamente, lo que interesa.



Como indica la imagen anterior, la división del panel muestra:
  • Izquierda (Sitios) las páginas que está interceptando
  • Derecha (Petición-Respuesta) donde estarán las peticiones y respuestas web que se realicen desde y hacia el sitio vulnerable.
  • Panel inferior (Historia-Buscar-Alertas-Salida) encontrará marcas de tiempo, método utilizado por la petición (Get-Post) código de respuesta del sitio, etc.

Comenzando con SQLI

A partir de aquí, utilizaremos el navegador, solo para realizar una petición y así conocer los campos con los que ZAP empezara a inyectar.



Volviendo a ZAP veremos que a interceptado una consulta e informa los campos que utiliza la aplicación web.



La imagen anterior muestra claramente la intercepción de la consulta donde indica el campo del formulario (Title).

Procedemos a seleccionar el valor del campo Title y hacer clic derecho con el mouse e ir a la opción renviar.



La nueva ventana que emerge es la que permite realizar los renvios de peticiones modificadas y analizar la respuesta.



Donde, debemos realizar una POC (Proof of concept) para identificar si el campo que envía el valor de la variable es o no vulnerable.



La imagen anterior, ratifica el POC.
Como indica la respuesta de la solicitud, efectivamente visualizamos el siguiente mensaje de error:
 
Código: You are not allowed to view links. Register or Login
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%'' at line 1.
 

Solo basta con realizar la inyección adecuada para obtener información sensible, como muestra la siguiente imagen.



Finalizando con XSS

Para este laboratorio, cambiamos la configuración en BWAPP a Xss.



Aquí debemos tener en cuenta que al tratarse de una vulnerabilidad XSS, tendremos que leer un poco el codigo fuente y la posible inyección.

La prueba de concepto (POC) empieza en el sitio web y continua con el estudio en ZAP.



Luego de ingresar los valores en los campos, nos dirigimos a ZAP para investigar las solicitudes y respuestas.



Visualizamos que nos hay parametros enviados, pero.... la cabecera (Headers) algo estan indicando, que efectivamente se esta enviando una petición, que pasaría si modificamos esa cabecera.

Para conocer el comportamiento del sitio, enviamos la solicitud sin modificar y el código fuente, algo debería indicar.

Código Fuente sin la inyección en el header
Código: You are not allowed to view links. Register or Login
<div id="main">
   
    <h1>XSS - Reflected (GET)</h1>

    <p>Enter your first and last name:</p>

    <form action="/bWAPP/xss_get.php" method="GET">

        <p><label for="firstname">First name:</label><br />
        <input type="text" id="firstname" name="firstname"></p>

        <p><label for="lastname">Last name:</label><br />
        <input type="text" id="lastname" name="lastname"></p>

        <button type="submit" name="form" value="submit">Go</button> 

    </form>

Procedemos a modificar el header.



Ahora continuamos con la modificación y lectura de código a ver si, tenemos éxito.



Código con la inyección
Código: You are not allowed to view links. Register or Login
<div id="main">
   
    <h1>XSS - Reflected (GET)</h1>

    <p>Enter your first and last name:</p>

    <form action="/bWAPP/xss_get.php" method="GET">

        <p><label for="firstname">First name:</label><br />
        <input type="text" id="firstname" name="firstname"></p>

        <p><label for="lastname">Last name:</label><br />
        <input type="text" id="lastname" name="lastname"></p>

        <button type="submit" name="form" value="submit">Go</button> 

    </form>

    <br />
    Welcome <script>alert(document.cookie)</script> XSS

A simple vista, el código indica que la inyección se ejecutó correctamente.

Para finalizar el POC, iremos al sitio web e inyectaremos en alguno de los campos.



El payload a utilizar es:
 
Código: You are not allowed to view links. Register or Login
<script>alert(document.cookie)</script>
Presionamos en el botón "GO" y .......




La aplicación ZAP, es muy potente y extremadamente parametrizable, lo que he abarcado aquí es solo un 5% de lo que puede realizar.

Muchas gracias por tomarse el tiempo en leer el extenso post.

Saludos !!!

Desconectado Blackwings

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Uso de ZAP - SQLI y XSS

  • en: Octubre 09, 2017, 08:18:02 pm
Me ha aclarado algunas dudas.
Muchas gracias!
..:[Sombras del pasado]:..

 

Realizando un ataque báscio de SQLi mediante metodo POST desde 0

Iniciado por m0rf30

Respuestas: 1
Vistas: 3538
Último mensaje Julio 16, 2016, 05:42:55 am
por Uservzk80
WhoUr herramienta para recopilar informacion de una web y buscar webs a vul sqli

Iniciado por jopcode

Respuestas: 0
Vistas: 3225
Último mensaje Noviembre 30, 2017, 10:57:00 pm
por jopcode
[Video- español] Curso de SQL INJECTION (SQLI) - Básico a Avanzado

Iniciado por Franciscodc

Respuestas: 1
Vistas: 7753
Último mensaje Agosto 29, 2018, 02:50:31 am
por Lmntr1x
Escalando privilegios en un servidor Windows desde una SQLi.

Iniciado por m0rf30

Respuestas: 3
Vistas: 5042
Último mensaje Septiembre 26, 2017, 03:27:48 pm
por zoro248
Realizando un ataque de SQLi desde 0 con SQLMap

Iniciado por m0rf30

Respuestas: 1
Vistas: 4434
Último mensaje Julio 16, 2016, 10:59:28 am
por ANTRAX