printf的常见格式字符
格式字符 含义
%c 单字符格式
%d 十进制整型
%e 指数形式
%f 十进制浮点数
%l 整型
%o 八进制整型
%p 地址指针
%s 字符串
%x 十六进制整型
%n 将已经输出的字节数保存到相应指针指向的内存地址中
在格式字符的中间加上一个整数,printf函数就会把这个数值作为输出宽度。
如果输出的实际宽度大于指定宽度,则仍然按照实际宽度输出;如果小于指定宽度,则按指定宽度输出。
有漏洞的printf语句可以将任意数值写到任意地方,这就是漏洞的根源,只要将main的返回地址改为攻击
代码,控制权就会跳转到攻击代码而造成恶意的攻击。
没有评论:
发表评论