下载 打开文件 checksec exeinfo
64位 查看main函数
很明显的格式化字符串漏洞 而且将flag压入栈中了
先查找输入的偏移:
输入的偏移为8
再利用gdb调试查找flag和字符串的相对位置
可以看到相差了 (0xD0-0xB0) / 8 = 4个偏移
也就是利用%12$p 一直往下到0x7D(‘}’的ASCII码)
可以得到flag的16进制形式(似乎不能用%s 因为它将栈上的值当地址而这里栈上直接是flag字符串)
小端序 转换一下 得到flag:
下载 打开文件 checksec exeinfo
64位 查看main函数
很明显的格式化字符串漏洞 而且将flag压入栈中了
先查找输入的偏移:
输入的偏移为8
再利用gdb调试查找flag和字符串的相对位置
可以看到相差了 (0xD0-0xB0) / 8 = 4个偏移
也就是利用%12$p 一直往下到0x7D(‘}’的ASCII码)
可以得到flag的16进制形式(似乎不能用%s 因为它将栈上的值当地址而这里栈上直接是flag字符串)
小端序 转换一下 得到flag: