非安全编程演示之格式化字符串
2006-04-02 20:26:48 来源:WEB开发网本文由Core Security发布,通过gera的Insecure Programming中的5个例子说明格式化字符串漏洞。alert7前辈曾经由这5个例子写了《非安全编程演示之格式化字符串篇》,所以我也就使用了同样的名字。翻译中的错误之处还请各位高手斧正。
简介
在这篇文章中,Core Security将展示c语言程序中程序员常犯的一些错误。通过gera举的5个例子来说明format string(格式化字符串)这类型的问题。我们将确切指出程序中的bug,并将阐述这种错误为什么是危险的,并针对每一个例子都将有一个exploit。在这篇文章中,测试的平台是 Linux Slackware 8.0 server(IA32),编译器是 GNU GCC 2.95.3:
user@CoreLabs:~$ uname -a
Linux CoreLabs 2.4.5 #31 SMP Sat Mar 2 03:04:23 EET 2002 i586 unknown
user@CoreLabs:~$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-slackware-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)
user@CoreLabs:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 5
model : 2
model name : Pentium 75 - 200
user@CoreLabs:~$
我们假设读者有c编程经验,并且有stack overflow,format string,GOT等的基础知识。在
本文中将不再一一赘述这些溢出的原理。如果不熟悉,请阅读文末的参考里的文章。
这篇文章以后的更新版本里也许会包括其他平台上的format string信息,大家可以在
www.core-sec.com下载到最新版本。
有任何问题,请联系:info@core-sec.com
fs1.c分析
这个例子的代码如下
/* fs1.c *
* specially crafted to feed your brain by gera@core-sdi.com */
更多精彩
赞助商链接