下载文件 exeinfo checksec
64位 用IDA64打开
查看main函数
有格式化字符串漏洞
由代码可以得到flag已经被压入栈中 只要找到输入字符和flag的偏移量就可以利用printf输出flag
先查看输入字符的偏移:
输入字符的偏移是6
再用gdb调试查看flag的位置:
可以看到flag和输入字符的位置 0x9E0-0x8E0=0x100 64位程序 除以8字节就是 32的偏移
加上输入字符的偏移就是32+6=38
所以只要输入 %38$s 就能得到flag: