# Groot Bin Aanval
Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **laai HackTricks af in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
## Basiese Inligting
Vir meer inligting oor wat 'n groot bin is, kyk na hierdie bladsy:
{% content-ref url="bins-and-memory-allocations.md" %}
[bins-and-memory-allocations.md](bins-and-memory-allocations.md)
{% endcontent-ref %}
Dit is moontlik om 'n goeie voorbeeld te vind in [**how2heap - groot bin aanval**](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/large\_bin\_attack.c).
Basies kan jy hier sien hoe, in die nuutste "huidige" weergawe van glibc (2.35), dit nie nagegaan word nie: **`P->bk_nextsize`** wat dit moontlik maak om 'n arbitrêre adres te wysig met die waarde van 'n groot bin brokkie as sekere voorwaardes voldoen word.
In daardie voorbeeld kan jy die volgende voorwaardes vind:
* 'n Groot brokkie word toegewys
* 'n Groot brokkie kleiner as die eerste een maar in dieselfde indeks word toegewys
* Dit moet kleiner wees sodat dit eerste in die bin moet gaan
* ( 'n Brokkie om saamvoeging met die boonste brokkie te voorkom word geskep)
* Dan word die eerste groot brokkie vrygestel en 'n nuwe brokkie groter as dit toegewys -> Brokkie1 gaan na die groot bin
* Dan word die tweede groot brokkie vrygestel
* Nou, die kwesbaarheid: Die aanvaller kan `chunk1->bk_nextsize` wysig na `[target-0x20]`
* Dan word 'n groter brokkie as brokkie 2 toegewys, sodat brokkie2 in die groot bin ingevoeg word en die adres `chunk1->bk_nextsize->fd_nextsize` met die adres van brokkie2 oorskryf
{% hint style="success" %}
Daar is ander potensiële scenario's, die ding is om 'n brokkie by die groot bin te voeg wat **kleiner** is as 'n huidige X brokkie in die bin, sodat dit net voor dit in die bin ingevoeg moet word, en ons moet in staat wees om X se **`bk_nextsize`** te wysig aangesien dit waar die adres van die klein brokkie geskryf sal word.
{% endhint %}
Hierdie is die relevante kode van malloc. Kommentaar is bygevoeg om beter te verstaan hoe die adres oorskryf is:
{% code overflow="wrap" %}
```c
/* if smaller than smallest, bypass loop below */
assert (chunk_main_arena (bck->bk));
if ((unsigned long) (size) < (unsigned long) chunksize_nomask (bck->bk))
{
fwd = bck; // fwd = p1
bck = bck->bk; // bck = p1->bk
victim->fd_nextsize = fwd->fd; // p2->fd_nextsize = p1->fd (Note that p1->fd is p1 as it's the only chunk)
victim->bk_nextsize = fwd->fd->bk_nextsize; // p2->bk_nextsize = p1->fd->bk_nextsize
fwd->fd->bk_nextsize = victim->bk_nextsize->fd_nextsize = victim; // p1->fd->bk_nextsize->fd_nextsize = p2
}
```
{% endcode %}
Dit kan gebruik word om die **`global_max_fast` globale veranderlike** van libc te oorskryf om dan 'n vinnige bin-aanval met groter blokke te benut.
Jy kan 'n ander goeie verduideliking van hierdie aanval vind by [**guyinatuxedo**](https://guyinatuxedo.github.io/32-largebin\_attack/largebin\_explanation0/index.html).
### Ander voorbeelde
* [**La casa de papel. HackOn CTF 2024**](https://7rocky.github.io/en/ctf/other/hackon-ctf/la-casa-de-papel/)
* Groot bin-aanval in dieselfde situasie soos dit verskyn in [**how2heap**](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/large\_bin\_attack.c).
* Die skryf-primitief is meer kompleks, omdat `global_max_fast` hier nutteloos is.
* FSOP is nodig om die aanval af te handel.
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.