buffer-overflow相关内容

人们为什么继续使用允许溢出的数据结构?

缓冲区溢出似乎是导致安全漏洞的最大原因之一。我很少使用C / C ++编程(仅用于某些课程),所以我可能会遗漏一些东西,但我不明白为什么人们继续使用允许溢出的数据结构。为什么所有数据结构都装满后不会引发异常?似乎这个简单的解决方案将大大提高软件的安全性。 解决方案 无知 很大比例的程序员(在我看来可能是对世界的负面偏见中)根本不了解安全问题或根本不了解哪些数据他们使用的结构很脆弱 ..
发布时间:2020-09-24 02:24:04 其他开发

超出数组末尾的写入效果

可能重复: 数组溢出(为什么这样做?) 我发现一些C ++代码可以执行以下操作: struct Test { int a [ 128]; char b [768]; }; int main() { 测试测试; for(int i = 0; i test.a [i] = 1; 返回0; } 我知道这是错误的。但是,我想知道会有什么 ..
发布时间:2020-09-24 02:22:59 C/C++开发

如何清除串行缓冲区?

我正在通过串行端口从微控制器接收消息。我使用9600的波特率。我有一个使用win32 API编写的程序,用于接收消息。有时会发生以下情况:我无法接收消息,然后在按Ctrl + C时突然出现突发。 如何清除串行缓冲区,以便避免数据泛滥? 谢谢 解决方案 PurgeComm 函数即可。 在Windows中使用串行端口时, Comm Port API参考非常有用。 ..
发布时间:2020-09-24 02:22:52 其他开发

jmp short 0x0导致永远循环

有人告诉我,转换为目标代码“ xeb\xfe”的指令“ jmp short 0x0”会导致一个过程永远循环。 解决方案 这个问题看似模棱两可,但值得怀疑的是,原因是该指令会引起自己跳回去。 \xeb\xfe 的字面意思是“从下一条指令的开头向前跳转-2个字节”。由于该指令本身是2个字节长,因此跳转目标将是跳转指令本身。 ..
发布时间:2020-09-24 02:22:49 其他开发

进行缓冲区溢出利用时未获得root shell

我正在学习Linux x86二进制文件中的缓冲区溢出漏洞利用。我正在执行经典的堆栈粉碎操作,通过禁用ASLR并通过禁用NX位和堆栈金丝雀来在Ubuntu 12.04 VM中生成根外壳。 在执行过程中返回地址被覆盖并且shellcode正在执行,但是我没有得到root shell,而是导致了bash shell。 为减轻bash保护,我我正在使用zsh shell,并且删除了sh-> b ..
发布时间:2020-09-24 02:21:45 服务器开发

使用shellcode的缓冲区溢出练习

我正在做一个关于C程序中缓冲区重载的练习,这个问题的目的是在我将 shellcode 插入到程序。这是我到目前为止所拥有的: 步骤1:首先,让我们在名为file.c的文件中查看我的C代码: root @ kali:〜#cat ./file.c #include #include void premio() { printf ..
发布时间:2020-09-24 02:21:42 其他开发

缓冲区溢出的首次实验

我已经开始阅读有关缓冲区溢出以及黑客如何使用其执行自定义代码(而不是常规的已编译代码)的信息,现在,我正在尝试重现一些基本情况,它具有一个脆弱的功能,该功能可以将数据复制到char数组中。 要点是,当我使用程序中定义的函数的汇编指令之一更改返回地址时,它可以正常工作,而当我直接以字节为单位注入代码时,它返回SEGMENTATION FAULT。 我正在使用Kali发行版x64 v3.1 ..
发布时间:2020-09-24 02:21:34 服务器开发

wchar_t在Visual Studio中为2个字节,并存储UTF-16。支持Unicode的应用程序如何处理U + FFFF以上的字符?

我们正在计划使我们的应用程序能够识别Unicode,并且我们正在分析遇到什么问题。 特别是,我们的应用程序将示例严重依赖字符串的长度,我们想使用 wchar_t 作为基本字符类。 出现问题处理必须在UTF-16中以2个16位单位存储的字符时,即U + 10000以上的字符。 简单示例: 我有UTF-8字符串“蟂”(Unicode字符U + 87C2,在UTF-8中为E8 9 ..

Python3和Python2之间的区别-socket.send数据

我正在练习一些缓冲区溢出技术, 在发送存储的数据时遇到了一个奇怪的问题。 我有这两个几乎相同的代码,除了 这个事实,在Python3代码中,我更改了sock.send以对 字符串进行编码(在Python2中,您不需要这样做) Python2代码: import socket,sys sock = socket.socket(socket.AF_INET,socket. ..
发布时间:2020-09-24 02:21:28 其他开发

利用Python 3开发

我意识到使用python 3进行漏洞利用开发并不像使用python 2那样直接。 据我了解,这主要是由于套接字库以及添加的 byte 数据类型。 例如,我不知道如何将以下代码转换为Python 3个代码: --- SNIP --- shellcode =“”“ shellcode + =” \x89\xe2\xd9\xcf\xd9\x72\xf4\x5a\x4a\x4a ..
发布时间:2020-09-24 02:20:21 Python

STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW有什么区别?

我刚刚发现有一个STATUS_STACK_BUFFER_OVERRUN和一个STATUS_STACK_OVERFLOW。那两个之间有什么区别?我刚刚发现堆栈溢出(堆栈耗尽)与堆栈缓冲区溢出不同,但是它不能解释它,或者我听不懂。您能帮帮我吗? 关于 Tobias 解决方案 考虑以下在内存中向下增长的堆栈: + ------------- --- + |一些数据| | ..