关于利用printf漏洞执行shellcode的问题
最近正在学习安全方面的东西 遇到一个format string问题解决不了 搜来的资料都不是太懂。。希望达人帮忙解答下
问题是这样:
现在有一段程序,程序里的一个函数叫usage 代码如下:
static void usage(char* parameter) {
char output[128];
char buffer[128];
snprintf(buffer, sizeof(buffer), "Usage: %.88s backup|restore pathname\n",
parameter);
sprintf(output, buffer);
printf(output);
}
最后一行是 printf(output)这种形式的句子,也就是有format string漏洞的地方。
我需要写一个程序来利用这个漏洞,shellcode是已经有的,usage这个函数的返回地址我也能够找到(比如说是0xffbfddec),现在问题是接下来应该怎么办?传进去的parameter应该是什么样的?因为usage里的printf没有办法写成
printf("xxxxxxx%n",&i)这种样子,所以很困惑,希望达人帮帮忙解答一下,谢谢!!