码迷,mamicode.com
首页 > 其他好文 > 详细

缓冲区溢出漏洞实验 20199321

时间:2019-12-11 13:17:00      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:mic   用户   一个   xpl   adl   apt-get   超出   内容   内存地址   

缓冲区溢出漏洞实验

缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。

实验准备

  • 输入命令安装一些用于编译 32 位 C 程序的软件包
sudo apt-get update
sudo apt-get install -y lib32z1 libc6-dev-i386
sudo apt-get install -y lib32readline-gplv2-dev
  • 关闭使用地址空间随机化来随机堆(heap)和栈(stack)的初始地址功能
sudo sysctl -w kernel.randomize_va_space=0
  • 设置 zsh 程序
sudo su
cd /bin
rm sh
ln -s zsh sh
exit
  • 输入命令“linux32”进入32位linux环境,输入“/bin/bash”使用bash
    技术图片

漏洞程序

  • 在 /tmp 目录下新建一个 stack.c 文件,程序会读取一个名为“badfile”的文件,并将文件内容装入“buffer”。
    技术图片
  • 编译该程序,并设置 SET-UID。
sudo su
gcc -m32 -g -z execstack -fno-stack-protector -o stack stack.c
chmod u+s stack
exit

技术图片

攻击程序

  • 在 /tmp 目录下新建一个 exploit.c 文件
    技术图片
  • 我们要得到 shellcode 在内存中的地址,输入命令
    技术图片
  • 设置断点
    技术图片
  • 根据 strcpy(buffer + 100,shellcode); 修改 exploit.c 程序,然后编译
    技术图片
  • 先运行攻击程序 exploit,再运行漏洞程序 stack,观察结果
    技术图片
  • 攻击失败,提示”段错误“,那么请重新使用 gdb 反汇编,计算内存地址
    技术图片

缓冲区溢出漏洞实验 20199321

标签:mic   用户   一个   xpl   adl   apt-get   超出   内容   内存地址   

原文地址:https://www.cnblogs.com/20199321zjy/p/12021584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!