什么是一个格式字符串漏洞?
了解一个格式字符串漏洞是,您首先需要知道什么是格式字符串。 一个格式字符串是一种告诉C编译器应该如何格式的数字时,打印它们。
格式字符串在C
在C编程语言有一些职能接受一个格式字符串作为参数。 这些职能包括fprintf ,输出, sprintf , snprintf , vfprintf , vprintf , vsprintf , vsnprintf , setproctitle ,系统记录,等等。
其中最常用的是输出。 使用输出是:
输出格式[论点... ]
输出的产出的价值[论点... ]在指定格式的格式 。
一个例子呼吁输出是:
输出( “区域代码是: % d个\ N ”的303号) ;
支持的格式说明符不同于一个C编译器的未来。 支持的格式说明符下的FreeBSD是:
% d个 转换整数签署杜威字符串。 % u个 无符号整数转换为十进制字符串。 %我 转换为十进制整数签署字符串;整数可以是十进制,八进制(以领先0 )或十六进制(以领先加上0x ) 。 % ö 无符号整数转换为八进制字符串。 % X或% × 无符号整数转换为十六进制字符串,使用数字`` 0123456789abcdef ''的X和`` 0123456789ABCDEF ''为X ) 。 % ç 转换成整数的Unicode字符它代表。 % s的 没有转换,只需插入字符串。 %女 转换浮点数以签署杜威字符串的形式xx.yyy ,那里的一些Y的是所确定的精确度(默认值: 6 ) 。 如果精度为0然后没有小数点输出。 % E或% é 转换浮点数以科学记数法的形式x.yyye + -子怡,那里的一些Y的是所确定的精确度(默认值: 6 ) 。 如果精度为0然后没有小数点输出。 如果电子表格是用来印刷然后E是不是体育 % g或% G 如果指数小于-4或大于或等于精度,然后转换浮点数为% E或%大肠杆菌 否则转换为%楼 尾随零和尾部小数点的省略。 % % 没有转换:刚才插入% 。
欲了解更多有关格式说明符,是指该名男子网页“格式”在您最近的Unix系统。
格式字符串漏洞攻击
格式字符串漏洞攻击分为三类:拒绝服务,阅读和写作。
- 格式字符串漏洞拒绝服务攻击的特点是利用多个实例的格式说明符% s的读取数据起飞的堆栈,直到程序试图读取数据,从一个非法的地址,这将导致程序崩溃。
- 格式字符串漏洞阅读攻击通常利用% ×格式指示符打印节的记忆,我们通常不会有机会获得。
- 格式字符串漏洞编写攻击利用的% d , % U或% ×格式说明符覆盖指令指针和部队执行用户提供的shell代码。
额外的信息来源格式化字符串漏洞
欲了解更多有关利用格式字符串漏洞,是指利用格式化字符串漏洞的恶棍,和格式化字符串攻击的蒂姆Newsham 。
|
漏洞管理傻瓜
我们的朋友在Qualys的是提供免费的副本,电子版的漏洞管理傻瓜以技术问题解答读者。 漏洞管理傻瓜:
| |






