美文网首页
堆溢出之Overlapping

堆溢出之Overlapping

作者: BJChangAn | 来源:发表于2018-05-05 18:04 被阅读0次

主要参照这一篇dance in heap

overlapping chunk2

a = malloc(0x100-8);

b = malloc(0x100-8);

c = malloc(0x100-8);

d = malloc(0x100-8);// 第四个为了防止被top chunk 合并,以及应对 free的检查

借助uaf或者堆块a的写入溢出什么的去修改堆块b的size位(记得要把inuse加上啊):

*(a+0xf8) = 0x201    // 0x1为inuse标识

还有一个点需要注意,修改后的size要包含完整的堆块,也就是说随便你想把size改大覆盖后面几个堆块,但一定要覆盖完整的堆块,不能卡在某个堆块的一半。这里把size改大使得刚好包含b、c两个堆块。

然后把堆块b free掉。

这样unsorted bin中就有了一个大堆块,借助这个堆块就可以修改b、c两个堆块的内容。(尤其是c堆块的头部)

也可以结合其他方法比如fastbin attack来完成进一步的利用。

相关文章

  • 堆溢出之Overlapping

    主要参照这一篇dance in heap overlapping chunk2 a = malloc(0x100-...

  • 堆溢出

    在网上寻寻觅觅,找了很久关于堆的知识,终于找到了一个比较不错的文章转载自:http://eternalsakura...

  • 对于OOM的理解

    OOM,即OutOfMemory,内存溢出 OOM之 Java heap spacejava堆内存溢出,一般由于内...

  • 堆溢出和栈溢出

    堆溢出 :是不断的new 对象,一直创建新对象 栈溢出:方法创建的栈桢超出了栈的深度,可能是方法递归调用,死循环造...

  • 堆利用之Chunk extend Overlapping

    漏洞简介 chunk extend overlapping在堆中是一种比较常见的利用手段,其主要原理就是因为某些意...

  • Java堆溢出

    1.java堆所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节VM: 代码: 控制台异...

  • 堆内存溢出

    堆内存溢出:堆内存溢出:java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环;下面演示的是利用循环的方...

  • 4 堆溢出

    堆溢出漏洞利用

  • 堆溢出 | unlink

    unlink的基础知识 操作对象的结构体 :(图片中的括号包裹部分是 payload的组成部分 )image.pn...

  • 内存溢出OOM和堆栈溢出SOF的示例

    1、Java堆溢出 (OOM) Java堆用于存储对象的实例,只要不断地创建对象,并且保证GC roots到对象之...

网友评论

      本文标题:堆溢出之Overlapping

      本文链接:https://www.haomeiwen.com/subject/hmxstftx.html