缓冲区溢出漏洞实验

实验原理

缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。
一般情况下,缓冲区溢出会造成程序崩溃,在程序中,溢出的数据覆盖了返回地址。而如果覆盖返回地址的数据是另一个地址,那么程序就会跳转到该地址,如果该地址存放的是一段精心设计的代码用于实现其他功能,这段代码就是 shellcode。

实验步骤

环境安装准备

进入Linux环境

编写漏洞程序,关闭阻止缓冲区溢出的机制

编写攻击程序,获得 root 权限

攻击结果:成功获得 root 权限

修改bin/sh指向bin/bash,攻击失败

原文地址:https://www.cnblogs.com/ckx1212-20191308/p/15489594.html