zoukankan      html  css  js  c++  java
  • 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权限

  • 相关阅读:
    extJS 创建类
    apache配置虚拟主机
    pdo简单操作
    php上传sae路径问题
    把php上传sae问题要使用IO
    struts2上传的问题
    Could not open Hibernate Session for transaction;
    Convention插件
    struts2支持的结果类型
    struts2动态方法
  • 原文地址:https://www.cnblogs.com/edenfor/p/9032760.html
Copyright © 2011-2022 走看看