Lernen & üben Sie AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Lernen & üben Sie GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
Da die Verschlüsselung in **festen****Größen****Blöcken** durchgeführt wird, ist in dem **letzten****Block** normalerweise **Padding** erforderlich, um seine Länge zu vervollständigen.\
In der Regel wird **PKCS7** verwendet, das ein Padding erzeugt, das die **Anzahl** der **benötigten****Bytes****wiederholt**, um den Block zu vervollständigen. Wenn der letzte Block beispielsweise 3 Bytes fehlt, wird das Padding `\x03\x03\x03` sein.
Wenn eine Anwendung verschlüsselte Daten entschlüsselt, wird sie zuerst die Daten entschlüsseln; dann wird sie das Padding entfernen. Während der Bereinigung des Paddings, wenn ein **ungültiges Padding ein erkennbares Verhalten auslöst**, haben Sie eine **Padding-Oracle-Schwachstelle**. Das erkennbare Verhalten kann ein **Fehler**, ein **Mangel an Ergebnissen** oder eine **langsamere Antwort** sein.
Sie könnten [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) verwenden, um diese Art von Schwachstelle auszunutzen oder einfach tun
Sie könnten auch **diese Schwachstelle ausnutzen, um neue Daten zu verschlüsseln. Zum Beispiel, stellen Sie sich vor, der Inhalt des Cookies ist "**_**user=MyUsername**_**", dann könnten Sie ihn in "\_user=administrator\_" ändern und die Berechtigungen innerhalb der Anwendung eskalieren. Sie könnten dies auch mit `paduster` tun, indem Sie den -plaintext** Parameter angeben:
Wenn die Seite anfällig ist, wird `padbuster` automatisch versuchen herauszufinden, wann der Padding-Fehler auftritt, aber Sie können auch die Fehlermeldung mit dem **-error** Parameter angeben.
In **Zusammenfassung** können Sie mit dem Entschlüsseln der verschlüsselten Daten beginnen, indem Sie die richtigen Werte erraten, die verwendet werden können, um alle **verschiedenen Paddings** zu erstellen. Dann beginnt der Padding-Oracle-Angriff, Bytes vom Ende zum Anfang zu entschlüsseln, indem erraten wird, welcher der richtige Wert ist, der **ein Padding von 1, 2, 3 usw. erzeugt**.
Stellen Sie sich vor, Sie haben einen verschlüsselten Text, der **2 Blöcke** umfasst, die aus den Bytes von **E0 bis E15** bestehen.\
Um den **letzten****Block** (**E8** bis **E15**) zu **entschlüsseln**, durchläuft der gesamte Block die "Blockchiffre-Entschlüsselung", die die **Zwischenbytes I0 bis I15** erzeugt.\
Jetzt ist es möglich, `E7` so zu **modifizieren**, dass `C15``0x01` ist, was ebenfalls ein korrektes Padding sein wird. In diesem Fall: `\x01 = I15 ^ E'7`
Dieses BF ist so komplex wie das vorherige, da es möglich ist, das `E''15` zu berechnen, dessen Wert 0x02 ist: `E''7 = \x02 ^ I15`, sodass nur **`E'14`** gefunden werden muss, das ein **`C14` erzeugt, das gleich `0x02` ist**.\
Dann die gleichen Schritte wiederholen, um C14 zu entschlüsseln: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
Registrieren Sie sich und melden Sie sich mit diesem Konto an.\
Wenn Sie sich **mehrmals anmelden** und immer dasselbe **Cookie** erhalten, ist wahrscheinlich **etwas****falsch** in der Anwendung. Das **zurückgesendete Cookie sollte jedes Mal einzigartig sein**, wenn Sie sich anmelden. Wenn das Cookie **immer** dasselbe ist, wird es wahrscheinlich immer gültig sein und es **wird keinen Weg geben, es zu ungültig zu machen**.
Wenn Sie jetzt versuchen, das **Cookie zu modifizieren**, sehen Sie, dass Sie einen **Fehler** von der Anwendung erhalten.\
Aber wenn Sie das Padding brute-forcen (zum Beispiel mit padbuster), schaffen Sie es, ein anderes Cookie zu erhalten, das für einen anderen Benutzer gültig ist. Dieses Szenario ist höchstwahrscheinlich anfällig für padbuster.
Lernen & üben Sie AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Lernen & üben Sie GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.