Overwriting a freed chunk

支持 HackTricks

提出的堆利用技术中,有几种需要能够覆盖已释放块内部指针的技术。本页的目标是总结可能导致此访问权限的潜在漏洞:

简单的重复释放后使用

如果攻击者可以在一个空闲块中写入信息,他们可以滥用此功能来覆盖所需的指针。

双重释放

如果攻击者可以两次free相同的块(在中间释放其他块),并使其在同一个 bin 中出现 2 次,用户将有可能稍后分配该块写入所需的指针,然后再次分配它,触发分配块的操作(例如快速 bin 攻击,tcache 攻击...)

堆溢出

可能会溢出已分配的块,接下来是一个已释放的块,并修改其一些头部/指针。

Off-by-one 溢出

在这种情况下,可能会修改内存中下一个块的大小。攻击者可以滥用此功能来使一个已分配的块具有更大的大小,然后**free它,使该块被添加到不同大小的 bin**(更大),然后分配伪造的大小,攻击将获得一个比实际更大的大小的块,因此授予了重叠块的情况,可以像堆溢出一样利用(请查看前面的部分)。

支持 HackTricks

Last updated