Codificación y Decodificación en Burp y ZAP

Cuando manipulamos y enviamos solicitudes HTTP personalizadas, a menudo necesitamos codificar o decodificar datos para que el servidor pueda procesarlos correctamente.
Tanto Burp Suite como OWASP ZAP incluyen herramientas internas que facilitan estos procesos.


🌐🔑 Codificación URL (URL-Encoding)

Es fundamental asegurarse de que:

Si esto no se cumple, el servidor puede:

❗ Caracteres que deben codificarse

Carácter Problema si NO se codifica
Espacios Pueden cortar el valor de un parámetro
& Se interpreta como separador de parámetros
# Se interpreta como inicio de un fragmento

🧱 Burp Suite – Codificación URL

En Repeater puedes codificar texto:

o más rápido:

Pasted image 20251126185237.png
Burp también ofrece:


⚡ ZAP – Codificación URL

ZAP suele codificar automáticamente los datos del cuerpo antes de enviarlos, aunque no siempre lo muestra explícitamente en el editor.
Pasted image 20251126185244.png


🔓 Decodificación

Las aplicaciones web suelen codificar datos sensibles, como:

Por ello es esencial poder decodificar rápidamente estos valores.

🧰 Codificaciones soportadas por Burp y ZAP


🧱 Burp Suite – Decoder

En Burp:

Decoder tab
Pasted image 20251126185300.png
Ahí puedes:

Valor observado:

eyJ1c2VybmFtZSI6Imd1ZXN0IiwgImlzX2FkbWluIjpmYWxzZX0=

Al decodificar obtenemos:

{"username":"guest", "is_admin":false}

Burp Decoder permite:

Burp Inspector

Herramienta moderna integrada en:

Permite ver decodificaciones automáticas en paralelo a la solicitud.


⚡ ZAP – Encoder / Decoder / Hash

Atajo:

CTRL+E

ZAP muestra:

También puedes crear pestañas personalizadas para agrupar tus codificadores favoritos.


🔧 Ejemplo Completo: Modificación de Cookie

Supongamos que encontramos esta cookie:

{"username":"guest", "is_admin":false}

Podemos intentar escalar privilegios:

  1. Cambiar a:

{"username":"admin", "is_admin":true}

  1. Codificar nuevamente en Base64

Resultado:

eyJ1c2VybmFtZSI6ImFkbWluIiwgImlzX2FkbWluIjp0cnVlfQ==

  1. Usar esta nueva cadena en:

🔍 Esto nos permite probar si la aplicación confía en los datos codificados sin validarlos.