IoT上的缓冲区溢出漏洞
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/82755801 在过去N年里,缓冲区溢出一直是网络攻击中最常被利用的漏洞。 看一下缓冲区是如何创建的,就能知道原因所在。 下面是C语言的一个例子: 第一步,程序员使用 malloc 函数并定义缓冲区内存的数量(例如32位) 第二步,返回指针,指示内存中缓冲区的开始位置 第三步,当程序员需要读取或写入该缓冲区时,程序员都会使用该指针 有了指针,程序员很容易忘记分配给指定缓冲区的实际内存量。编译器在程序中使用元数据来分配适当的缓冲区大小,但是这个元数据通常在构建时被丢弃了。 如果在程序内或程序之间传输的数据随后超出原定义的缓冲区大小,则数据信息将覆盖相邻的内存。这会导致内存访问错误或崩溃,以及安全漏洞。 缓冲区溢出和漏洞利用 黑客可以使用堆栈缓冲区溢出替换带有恶意代码的可执行文件,这样他们就可以利用系统资源,比如堆内存或者调用堆栈的本身。例如,控制流劫持利用堆栈缓冲区溢出,将代码执行重定向...
