PIE

Reading time: 2 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Temel Bilgiler

PIE olarak derlenmiş bir ikili, yani Pozisyon Bağımsız Yürütülebilir, programın her çalıştırıldığında farklı bellek konumlarında yüklenebileceği anlamına gelir, bu da sabit adreslerin önüne geçer.

Bu ikilileri istismar etmenin püf noktası, göreceli adresleri istismar etmektir—programın parçaları arasındaki ofsetler, mutlak konumlar değişse bile aynı kalır. PIE'yi atlatmak için yalnızca bir adres sızdırmanız gerekir, genellikle yığın üzerinden format dizesi saldırıları gibi zafiyetler kullanarak. Bir adres elde ettiğinizde, diğerlerini sabit ofsetleri ile hesaplayabilirsiniz.

PIE ikililerini istismar etmede yardımcı bir ipucu, temel adreslerinin genellikle 000 ile bitmesidir çünkü bellek sayfaları rastgeleleştirme birimleri olarak 0x1000 bayt boyutundadır. Bu hizalama, bir istismar beklenildiği gibi çalışmıyorsa kritik bir kontrol olabilir, doğru temel adresinin belirlenip belirlenmediğini gösterir.
Ya da bunu istismarınız için kullanabilirsiniz, eğer bir adresin 0x649e1024 konumunda olduğunu sızdırırsanız, temel adresin 0x649e1000 olduğunu bilirsiniz ve buradan sadece ofsetleri hesaplayabilirsiniz.

Atlatmalar

PIE'yi atlatmak için, yüklenmiş ikilinin bir adresini sızdırmak gereklidir, bunun için bazı seçenekler vardır:

  • ASLR devre dışı: ASLR devre dışı bırakıldığında, PIE ile derlenmiş bir ikili her zaman aynı adreste yüklenecektir, bu nedenle PIE işe yaramaz çünkü nesnelerin adresleri her zaman aynı yerde olacaktır.
  • Sızıntıyı almak (kolay CTF zorluklarında yaygındır, bu örneğe bakın)
  • Yığındaki doğru EBP ve EIP değerlerini sızdırana kadar brute-force yapmak:

BF Addresses in the Stack

  • Bir keyfi okuma zafiyetini kullanarak format dizesi gibi, ikilinin bir adresini sızdırmak (örneğin, önceki teknik gibi yığından) ikilinin temelini elde etmek ve buradan ofsetleri kullanmak için. Burada bir örnek bulun.

Referanslar

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin