\x 01 前言 DEP是数据执行保护的英文缩写,全称为Data Execution Prevention.数据执行保护(DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码,在 Microsoft Windows XP ServicePack 2及以上版本的Windows中,由硬件和软件一起强制实施DEP(这个技术还是比较老的了).自从这个技术出现以来也出现了各种各样的方法来绕过,主要的方法为构造ROP链来绕过 下面是百度学术上找的文章,资料太少了,主要的意思就是…
ORM(Object Relational Mapping)对象关系映射 public class ORMTest { public static void main(String[] args) throws SQLException, IllegalAccessException, InvocationTargetException, Exception { User user = (User) getObject( "select id as Id, name as Name, birth…
1.    DEP内存保护机制 1.1   DEP工作原理 分析缓冲区溢出攻击,其根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计算机体系结构基本上是不可能的,我们只能靠向前兼容的修补来减少溢出带来的损害,数据执行保护DEP就是用来弥补计算机对数据和代码混淆这一天然缺陷的. DEP的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时(注1),程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令.如下图所示. DE…
CVE-2011-0065 Firefox mChannel UAF漏洞 为了实现任意代码执行,需要在mChannel对象释放后,用可控数据“占坑”填充它,因此,可在onChannelRedirect函数调用完成后,紧跟着申请一块大小相同的内存: e = document.getElementById("d"); e.QueryInterface(Components.interfaces.nsIChannelEventSink).onChannelRedirect(null,new…
[文章作者]       :h_one [漏洞程序名称]:mplayer.exe [漏洞类型]       :缓冲区溢出 [保护方式]       :safeseh+dep [操作平台]       : xp sp3 [工具]              :windbg, immunity Debugger,mona等 ps:这个程序是前两年xx比赛的题目,肯定有朋友玩过了,要求是利用seh进行漏洞利用,同时开启dep保护. 我想,那时我应该在玩泥巴,不知道啥叫crack,fuzz,漏洞挖掘利用等…
Linux下利用Ret2Libc绕过DEP ⑴.  原理分析: 系统库函数通常是不受DEP(关于DEP,可以查看我之前文章的详细介绍)保护的,所以通过将返回地址指向系统函数可以绕过DEP保护,所以可以通过调研系统函数system()获得shell. ⑵.环境准备: i.漏洞代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> void flow()…
使用ROP攻击绕过Windows的DEP 基础知识 DEP DEP(Data Execution Prevention)意为数据执行保护,是Windows的一项安全机制,主要能够在内存上执行额外检查以帮助防止在系统上运行恶意代码,简单的说也就是以前直接将shellcode插入到堆栈中执行的方法已经不可行了,因为在开启DEP后,堆栈上的shellcode默认不可执行,因此也就不能使用以前的技术来成功攻击了. DEP工作状态可分为四种: Optin:默认仅将DEP保护应用于Windows系统服务和组…
利用Ret2Libc绕过DEP之VirtualProtect函数 ⑴.  原理分析: i.相关概念: VirtualProtect()函数: BOOL WINAPI VirtualProtect( _In_ LPVOID lpAddress,    //目标地址的起始位置 _In_ SIZE_T dwSize,    //区域大小 _In_ DWORD flNewProtect,    //新的保护属性,设置为(0x40)市该内存页为可写可读可执行. _Out_ PDWORD lpflOldPr…
作者:Tangerine@SAINTSEC 原文来自:https://bbs.ichunqiu.com/thread-42530-1-1.html 0×00 背景 在上一篇教程的<shellcode的变形>一节中,我们提到过内存页的RWX三种属性.显然,如果某一页内存没有可写(W)属性,我们就无法向里面写入代码,如果没有可执行(X)属性,写入到内存页中的shellcode就无法执行.关于这个特性的实验在此不做展开,大家可以尝试在调试时修改EIP和read()/scanf()/gets()等函数…
ASLR+DEP是windows平台下最为常见的两种保护手段.这两种手段使得最基础的jmp esp等手法不再适用,而单纯的堆喷也会因为堆内存不可执行而失效.那么这里就来介绍一下heap spray+stack pivot,我一般称为堆喷+换栈的手法.堆喷是一个较为经典的漏洞利用方法,比如我们通过一个内存破坏类漏洞控制了一个对象的内存内容,那么我们就可以构造伪虚表来把程序的执行流程控制到我们的手中,而堆喷则提供了一个固定的地址让我们来放置虚表.在具有DEP的环境下,执行到堆空间时会发生异常,那么能…