• 2017-2018-2 20179305《网络攻防技术》 第十周作业


    缓冲区溢出实验#

    实验简介##

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

    实验过程##

    进入32位环境###

    关闭地址空间随机化这一功能###

    设置zsh程序###

    linux系统中,/bin/sh实际是指向/bin/bash或/bin/dash的一个符号链接。为了重现这一防护措施被实现之前的情形,我们使用另一个shell程序(zsh)代替/bin/bash。下面的指令描述了如何设置zsh程序:

    添加stack.c文件###

    把以下代码保存为“stack.c”文件,保存到 /tmp 目录下。代码如下:

    设置SET-UID###

    找到shellcode在内存中的地址###

    计算shellcode的地址:0Xffffd460 + 0X64 = 0Xffffd4c4

    添加exploit.c文件###

    把以下代码保存为“exploit.c”文件,保存到 /tmp 目录下。代码如下:

    发起攻击###

    先运行攻击程序exploit,再运行漏洞程序stack,观察结果:

    可以看到获取了root权限

  • 相关阅读:
    梯度下降算法实现
    windows10下Anaconda的安装与tensorflow、opencv的安装与环境配置
    在github创建用户
    看完教材不明白的问题
    自我介绍
    HDU 1098(条件满足 数学)
    HDU 1097(m次幂的个位数 规律)
    HDU 1046(最短路径 **)
    HDU 1045(炮台安置 DFS)
    HDU 1034(传递糖果 模拟)
  • 原文地址:https://www.cnblogs.com/edenfor/p/9032760.html
Copyright © 2020-2023  润新知