hacktricks/binary-exploitation/libc-heap/overwriting-a-freed-chunk.md

50 lines
4 KiB
Markdown
Raw Normal View History

# Nadpisywanie zwolnionego fragmentu
{% hint style="success" %}
Dowiedz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Dowiedz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Wesprzyj HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](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)**.**
* **Dziel się trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
</details>
{% endhint %}
Kilka proponowanych technik eksploatacji sterty wymaga możliwości nadpisania wskaźników wewnątrz zwolnionych fragmentów. Celem tej strony jest podsumowanie potencjalnych podatności, które mogą umożliwić uzyskanie takiego dostępu:
### Proste Użycie Po Zwolnieniu
Jeśli atakujący może **zapisać informacje w zwolnionym fragmencie**, może to wykorzystać do nadpisania potrzebnych wskaźników.
### Podwójne Zwolnienie
Jeśli atakujący może **`zwolnić` dwa razy ten sam fragment** (zwolnić inne fragmenty pomiędzy potencjalnie) i sprawić, że będzie **2 razy w tym samym kubełku**, użytkownik będzie mógł **przydzielić później ten fragment**, **zapisać potrzebne wskaźniki** a następnie **ponownie go przydzielić**, co wywoła akcje związaną z przydzieleniem fragmentu (np. atak na szybki kubełek, atak na tcache...)
### Przepełnienie Sterty
Możliwe jest **przepełnienie przydzielonego fragmentu mającego następnie zwolniony fragment** i zmodyfikowanie niektórych nagłówków/wskaźników.
### Przepełnienie o jeden
W tym przypadku możliwe byłoby **zmodyfikowanie rozmiaru** następnego fragmentu w pamięci. Atakujący mógłby to wykorzystać, aby **przydzielić większy rozmiar przydzielonego fragmentu**, a następnie **`zwolnić`** go, sprawiając, że fragment zostanie **dodany do kubełka o innym** rozmiarze (większym), a następnie przydzielić **fałszywy rozmiar**, a atakujący będzie miał dostęp do **fragmentu o większym rozmiarze** niż w rzeczywistości, **umożliwiając tym samym sytuację nakładania się fragmentów**, która jest eksploatowalna w ten sam sposób co **przepełnienie sterty** (sprawdź poprzednią sekcję).
{% hint style="success" %}
Dowiedz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Dowiedz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Wesprzyj HackTricks</summary>
* Sprawdź [**plany subskrypcyjne**](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)**.**
* **Dziel się trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
</details>
{% endhint %}