CVE-2012-0809 漏洞复现

不定长参数的函数

最常见的两个不定长参数的函数就是scanfprintf,这两个函数的定义如下:

1
2
int printf(const char *format, ...)
int scanf(const char *format, ...)

其中第一个参数就是格式化字符串,第二个参数...表明参数个数是不定的。参数个数按照一定的规则根据第一个参数进行解析。这两个函数的具体实现可以去glibc源码中查看,接下来我们一起看看如何自定义一个不定长参数的函数。

几个重要的宏

iOS开发中va_list的应用

深入C语言可变参数(va_arg,va_list,va_start,va_end)

va_list可变参数

实现一个不定长参数的函数

理解可变参数va_list、va_start、va_arg、va_end原理及使用方法

GCC 内置函数??

gcc内置函数

漏洞分析

CVE-2012-0809-Sudo格式化字符串漏洞

国外漏洞分析与复现文档

sudo 1.8.2版本

Fedora 16镜像下载

漏洞利用