• 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权限

  • 相关阅读:
    HDU 5501
    CF #324 DIV2 E题
    CF #324 DIV2 C题
    利用位操作实现加减运算(不用+ -号)
    【Leetcode】120. 三角形最小路径和
    删除排序链表中的重复元素
    【python】二分查找
    如何在不添加新数组的情况下移除元素?
    三/四 数之和,双指针法,细节很多
    【转】字符串相关操作
  • 原文地址:https://www.cnblogs.com/edenfor/p/9032760.html
Copyright © 2020-2023  润新知