gpt4 book ai didi

c - 格式化字符串攻击?

转载 作者:太空狗 更新时间:2023-10-29 17:22:46 24 4
gpt4 key购买 nike

最近的安全通知 ( http://osdir.com/ml/bugtraq.security/2015-04/msg00102.html ) 指出这行代码:

fprintf(stderr, (isprint(adata->contents[i])) ? "%c " : "%02x", adata->contents[i]);

受到了“格式字符串攻击”,据我所知是使用类似的东西:

fprintf(stderr, varWithUserSuppliedData);

代替:

fprintf(stderr, "%s", varWithUserSuppliedData);

但我在第一个 fprintf 调用中没有看到这一点 - 我错过了什么?

最佳答案

感谢@cremno 为相关文件提供指向 GIT 存储库的链接:kssl.c (请注意,这不是存储库头。)

很明显,这份报告是虚假的。首先,fprintf 调用没有真正的问题,尽管您可以争辩说,像 OpenSSL 这样的安全相关产品中的代码需要超越安全性,达到明显安全的程度,即使是对不经意的人来说也是如此。一眼。 (我不确定我是否会提出这样的论点,但它已经提出了。)

但更重要的是,有问题的代码已禁用(请注意它周围的预处理器指令):

# if 0
{
int i;
fprintf(stderr, "%s[at%d:%d] ", label, adata->ad_type, adata->length);
for (i = 0; i < adata->length; i++) {
fprintf(stderr, (isprint(adata->contents[i])) ? "%c " : "%02x",
adata->contents[i]);
}
fprintf(stderr, "\n");
}
# endif

关于c - 格式化字符串攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com