Print Stack Canary
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Yığın taşmasına duyarlı bir programın, yığın taşmasının bir kısmına işaret eden bir puts fonksiyonunu çalıştırabileceği bir durumu hayal edin. Saldırgan, kanaryanın ilk baytının bir null baytı (\x00
) olduğunu ve kanaryanın geri kalanının rastgele baytlar olduğunu bilir. Ardından, saldırgan, kanaryanın sadece ilk baytını aşındıran bir taşma oluşturabilir.
Sonra, saldırgan yükün ortasında puts fonksiyonunu çağırır ve bu, kanaryayı (ilk null bayt hariç) yazdırır.
Bu bilgiyle saldırgan, kanaryayı (aynı program oturumunda) bilerek yeni bir saldırı oluşturup gönderebilir.
Açıkça, bu taktik çok kısıtlıdır çünkü saldırganın kanaryayı sızdırmak için yükünün içeriğini yazdırabilmesi ve ardından yeni bir yük oluşturup (aynı program oturumunda) gerçek tampon taşmasını gönderebilmesi gerekir.
CTF örnekleri:
64 bit, ASLR etkin ama PIE yok, ilk adım kanaryanın 0x00 baytına kadar bir taşma doldurmak ve ardından puts çağırarak sızdırmaktır. Kanarya ile bir ROP aparatı oluşturulur, puts'u çağırarak puts'un GOT'dan adresini sızdırır ve ardından system('/bin/sh')
çağırmak için bir ROP aparatı.
32 bit, ARM, relro yok, kanarya, nx, pie yok. Kanaryayı sızdırmak için puts çağrısıyla bir taşma. ROP zinciri ile r0'ı (arg /bin/sh
) ve pc'yi (system adresi) poplamak için system
çağrısı.
Format dizeleri tarafından sağlanan bir keyfi okuma ile kanaryayı sızdırmak mümkün olabilir. Bu örneğe bakın: https://ir0nstone.gitbook.io/notes/types/stack/canaries ve keyfi bellek adreslerini okumak için format dizelerini kötüye kullanma hakkında okuyabilirsiniz:
Format StringsBu zorluk, yığından kanaryayı okumak için çok basit bir şekilde bir format dizesini kötüye kullanıyor.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)