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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半岛铁盒@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值