Print Stack Canary
Reading time: 3 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Vergroot gedrukte stapel
Stel jou 'n situasie voor waar 'n program wat kwesbaar is vir stapel oorgang 'n puts funksie kan uitvoer wat wys na deel van die stapel oorgang. Die aanvaller weet dat die eerste byte van die canary 'n null byte is (\x00
) en die res van die canary is ewekansige bytes. Dan kan die aanvaller 'n oorgang skep wat die stapel oorskryf tot net die eerste byte van die canary.
Dan roep die aanvaller die puts funksionaliteit in die middel van die payload wat alle canary sal druk (behalwe vir die eerste null byte).
Met hierdie inligting kan die aanvaller 'n nuwe aanval saamstel en stuur terwyl hy die canary ken (in dieselfde program sessie).
Dit is duidelik dat hierdie taktiek baie beperk is aangesien die aanvaller in staat moet wees om die inhoud van sy payload te druk om die canary te exfiltreer en dan in staat te wees om 'n nuwe payload te skep (in die dieselfde program sessie) en die werklike buffer oorgang te stuur.
CTF voorbeelde:
- https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html
- 64 bit, ASLR geaktiveer maar geen PIE, die eerste stap is om 'n oorgang te vul tot die byte 0x00 van die canary om dan puts te roep en dit te lek. Met die canary word 'n ROP gadget geskep om puts te roep om die adres van puts van die GOT te lek en dan 'n ROP gadget om
system('/bin/sh')
te roep. - https://guyinatuxedo.github.io/14-ret_2_system/hxp18_poorCanary/index.html
- 32 bit, ARM, geen relro, canary, nx, geen pie. Oorgang met 'n oproep na puts daarop om die canary te lek + ret2lib wat
system
met 'n ROP ketting roep om r0 (arg/bin/sh
) en pc (adres van system) te pop.
Arbitraire Lees
Met 'n arbitraire lees soos die een wat deur formaat strings verskaf word, mag dit moontlik wees om die canary te lek. Kyk na hierdie voorbeeld: https://ir0nstone.gitbook.io/notes/types/stack/canaries en jy kan lees oor die misbruik van formaat strings om arbitraire geheue adresse te lees in:
- https://guyinatuxedo.github.io/14-ret_2_system/asis17_marymorton/index.html
- Hierdie uitdaging misbruik op 'n baie eenvoudige manier 'n formaat string om die canary van die stapel te lees.
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.