堆块的重叠
  YOkriIV1Am1d 16天前 21 0

堆块重叠

对堆的了解不是很多,大部分都是自己网上找的资料了解的,以后每一道堆题我都会仔仔细细的写出来。这里先拿一道做示范

题目链接:https://pan.baidu.com/s/1HbHkdHbEzt4UIe44gW8uqg 提取码:Ch13

看保护,pie保护关闭,延迟绑定,got表可以修改

64位ida载入

我们看看实现的功能

实际上这个就是指针用来找到我们堆的位置

思路是:1.我们先申请一个大小为0x18大小的堆,和一个大小0x10的堆
2.然后编辑第1个堆输入/bin/sh\x00并且使size位为0x41使指针位置变化
3.然后free第二个堆申请一个大小为0x30大小的堆(实际上加上头部是0x41,刚刚好申请到刚才free的堆)
4.通过覆盖到指针的位置为got表来泄露libc地址
5.通过编辑堆修改free@got为system地址
6.通过free第给堆拿到shell

先贴一下wp我再详细解释

为什么申请0x18大小后不是(0x18+0x11)大小而是0x21

因为我们申请0x18时候,下一个chunk的prev_size也是可以被我们利用的加上刚刚好

\0x41怎么样来的,这个主要是我们溢出修改第二个chunk(第二个chunk指针)的size段,实际上就是修改指针

修改之前

修改后

那么我们就控制了指针然后就可以泄露libc地址和修改got表了,然后拿到shell

以上都是我本人的理解如果有任何不对的,烦请各位师傅及时指出

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 16天前 0

暂无评论

推荐阅读
  P7L761B0RBDx   7天前   14   0   0 网络安全
  IpfG3QC8n6f1   18小时前   7   0   0 网络安全
YOkriIV1Am1d