off-by系列
- 参考资料:
前提介绍
- off-by系列不单单只有
off-by-one
和off-by-null
还有Off-by-Two
、Off-by-Many
、Off-by-Half
、Off-by-Block
,但是off-by-one
和off-by-null
是最为常见的 - 这里的
off-by-one
等并不是只用于打堆,其他方面的pwn也可以利用该漏洞,但是打堆时这类漏洞会可以花式利用。可以进行堆布局(堆风水)和进行堆叠。例如,off-by-one
,指非预期溢出1个字节,这样就可以修改堆块的标志位和Size
的大小。再如off-by-null
,非预期的溢出\x00
也可以修改堆块的标志位(常用于堆叠)。这种都被称之为堆布局(堆风水)
堆叠
- 堆叠(overlap)一般只的就是将两个内存大小比较小的堆块,合并成一个大的堆块。将ptmalloc这一管理机制进行漏洞的理由,对堆进行一定的布局。堆叠有两种叠法,一种是向前合并,另一种是向后合并。
- 向前合并的逻辑比较多,可以比较好的利用。直接修改下一个堆块的
prev_size
即可。 - 而后向合并的逻辑,并不是很好利用,也没有模版化的利用,一般要用
perfect fit
来绕过。
- 向前合并的逻辑比较多,可以比较好的利用。直接修改下一个堆块的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 iyheart的博客!
评论