首页
社区
课程
招聘
[原创]PWN学习笔记【堆】【UAF】从实验到原理
发表于: 2022-6-15 15:10 21339

[原创]PWN学习笔记【堆】【UAF】从实验到原理

2022-6-15 15:10
21339

开局一段代码:

编译32位:gcc -g -m32 test.c 

猜一猜程序会怎么执行?

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

当当当当:

为啥会这样呢


glibc的ptmalloc在管理释放的内存叫bin,申请的堆块叫chunk

其中小chunk内存管理器叫fastbins,使用的是 LIFO的规则,后进先出。所以申请同样大小的小chunk,会使用最后一次free的chunk

执行完free过后,fastbins中存放了刚刚free的指针0x804b000

执行malloc(8)后,看到fastbins中的chunk指针没有了


看下hack_point的地址,确实是刚刚free的地址,此时两个指针指向同一块内存

为啥这两个指针=0x0804b008,而fastbins存的0x0804b000

在32位下chunk的结构:

刚好偏移是8






[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2022-6-15 17:29 被洋洋不得意编辑 ,原因: 修改描述错误
上传的附件:
收藏
免费 3
支持
分享
打赏 + 50.00雪花
打赏次数 1 雪花 + 50.00
 
赞赏  Editor   +50.00 2022/07/08 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (1)
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
师傅你ida是什么版本的,我f5 反编译出来的效果 没有你图中的noteList结构这种
2022-9-5 17:31
0
游客
登录 | 注册 方可回帖
返回