hacktricks/binary-exploitation/heap/house-of-einherjar.md

3.5 KiB
Raw Blame History

Einherjar之屋

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

基本信息

代码

目标

  • 目标是在几乎任意特定地址上分配内存。

要求

  • 当我们想要分配一个块时,创建一个假块:
  • 设置指针指向自身以绕过完整性检查
  • 从一个块到另一个块的偏移一个字节,修改前一个块的使用情况
  • 在被滥用的偏移一个字节的块的prev_size中指示自身与假块之间的差异
  • 假块的大小也必须设置为相同的大小以绕过完整性检查
  • 要构造这些块,您将需要一个堆泄漏。

攻击

  • 攻击者在一个受攻击者控制的块内创建一个假块,用fdbk指向原始块以绕过保护
  • 分配2个其他块BC
  • B中滥用偏移一个字节,清除prev in use位,并用C块分配的位置与之前生成的假A块之间的差异覆盖prev_size数据
  • 这个prev_size和假块A中的大小必须相同以绕过检查。
  • 然后填充tcache
  • 然后,释放C,使其与假块A合并
  • 然后,创建一个新块D,它将从假A块开始,覆盖B
  • Einherjar之屋到此结束
  • 这可以继续进行快速bin攻击
  • 释放B以将其添加到快速bin
  • 覆盖Bfd,使其指向目标地址,滥用包含BD块(因为它包含B
  • 然后执行2次malloc第二次将分配目标地址

参考资料和其他示例