gpt4 book ai didi

c++ - 为什么 printf(inputString) 是一个安全漏洞?

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:43 24 4
gpt4 key购买 nike

我在 Quora 上阅读了一个答案,在那里我遇到了一些简单的事情:

char* inputString;
printf(inputString);

是一个安全漏洞。

我假设 inputString 不是简单地未初始化,而是在两个语句之间使用一些外部输入进行了初始化。

究竟这是一个安全漏洞吗?

Quora 上的原始答案在这里:

If C and C++ give the best performance, why do we still code in other languages?

但它没有为此声明提供额外的上下文。

最佳答案

我假设输入字符串是您从用户那里得到的字符串,而不仅仅是未初始化的值。

问题是用户可以

  • 使程序崩溃:printf ("%s%s%s%s%s%s%s%s%s%s%s%s")
  • 查看堆栈:printf ("%08x %08x %08x %08x %08x\n");
  • 查看任何位置的内存,
  • 甚至可以将整数写入进程内存中的几乎任何位置。

这导致攻击者能够:

  • 覆盖控制访问权限的重要程序标志
  • 覆盖堆栈上的返回地址、函数指针等

都解释的很好here .

关于c++ - 为什么 printf(inputString) 是一个安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694233/

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