large bin attack
type
status
date
slug
tags
summary
category
icon
password
首先malloc chunk的结构:
fd_nextsize 和 bk_nextsize 是需要注意的,large blocks 使用的指针
排序部分:large bin中的堆块会如下排序
左为正常插入流程,右为伪造 bk_nextsize
流程:
- 分配一块大小 size1 在 Largebin 范围内的块 chunk1。
- 分配一块任意大小的块 pad1,主要防止在释放 chunk1 时系统将其与 top chunk合并。
- 分配一块大小 size2 在 Largebin 范围内的块 chunk2,要求size2<size1。
- 分配一块任意大小的块 pad2,主要防止在释放 chunk2 时系统将其与 top chunk合并
- 释放 chunk1,此时系统会将其放入 unsortedbin;再分配一个 size3 的块,要求size3>size1,此时系统就会将 chunk1 放进 Largebin中。
- 释放 chunk2进入 unsortedbin。
- 修改 chunk1−>bk_nextsize = Target − 0x20。
- 随意分配一个大小的块,就会触发Largebin attack。
总结一下大概长这样:
即实现了在任意地址写一个指向victim的指针
上一篇
fsop
下一篇
堆入门
Loading...