zoukankan      html  css  js  c++  java
  • 缓冲区溢出实践

    缓冲区溢出实践

    20191331lyx

    一、实验环境

    实验楼 https://www.lanqiao.cn/courses/231

    二、实验准备

    关闭内存地址空间随机化

    三、开始实践

    进入32位linux环境

    本次实验的shellcode

    编写漏洞程序

    关闭gcc编译保护

    精确定位esp寄存器位置

    在代码中插入esp寄存器地址

    进行缓冲区溢出攻击

    实验验证原理

    • 缓冲区溢出:缓冲区溢出是一种常见且危害很大的系统攻击手段,通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。

    • C语言编程中,一些不作边界检查的字符串拷贝函数(如strcpy)容易造成缓冲区溢出。

    常见的缓冲区溢出防御手段

    • 基于探测方法(canary)的防御。这包括 StackGuard(由 Immunix 所使用)、ProPolice(由 OpenBSD 所使用)和 Microsoft 的 /GS 选项。

    • 非执行的堆栈防御。这包括 Solar Designer 的 non-exec 补丁(由 OpenWall 所使用)和 exec shield(由 Red Hat/Fedora 所使用)。

    • 包括 libsafe(由 Mandrake 所使用)和堆栈分割方法。

  • 相关阅读:
    文字转语音功能
    windows定时计划任务
    写电子合同,爬过的坑,趟过的雷,犯过的错,都是泪
    前端应该如何去认识http
    I/O理解
    观察者模式
    js --代理模式
    js --策略模式
    js --单例模式
    js 单线程 异步
  • 原文地址:https://www.cnblogs.com/DKYcaiji/p/15475482.html
Copyright © 2011-2022 走看看