美文网首页
chunk_overlap | hitcon_train lab

chunk_overlap | hitcon_train lab

作者: fantasy_learner | 来源:发表于2018-12-20 09:44 被阅读0次

    堆块拓展 攻击 #
    目的 : 通过 控制 堆块的size , 从而获得对其他堆块的 读写能力 #

    例题 : hitcon_train lab13

    • 功能分析 :

      • 本题是一个堆分配器
        • 创建堆,根据用户输入的长度,申请对应内存空间,并利用 read 读取指定长度内容。这里长度没有进行检测,当长度为负数时,会出现任意长度堆溢出的漏洞。当然,前提是可以进行 malloc。此外,这里读取之后并没有设置 NULL。
        • 编辑堆,根据指定的索引以及之前存储的堆的大小读取指定内容,但是这里读入的长度会比之前大 1,所以会存在 off by one 的漏洞。
        • 展示堆,输出指定索引堆的大小以及内容。
        • 删除堆,删除指定堆,并且将对应指针设置为了 NULL。
    • 利用过程

        1. 利用 off by one 漏洞 修改chunk size , 并且 构造伪造的chunk 相关的判断条件
        1. 申请伪造的chunk , 从而利用overlap 修改 下一个chunk的索引堆的指针
      • tip :
          1. 创建堆 不仅仅malloc一个指定size的堆 , 所以 如果伪造的size进入了 unsorted bin,需要考虑 伪造的chunk被切割的情况
          1. free chunk目前需要考虑的判断条件 :
            1. prev_inuse(next_chunk) # 两轮 即构造后两个chunk
            1. size 域有合适的大小 (本题中无需考虑,与 double free配合时需要考虑 )

    exp

    相关文章

      网友评论

          本文标题:chunk_overlap | hitcon_train lab

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