fastbin attack攻击中关于 malloc__hook
概述
在程序中設置鉤子,用來在malloc,,對其進行檢查,可以看到對應的函數調用后的地址是什么。
malloc__hook 也位于libc中的data段
它是一個地址
當調用 malloc 的時候 它會發生跳轉到malloc__hook 所指向的地址
當我們把malloc__hook 所指向的地址 改為 system(“bin/sh”)
再次調用 malloc 的時候 就會發生跳轉到 system() 處
操作
上述前提是獲取 malloc__hook 的地址
有一個固定的偏移 (libc2.23 // ubuntu16): main_arena+0x58 = unsortbin表頭的地址
接著獲取malloc__hook的地址: main_arena - 0x10 = malloc__hook
即 malloc__hook=unsortbin表頭地址-0x58-0x10
第二種方法:這里還有一個固定結論 偏移0x3c4b78
**
libc_base=(程序里的main_arena+88)-0x3c4b78(0x3c4b0+88,一般2.23_64的偏移都是這個,不同libc版本會有不同)
**
show(1) libc_base = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00')) -0x3c4b78 malloc_hook = libc_base + libc.symbols['__malloc_hook']主線程的arnea稱為“main_arena”。子線程的arnea稱為“thread_arena”。
這里需要我們先獲取unsortbin的地址
即 unsortbin attack (leak libc)
主要是利用堆溢出的原理
步驟過程如下
這是chunk的結構組成部分
大致過程是這樣的
prev-size 站位大小是8
總結
以上是生活随笔為你收集整理的fastbin attack攻击中关于 malloc__hook的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: <力扣>-----利用哈希表来判断是否存
- 下一篇: BUUCTF(pwn)jarvisoj_