unsorted bin attack
type
status
date
slug
tags
summary
category
icon
password
Unsorted Bin Leak
Unsorted Bin 的结构
Unsorted Bin
在管理时为循环双向链表,若 Unsorted Bin
中有两个 bin
,那么该链表结构如下由于双向链表的结构,free后再读取可以用来泄露 main_arena
(from wiki)如果我们可以把正确的
fd
指针 leak 出来,就可以获得一个与 main_arena
有固定偏移的地址,这个偏移可以通过调试得出。而main_arena
是一个 struct malloc_state
类型的全局变量,是 ptmalloc
管理主分配区的唯一实例。说到全局变量,立马可以想到他会被分配在 .data
或者 .bss
等段上,那么如果我们有进程所使用的 libc
的 .so
文件的话,我们就可以获得 main_arena
与 libc
基地址的偏移,实现对 ASLR
的绕过。直接导入符号即可观察到
main_arena
地址以及泄露出来的偏移,就可以泄露libcunsorted bin attack
在 glibc/malloc/malloc.c 中的
_int_malloc
有这么一段代码,当将一个 unsorted bin 取出的时候,会将 bck->fd
的位置写入本 Unsorted Bin 的位置。换而言之,如果我们控制了 bk 的值,我们就能将
unsorted_chunks (av)
写到任意地址。how2heap中如下:
上一篇
堆入门
下一篇
fastbin attack
Loading...