-
-
[原创]PWN学习Use After Free
-
发表于: 2020-8-19 10:07 7051
-
内存释放后没有进行置 NULL,导致可以对这块内存再次使用
有一个 cat flag 的后门
申请的内存会放在这个数组这里
同时在 del_note 函数中,free 过后的指针没有置为 NULL
希望能通过改变指针来让程序执行后门读取 flag
我们先随便申请两个来看一下内存是怎么分布的
每申请一个,首先会申请一个 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 看我还以为题目出了问题,他是输入选项字符串
如果输入的长度是小于 0xF 的话直接放到一开始 malloc 的 ptr 那里,如果大于的话先申请一个,放到申请的里面再把后来申请的这一个的地址给放到 ptr 中
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-8-19 10:15
被yichen115编辑
,原因: 上传附件
赞赏记录
参与人
雪币
留言
时间
一笑人间万事
为你点赞~
2022-7-30 12:23
shinratensei
为你点赞~
2022-7-15 11:46
Zard_
为你点赞~
2020-9-7 15:26
yichen115
为你点赞~
2020-8-19 15:07
赞赏
他的文章
- 对某款智能手表的分析与攻击 6525
- [原创][车联网安全]使用STM32开发板实战汽车UDS诊断 15016
- [分享]binwalk路径穿越导致RCE(CVE-2022-4510) 9984
- [原创]Hack-A-Sat 2020预选赛 beckley 13586
- [原创]一个BLE智能手环的分析 31556
谁下载
看原图
赞赏
雪币:
留言: