格式化字符串漏洞基本原理
1 | 格式化字符串漏洞在通用漏洞类型库CWE中的编号是134,其解释为“软件使用了格式化字符串作为参数,且该格式化字符串来自外部输入”。会触发该漏洞的函数很有限,主要就是printf、sprintf、fprintf等print家族函数。介绍格式化字符串原理的文章有很多,我这里就以printf函数为例,简单回顾其中的要点。 |
1 | 以上图为例,假设调用printf(str)时的栈是这样的。 |
基本的格式化字符串参数
1 | %c:输出字符,配上%n可用于向指定地址写数据。 |
1 | 格式化字符串漏洞在通用漏洞类型库CWE中的编号是134,其解释为“软件使用了格式化字符串作为参数,且该格式化字符串来自外部输入”。会触发该漏洞的函数很有限,主要就是printf、sprintf、fprintf等print家族函数。介绍格式化字符串原理的文章有很多,我这里就以printf函数为例,简单回顾其中的要点。 |
1 | 以上图为例,假设调用printf(str)时的栈是这样的。 |
1 | %c:输出字符,配上%n可用于向指定地址写数据。 |