Print Stack Canary
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Enlarge printed stack
Zamislite situaciju u kojoj program koji je ranjiv na stack overflow može izvršiti puts funkciju koja pokazuje na deo stack overflow. Napadač zna da je prvi bajt canary nulti bajt (\x00
) i da su ostali bajtovi canary nasumični. Tada, napadač može kreirati overflow koji prepisuje stack sve do prvog bajta canary.
Zatim, napadač poziva puts funkcionalnost na sredini payload-a koja će odštampati celu canary (osim prvog nulti bajta).
Sa ovom informacijom, napadač može pripremiti i poslati novi napad znajući canary (u istoj sesiji programa).
Očigledno, ova taktika je veoma ograničena jer napadač mora biti u mogućnosti da odštampa sadržaj svog payload-a da bi izvukao canary i zatim biti u mogućnosti da kreira novi payload (u istoј sesiji programa) i pošalje pravi buffer overflow.
CTF primeri:
- https://guyinatuxedo.github.io/08-bof_dynamic/csawquals17_svc/index.html
- 64 bita, ASLR omogućeno ali bez PIE, prvi korak je popuniti overflow do bajta 0x00 canary da bi se zatim pozvao puts i otkrio ga. Sa canary se kreira ROP gadget za pozivanje puts da bi se otkrila adresa puts iz GOT-a i ROP gadget za pozivanje
system('/bin/sh')
- https://guyinatuxedo.github.io/14-ret_2_system/hxp18_poorCanary/index.html
- 32 bita, ARM, bez relro, canary, nx, bez pie. Overflow sa pozivom na puts da bi se otkrio canary + ret2lib pozivajući
system
sa ROP lancem za pop r0 (arg/bin/sh
) i pc (adresa system)
Arbitrary Read
Sa arbitrary read kao što je onaj koji pružaju format stringovi može biti moguće otkriti canary. Pogledajte ovaj primer: https://ir0nstone.gitbook.io/notes/types/stack/canaries i možete pročitati o zloupotrebi format stringova za čitanje proizvoljnih memorijskih adresa u:
- https://guyinatuxedo.github.io/14-ret_2_system/asis17_marymorton/index.html
- Ova izazov zloupotrebljava na veoma jednostavan način format string da bi pročitao canary sa stack-a
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.