House of Einherjar

Ondersteun HackTricks

Basiese Inligting

Kode

Doel

  • Die doel is om geheue by amper enige spesifieke adres toe te ken.

Vereistes

  • Skep 'n vals stuk wanneer ons 'n stuk wil toeken:

  • Stel aanwysers in om na homself te wys om sinnigheidskontroles te omseil

  • Een-byte oorvloei met 'n nulbyte van een stuk na die volgende om die PREV_INUSE-vlag te wysig.

  • Dui in die prev_size van die off-by-null misbruikte stuk die verskil tussen homself en die vals stuk aan

  • Die grootte van die vals stuk moet ook dieselfde grootte wees om sinnigheidskontroles te omseil

  • Vir die konstruksie van hierdie stukke, sal jy 'n hoop lek nodig hê.

Aanval

  • n Vals stuk word binne 'n stuk wat deur die aanvaller beheer word, geskep wat met fdenbk` na die oorspronklike stuk wys om beskerming te omseil

  • 2 ander stukke (B en C) word toegewys

  • Deur die off by one in die B een te misbruik, word die prev in use-bit skoongemaak en die prev_size-data word oorskryf met die verskil tussen die plek waar die C-stuk toegewys is, na die vals A-stuk wat voorheen gegenereer is

  • Hierdie prev_size en die grootte in die vals stuk A moet dieselfde wees om kontroles te omseil.

  • Dan word die tcache gevul

  • Dan word C vrygestel sodat dit konsolideer met die vals stuk A

  • Dan word 'n nuwe stuk D geskep wat in die vals A-stuk begin en die B-stuk dek

  • Die huis van Einherjar eindig hier

  • Dit kan voortgesit word met 'n vinnige bin-aanval of Tcache-vergiftiging:

  • Stel B vry om dit by die vinnige bin / Tcache te voeg

  • B se fd word oorskryf sodat dit na die teikenadres wys deur die D-stuk te misbruik (omdat dit B binne bevat)

  • Dan word 2 mallocs gedoen en die tweede een gaan die teikenadres toeken

Verwysings en ander voorbeelde

Ondersteun HackTricks

Last updated