首页
社区
课程
招聘
[原创]PWN学习Use After Free
发表于: 2020-8-19 10:07 7051

[原创]PWN学习Use After Free

2020-8-19 10:07
7051

内存释放后没有进行置 NULL,导致可以对这块内存再次使用


image.png



有一个 cat flag 的后门


image.png


申请的内存会放在这个数组这里


image.png


同时在 del_note 函数中,free 过后的指针没有置为 NULL


image.png


希望能通过改变指针来让程序执行后门读取 flag

我们先随便申请两个来看一下内存是怎么分布的


image.png


每申请一个,首先会申请一个 0x10 大小的,用来存放 printf 的地址与申请的堆块的地址

然后会把申请的堆块的地址放到 notelist 数组中


然后我们释放掉他们两个,这样四块 chunk 都会被放在 fastbin 中(fastbin 是后进先出),这时候再去申请一个 0x8 大小的,当然为了对齐他会申请 0x10,这样原本两个 0x10 大小的用来放 printf 和堆块指针的 chunk 就被用来作为这次申请的放 printf 之类的和真正申请的 chunk 的地址,所以我们就可以改掉其中一个放 printf 的地方的地址为 magic 的地址,然后通过 show 来 cat flag


参考:https://aluvion.github.io/2019/05/14/HCTF2016-fheap%E5%AD%A6%E4%B9%A0/

emmm,这个题...一开始没用 IDA 看我还以为题目出了问题,他是输入选项字符串


image.png


如果输入的长度是小于 0xF 的话直接放到一开始 malloc 的 ptr 那里,如果大于的话先申请一个,放到申请的里面再把后来申请的这一个的地址给放到 ptr 中


image.png


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2020-8-19 10:15 被yichen115编辑 ,原因: 上传附件
上传的附件:
收藏
免费 4
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//