繁体   English   中英

Ubuntu 16.04缓冲区溢出

[英]Ubuntu 16.04 Buffer Overflow

我正在尝试使用Ubuntu 16.04在我的计算机中重新创建缓冲区溢出攻击。 但是无论我尝试什么,我总是会收到错误“分段错误(核心已转储)”

我已经通过使用以下命令禁用了内存随机化:

sysctl kernel.randomize_va_space=0

而且我在编译程序时也尝试过这些标志:

-fno-stack-protector 
-z execstack
-D_FORTIFY_SOURCE=0

添加所有这些标志后,我最终编译了以下内容:

gcc -z execstack -g -fno-stack-protector -mpreferred-stack-boundary=2 -D_FORTIFY_SOURCE=0 -o code code.c

但是似乎没有任何作用。 为了成功重新创建缓冲区溢出,是否需要禁用其他保护措施?

我认为您做了一切,而并非严格要求。 在计算机安全过程中,我们仅使用以下标志编译了源代码: -O0 -mpreferred-stack-boundary=2 -g -m32 fno-stack-protector这样,您可以禁用代码优化,将堆栈指针对齐4个字节,禁用金丝雀并启用gdb(最好开始使用调试器)。 请记住,使用m32可以将代码编译为32位系统。 如果您正在从零开始学习缓冲区溢出,则最好从此开始(处理寄存器更容易)。

请记住,如果您试图利用缓冲区溢出来利用漏洞,并且遇到分段错误,则可能是在覆盖保存的帧指针(但您应该知道,它是堆栈粉碎: http : //insecure.org/stf/smashstack .html )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM