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)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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.
Uvećaj štampanu stog
Zamislite situaciju u kojoj program koji je ranjiv na prelivanje stoga može izvršiti puts funkciju koja pokazuje na deo prelivanja stoga. Napadač zna da je prvi bajt kanarija null bajt (\x00
) i da su ostali bajtovi kanarija nasumični. Tada, napadač može kreirati preliv koji prepisuje stog sve do prvog bajta kanarija.
Zatim, napadač poziva puts funkcionalnost u sredini payload-a koja će odštampati ceo kanarij (osim prvog null bajta).
Sa ovom informacijom, napadač može izraditi i poslati novi napad znajući kanarij (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 ekstraktovao kanarij 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 preliv do bajta 0x00 kanarija da bi se zatim pozvao puts i otkrio ga. Sa kanarijem se kreira ROP gadget za pozivanje puts da se otkrije 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, kanarij, nx, bez pie. Preliv sa pozivom na puts da se otkrije kanarij + ret2lib pozivajući
system
sa ROP lancem da se popuni r0 (arg/bin/sh
) i pc (adresa sistema)
Arbitrarni Čitanje
Sa arbitrarnim čitanjem poput onog koji pružaju formatne nizove može biti moguće otkriti kanarij. Pogledajte ovaj primer: https://ir0nstone.gitbook.io/notes/types/stack/canaries i možete pročitati o zloupotrebi formatnih nizova za čitanje arbitrarnim memorijskim adresama u:
- https://guyinatuxedo.github.io/14-ret_2_system/asis17_marymorton/index.html
- Ova izazov zloupotrebljava na veoma jednostavan način formatni niz da pročita kanarij sa stoga
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)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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.