gpt4 book ai didi

c - 查找堆栈缓冲区溢出

转载 作者:太空狗 更新时间:2023-10-29 14:56:04 24 4
gpt4 key购买 nike

我已阅读 5 篇关于堆栈缓冲区溢出和堆溢出的论文/文章和 2 个视频。我编写了一个易受溢出和利用的程序,在 7777 端口上运行了一个易受攻击、溢出和利用的服务器。但我不明白的是如何在 Windows(或其他操作系统)或软件中查找漏洞。我使用 gcc 和 gdb 进行调试以找到编写漏洞利用程序所需的一切。我如何找到其他程序/软件上的堆栈缓冲区溢出漏洞以及如何调试易受攻击的程序或者我能否使用 gdb?

最佳答案

查找堆栈缓冲区溢出的主要方法有两种:

黑盒测试测试应用程序是否存在堆栈溢出漏洞的关键是提供与预期相比过大的输入数据。然而,让应用程序处理任意大的数据是不够的。有必要检查应用程序的执行流程和响应以确定是否确实触发了溢出。因此,定位和验证堆栈溢出所需的步骤是将调试器附加到目标应用程序或进程,为应用程序生成格式错误的输入,使应用程序接受格式错误的输入,并检查调试器中的响应。调试器允许测试人员在漏洞被触发时查看执行流程和寄存器的状态

灰盒测试手动检查代码(反汇编)。在检查堆栈溢出的代码时,建议搜索对不安全的库函数的调用,例如 gets()、strcpy()、strcat() 等,这些函数不会验证源字符串的长度并盲目地将数据复制到固定大小的缓冲区中。除了手动检查堆栈溢出代码外,静态代码分析工具也可以提供很大的帮助。尽管它们往往会产生大量误报并且几乎无法定位一小部分缺陷,但它们确实有助于减少与查找低垂果实相关的开销,例如 strcpy() 和 sprintf() 错误。 RATS、Flawfinder 和 ITS4 等各种工具可用于分析 C 风格语言。

这些测试的最佳工具是:OllyDbg 和 IDA Pro(用于静态和动态调试)。

关于c - 查找堆栈缓冲区溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848577/

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