14 abr 2020

BURPees: Wonders Of Decoding MQ==

Meowy buenas! A la hora de interceptar peticiones con Burp Suite, en ocasiones, nos encontramos parámetros cuyos valores están codificados para que no vayan en plano directamente, pero que a pesar de ello, usan codificaciones débiles. ¿Y si el valor del parámetro decodificado no se tratase de un valor como tal, sino que fuese otra estructura de datos que aporta información? De eso trata nuestro post de hoy.

En el ejemplo que vamos a usar, tendremos en cuenta que el valor decodificado del parámetro tiene un aspecto tal que:

{"parametro":"valorQueVaACambiar";}

Pero esto no es lo mejor, sino que nos damos cuenta de que valorQueVaACambiar se trata de un identificador numérico que podría dar acceso a, por ejemplo, documentos PDF con información sensible, perfiles de los usuarios internos de la aplicación, etc.

Por lo que, con esta introducción, el siguiente pensamiento puede ser ¿cómo automatizo esto para obtener más información?



Para poder comprender mejor cómo usar esta información en Burp, vamos a descomponer el string en 3 cadenas:
  • {"parametro":" > va a ser un string que no va a variar en las peticiones a automatizar.
  • valorQueVaACambiar > representa a los identificadores que nos interesa que cambien (y así acceder a la información sensible correspondiente).
  • ";} > esta parte también será igual para todas las peticiones.
Y ahora sí, vamos por pasos:

1. Enviamos al Intruder la petición sobre la que queremos hacer las pruebas (recordemos: botón derecho sobre la petición y pulsamos en Send to Intruder, o seleccionando la petición y hacemos Ctrl+I) y cambiamos a la pestaña de Intruder.



Una vez en ésta, en el valor del parámetro que nos interese (mixedresources en este ejemplo) y pondremos §valorCodificado§ (seleccionando el valor del parámetro y con el botón Add).



2. En la pestaña Payloads indicamos que el Payload type será Custom iterator.

Antes de continuar debemos saber que este tipo de payload nos permite personalizar el patrón con el que enviaremos el payload. Esto quiere decir que, en cada una de las 8 posiciones (en el apartado de Payload Options) que podemos usar como máximo, introduciremos cada una de las partes del payload. Como podemos ver en la parte de debajo de la imagen, cada una de esas partes a su vez la podemos dividir con lo que Burp llama un separador (Separator), que se corresponde con un caracter a modo de , ; - / : (según el caso que corresponda).

En nuestro caso no vamos a necesitar este separador, ya que la concatenación de nuestros strings es más sencilla, pero es bueno conocer cómo funciona este tipo de payload.



Volviendo a nuestro ejemplo, como el string decodificado lo hemos dividido en 3 partes, vamos a usar las 3 primeras posiciones. Apoyándonos en la siguiente imagen, donde vemos Position 1, es donde pondremos la primera parte del string.



3. Ahora cambiamos Position a 2, de forma que valorQueVaACambiar es el número que va a ir modificándose en cada petición que se realice durante el ataque (en el caso de poner un conjunto de items en cada Position aumentaría lógicamente el número de payloads que se usarían en el ataque, ya que se combinarían). La lista de números a introducir en este campo la debemos tener previamente creada, de forma que, al ser en este caso iterativa, podríamos haberla obtenido, por ejemplo, de un excel extendiendo las celdas del primer elemento (no todo tiene porqué ser con burp :P).



4. En esta parte la Position será 3 y cerraremos el string como indica la imagen siguiente:



5. Antes de terminar, añadiremos el tipo de codificación que se va a usar en cada petición, por lo que en el apartado Payload Processing añadiremos Base64-encode.


Una vez que se ha añadido, la opción tendrá el siguiente aspecto:



Finalmente, podremos dar al botón de Start attack, y el payload tendrá un aspecto similar al de la siguiente imagen:


A modo de nota final, el activo sobre el que han sido realizadas las evidencias que hemos ido mostrando no es real (y cualquier parecido con una posible realidad es casualidad), ha sido elegido así para que vieráis el proceso seguido para realizar esta técnica.

Espero que os haya resultado útil esta píldora de las muchas posibilidades que nos ofrece la herramienta Burp Suite.

Muchos maullidos!
M

No hay comentarios:

Publicar un comentario