何为格式化字符串漏洞

1
2
3
4
5
6
7
#include<stdio.h>
int main(){
` char buf[16];
gets(buf,0x400);
printf(buf);
return 0;
}

形如上述代码的程序一般具有格式化字符串漏洞,试想如果往buf里输入%p等格式化字符串时会发生什么

那么细心的师傅们可能就会说了:你这后面也没跟第二个参数啊,这能运行吗?

答案是肯定的,并且打印出的地址就是栈上的地址,这就是格式化字符串最简单的用法:泄露栈地址

那么还有什么别的用途吗,且听我继续分析

阅读全文 »

fflush的sh是system(sh)的sh😋

如果找不到/bin/sh字符串,何尝不试试fflush的“sh”?