请选择 进入手机版 | 继续访问电脑版

专注代码检测 - 阅镜

 找回密码
 立即注册
热搜: 安装 代码
查看: 113|回复: 0

printf系列参数必须对应

[复制链接]

70

主题

70

帖子

232

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
232
发表于 2021-9-10 14:29:58 | 显示全部楼层 |阅读模式

所有printf系列函数,如sprintf,snprintf,vprintf等必须对应控制符号和参数。

错误示例:
  1. // Bad
  2. const int buf_size = 1000;
  3. char buffer_send_to_remote_client[buf_size] = {0};

  4. snprintf(buffer_send_to_remote_client, buf_size, "%d: %p", id, some_string);  // %p 应为 %s

  5. buffer_send_to_remote_client[buf_size - 1] = '\0';
  6. send_to_remote(buffer_send_to_remote_client);
复制代码


正确示例:
  1. // Good
  2. const int buf_size = 1000;
  3. char buffer_send_to_remote_client[buf_size] = {0};

  4. snprintf(buffer_send_to_remote_client, buf_size, "%d: %s", id, some_string);

  5. buffer_send_to_remote_client[buf_size - 1] = '\0';
  6. send_to_remote(buffer_send_to_remote_client);
复制代码

前者可能会让client的攻击者获取部分服务器的原始指针地址,可以用于破坏ASLR保护。

关联漏洞:
  1.   中风险-信息泄露
复制代码
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋| 阅镜 ( 京ICP备2020034574号 )|网站地图|网站地图点击这里给我发消息

GMT+8, 2022-1-17 09:28 , Processed in 0.084336 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表