zoukankan      html  css  js  c++  java
  • 缓冲区溢出漏洞实验

    缓冲区溢出漏洞实验

    实验准备

    根据实验指导输入命令安装一些用于编译 32 位 C 程序的软件包

    实验步骤

    1. 关闭地址空间随机化功能
    2. 设置 zsh 程序
    3. 输入命令“linux32”进入32位linux环境
      image
    4. 在 /tmp 目录下新建一个 stack.c 文件,编辑代码
      image
    5. 编译该程序,并设置 SET-UID
    6. 在 /tmp 目录下新建一个 exploit.c 文件
    • 注意上面的代码,x??x??x??x?? 处需要添上 shellcode 保存在内存中的地址
      image
      image
    • 根据语句 strcpy(buffer + 100,shellcode); 我们计算 shellcode 的地址为 0xffffd350(十六进制) + 0x64(100的十六进制) = 0xffffd3b4(十六进制)
    1. 编译 exploit.c 程序
    2. 运行攻击程序 exploit,再运行漏洞程序 stack
      image

    练习

    1、按照实验步骤进行操作,攻击漏洞程序并获得 root 权限。

    2、通过命令 sudo sysctl -w kernel.randomize_va_space=2 打开系统的地址空间随机化机制,重复用 exploit 程序攻击 stack 程序,观察能否攻击成功,能否获得root权限。
    image
    3、将 /bin/sh 重新指向 /bin/bash(或/bin/dash),观察能否攻击成功,能否获得 root 权限。

    实验感悟

    按照实验指导基本顺利的完成了实验,也因为刚开始十六进制计算的失误导致了段错误的现象。后来才反应过来计算问题。同时井号后面为注释也是我失误的地方。

  • 相关阅读:
    ubuntu远程windows桌面
    spring boot 给返回值加状态 BaseData
    spring boot 拦截异常 统一处理
    IntelliJ IDEA spring boot 远程Ddbug调试
    IntelliJ IDEA 常用插件
    spring boot 请求地址带有.json 兼容处理
    spring boot 接口返回值去掉为null的字段
    spring boot 集成disconf
    Spring boot 自定义拦截器
    Linux下安装MySQL
  • 原文地址:https://www.cnblogs.com/KY-high/p/9786744.html
Copyright © 2011-2022 走看看