Pointer Redirecting
Dize işaretçileri
Bir işlev çağrısı, yığında bulunan bir dizenin adresini kullanacaksa, bu adresi üzerine yazarak ve ikili dosya içine farklı bir dize adresi koyarak tampon taşmasını kötüye kullanmak mümkündür.
Örneğin bir system
işlev çağrısının bir komutu yürütmek için bir dize adresini kullanacağı durumda, saldırgan yığında farklı bir dize adresini yerleştirebilir, export PATH=.:$PATH
ve mevcut dizine yeni dizenin ilk harfinin adını taşıyan bir betik oluşturabilir çünkü bu ikili dosya tarafından yürütülecektir.
Bunu bir örnekte bulabilirsiniz:
32 bitlik sistemlerde, yığında adresi bayraklar dizesine değiştirerek
puts
tarafından yazdırılmasını sağlayın
İşlev işaretçileri
Dize işaretçisiyle aynı prensip, ancak işlevlere uygulanır, eğer yığında çağrılacak bir işlevin adresi varsa, bunu değiştirmek mümkündür (örneğin system
'i çağırmak için).
Bir örneği şurada bulabilirsiniz:
Referanslar
Last updated