Pointer Redirecting
String pointers
Eğer bir fonksiyon çağrısı, stack'te bulunan bir string'in adresini kullanacaksa, buffer overflow'u bu adresi üzerine yazmak ve binary içinde farklı bir string'in adresini koymak için kötüye kullanmak mümkündür.
Örneğin, bir system
fonksiyon çağrısı bir komutu çalıştırmak için bir string'in adresini kullanacaksa, bir saldırgan stack'te farklı bir string'in adresini yerleştirebilir, export PATH=.:$PATH
ve mevcut dizinde yeni string'in ilk harfi ile aynı isme sahip bir script oluşturabilir çünkü bu binary tarafından çalıştırılacaktır.
Bununla ilgili bir örneği şurada bulabilirsiniz:
32bit, stack'teki flags string'inin adresini değiştirerek
puts
ile yazdırılması
Function pointers
String pointer'lara benzer, ancak fonksiyonlara uygulanır; eğer stack'te çağrılacak bir fonksiyonun adresi varsa, bunu değiştirmek mümkündür (örneğin, system
çağrısını yapmak için).
Bununla ilgili bir örneği şurada bulabilirsiniz:
References
Last updated