<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
Ponieważ szyfrowanie jest wykonywane w **blokach o stałej wielkości**, zazwyczaj potrzebne jest **uzupełnienie** w **ostatnim****bloku**, aby uzupełnić jego długość.\
Zazwyczaj używany jest **PKCS7**, który generuje uzupełnienie **powtarzając****liczbę****bajtów**, **które są potrzebne**, aby **uzupełnić** blok. Na przykład, jeśli ostatni blok brakuje 3 bajtów, uzupełnienie będzie `\x03\x03\x03`.
Gdy aplikacja odszyfrowuje dane, najpierw odszyfrowuje dane, a następnie usuwa uzupełnienie. Podczas usuwania uzupełnienia, jeśli **nieprawidłowe uzupełnienie wywołuje wykrywalne zachowanie**, mamy do czynienia z **podatnością na padding oracle**. Wykrywalne zachowanie może być **błędem**, **brakiem wyników** lub **wolniejszą odpowiedzią**.
Możesz użyć [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster), aby wykorzystać tego rodzaju podatność lub po prostu wykonać
Możesz również **wykorzystać tę podatność do szyfrowania nowych danych. Na przykład, wyobraź sobie, że zawartość ciasteczka to "**_**user=MyUsername**_**", wtedy możesz ją zmienić na "\_user=administrator\_" i podnieść uprawnienia wewnątrz aplikacji. Możesz to również zrobić, używając `paduster` i określając parametr -plaintext**.
Jeśli strona jest podatna, `padbuster` automatycznie spróbuje znaleźć moment wystąpienia błędu w dopełnianiu, ale można również wskazać komunikat o błędzie za pomocą parametru **-error**.
Podsumowując, można rozpocząć deszyfrowanie zaszyfrowanych danych, zgadując poprawne wartości, które mogą być użyte do utworzenia wszystkich różnych wypełnień. Następnie atak na orakulum wypełnienia rozpocznie deszyfrowanie bajtów od końca do początku, zgadując, jaka będzie poprawna wartość, która tworzy wypełnienie o wartości 1, 2, 3, itd.
Wyobraź sobie, że masz zaszyfrowany tekst, który zajmuje 2 bloki utworzone przez bajty od E0 do E15. Aby odszyfrować ostatni blok (od E8 do E15), cały blok przechodzi przez "deszyfrowanie szyfru blokowego", generując pośrednie bajty I0 do I15. Ostatecznie każdy pośredni bajt jest XORowany z poprzednimi zaszyfrowanymi bajtami (E0 do E7). Więc:
Ten BF jest tak samo skomplikowany jak poprzedni, ponieważ można obliczyć `E''15`, którego wartość wynosi 0x02: `E''7 = \x02 ^ I15`, więc wystarczy znaleźć **`E'14`**, który generuje **`C14` równy `0x02`**.\
Następnie wykonaj te same kroki, aby odszyfrować C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
Jeśli **zalogujesz się wiele razy** i za każdym razem otrzymasz **ten sam ciasteczko**, prawdopodobnie **coś jest nie tak** w aplikacji. Ciasteczko wysyłane z powrotem powinno być unikalne za każdym razem, gdy się logujesz. Jeśli ciasteczko jest **zawsze** takie **same**, prawdopodobnie zawsze będzie ważne i nie będzie możliwości jego unieważnienia.
Teraz, jeśli spróbujesz **zmodyfikować** ciasteczko, zobaczysz, że otrzymujesz **błąd** od aplikacji.\
Ale jeśli brute-force'ujesz wypełnienie (używając np. padbuster), uda ci się uzyskać inne ciasteczko ważne dla innego użytkownika. Ten scenariusz jest bardzo prawdopodobnie podatny na padbuster.
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.