House of Force

Reading time: 5 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

Kod

  • Bu teknik yamanmıştır (burada) ve bu hatayı üretir: malloc(): corrupted top size
  • İsterseniz bunu test etmek için buradaki kodu deneyebilirsiniz.

Amaç

  • Bu saldırının amacı, belirli bir adreste bir parça ayırabilmektir.

Gereksinimler

  • Üst parça başlığının boyutunu (örneğin -1) yazmayı sağlayan bir taşma.
  • Yığın tahsisi boyutunu kontrol edebilme

Saldırı

Eğer bir saldırgan, burada bir değeri yazmak için P adresinde bir parça ayırmak istiyorsa, üst parça boyutunu -1 ile (belki bir taşma ile) yazmaya başlar. Bu, malloc'un herhangi bir tahsis için mmap kullanmayacağından emin olur çünkü Üst parça her zaman yeterli alana sahip olacaktır.

Sonra, üst parçanın adresi ile tahsis edilecek hedef alan arasındaki mesafeyi hesaplayın. Bunun nedeni, o boyutta bir malloc'un, üst parçayı o konuma taşımak için yapılacak olmasıdır. Farkın/boyutun nasıl kolayca hesaplanabileceği:

c
// From https://github.com/shellphish/how2heap/blob/master/glibc_2.27/house_of_force.c#L59C2-L67C5
/*
* The evil_size is calulcated as (nb is the number of bytes requested + space for metadata):
* new_top = old_top + nb
* nb = new_top - old_top
* req + 2sizeof(long) = new_top - old_top
* req = new_top - old_top - 2sizeof(long)
* req = target - 2sizeof(long) - old_top - 2sizeof(long)
* req = target - old_top - 4*sizeof(long)
*/

Bu nedenle, target - old_top - 4*sizeof(long) boyutunu ayırmak (4 long, üst parça ve yeni parça için meta veriler nedeniyle) üst parçayı üzerine yazmak istediğimiz adrese taşıyacaktır.
Sonra, hedef adreste bir parça almak için başka bir malloc yapın.

Referanslar ve Diğer Örnekler

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