House of Rabbit
学习并练习 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习并练习 GCP 黑客技术:
HackTricks 培训 GCP 红队专家 (GRTE)
需求
能够修改快速分配区块的 fd 指针或大小:这意味着您可以更改快速分配区块中的一个块的前向指针或其大小。
能够触发
malloc_consolidate
:这可以通过分配一个大块或合并顶部块来实现,从而强制堆合并块。
目标
创建重叠块:使一个块与另一个块重叠,从而允许进一步的堆操作。
伪造假块:欺骗分配器,在堆操作期间将伪造的块视为合法块。
攻击步骤
POC 1:修改快速分配区块的大小
目标:通过操纵快速分配区块的大小来创建一个重叠的块。
步骤 1:分配块
步骤 2: 释放块
步骤 3: 修改块大小
步骤 4: 触发
malloc_consolidate
分配一个大块会触发malloc_consolidate
函数,合并快速分配区中的小块。chunk1
的操纵大小导致它与chunk2
重叠。
在合并后,chunk1
与chunk2
重叠,从而可以进一步利用。
POC 2: 修改fd
指针
fd
指针目标:通过操纵快速分配区的fd
指针来创建一个伪造的块。
步骤 1:分配块
解释:我们分配两个块,一个较小,一个较大,以设置堆以用于伪造块。
步骤 2:创建伪造块
步骤 3: 释放
chunk1
解释:我们释放chunk1
,将其添加到fastbin列表。
步骤 4:修改
chunk1
的fd
解释:我们将chunk1
的前向指针(fd
)更改为指向chunk2
内部的假块。
步骤 5: 触发
malloc_consolidate
重新分配一个大块会触发 malloc_consolidate
,这将处理伪造的块。
伪造的块成为快速分配链表的一部分,使其成为进一步利用的合法块。
摘要
兔子之屋 技术涉及修改快速分配链表块的大小以创建重叠块,或者操纵 fd
指针以创建伪造块。这使攻击者能够在堆中伪造合法块,从而实现各种形式的利用。理解并实践这些步骤将增强您的堆利用技能。
Last updated