1.    DEP内存保护机制 1.1   DEP工作原理 分析缓冲区溢出攻击,其根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计算机体系结构基本上是不可能的,我们只能靠向前兼容的修补来减少溢出带来的损害,数据执行保护DEP就是用来弥补计算机对数据和代码混淆这一天然缺陷的. DEP的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时(注1),程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令.如下图所示. DE…
利用Ret2Libc绕过DEP之VirtualProtect函数 ⑴.  原理分析: i.相关概念: VirtualProtect()函数: BOOL WINAPI VirtualProtect( _In_ LPVOID lpAddress,    //目标地址的起始位置 _In_ SIZE_T dwSize,    //区域大小 _In_ DWORD flNewProtect,    //新的保护属性,设置为(0x40)市该内存页为可写可读可执行. _Out_ PDWORD lpflOldPr…
Linux下利用Ret2Libc绕过DEP ⑴.  原理分析: 系统库函数通常是不受DEP(关于DEP,可以查看我之前文章的详细介绍)保护的,所以通过将返回地址指向系统函数可以绕过DEP保护,所以可以通过调研系统函数system()获得shell. ⑵.环境准备: i.漏洞代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> void flow()…
利用加载模块之外的地址绕过safeSEH 前言:文章涉及的概念在之前的文章中都有过详细的讲解 ⑴.  原理分析: 当程序加载进内存中后,处理PE文件(exe,dll),还有一些映射文件,safeSEH是不会对这些映射文件做安全检查.所以如果在这些映射文件中找到一些跳板地址(意义见之前的绕过利用/GS机制),就可以达到控制EIP的目的,执行恶意代码. 如上图,可以看到在PE文件之前有很多map(映射文件),safeSEH是不会对这些文件做安全检测的. ⑵.环境准备: i.实验代码: #includ…
20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计算机体系结构基本上是不可能的,我们只能靠向前兼容的修补来减少溢出带来的损害,DEP(数据执行保护,Data Execution Prevention)就是用来弥补计算机对数据和代码混淆这一天然缺陷的. 2.DEP是什么? DEP-数据执行保护的缩写,DataExecutionPrevention.能…
前言:之前关于safeSEH保护机制的原理等信息,可在之前的博文(内存保护机制及绕过方案中查看). 利用未启用SafeSEH模块绕过SafeSEH ⑴.  原理分析: 一个不是仅包含中间语言(1L)且未启用SafeSEH的模块中的异常处理,如果异常处理链在栈上,异常处理函数指针不在栈上,那么这个异常处理就可以被执行. 所以,我们能找到一个未启用SafeSEH的模块,就可以利用它里面的指令作为跳板来绕过SafeSEH. ⑵.环境准备: i.实验代码: 生成exe文件的代码: #include "s…
1.1    SafeSEH内存保护机制 1.1.1    Windows异常处理机制 Windows中主要两种异常处理机制,Windows异常处理(VEH.SEH)和C++异常处理.Windows异常处理结构未公开的,包含向量化结构异常VEH及结构化异常处理SEH.由操作系统提供的服务,当一个线程出现错误时,操作系统调用用户定义的一个回调函数_exept_handler.回调函数接收到操作系统传递过来的许多有价值的信息,例如异常的类型和发生的地址.使用这些信息,异常回调函数就能决定下一步做什么…
1    GS内存保护机制 1.1    GS工作原理 栈中的守护天使--GS,亦称作Stack Canary / Cookie,从VS2003起开始启用(也就说,GS机制是由编译器决定的,跟操作系统无关). GS机制分三个步骤:计算随机种子 --> canary写入栈帧 --> GS校验. [1]程序启动时,读取.data的第一个DWORD作为基数,然后和各种元素(时间戳,进程ID,线程ID,计数器等等)进行XOR加密 [2]然后将加密后的种子再次写入.data的第一个DWORD [3]函数…
首页 新随笔 订阅 管理 随笔 - 7  文章 - 0  评论 - 0 UAC 实现原理及绕过方法   目录 0x01 UAC 实现方法(用户登陆过程)0x02 UAC 架构0x03 触发UAC0x04 UAC 虚拟化0x05 UAC 逆向分析1x01 无文件白名单提权机制1x02 DLL 文件注入提权1x03 0day [TOC] 0x00 UAC 工作流程 UAC 是微软在 Windows Vista 以后版本引入的一种安全机制, 通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文…
目录 0x00 UAC 工作流程 0x01 UAC 实现方法(用户登陆过程) 0x02 UAC 架构 0x03 触发UAC 0x04 UAC 虚拟化 0x05 UAC 逆向分析 1x00 UAC Bypass 1x01 无文件白名单提权机制 1x02 DLL 文件注入提权 参考资料: 0x00 UAC 工作流程 UAC 是微软在 Windows Vista 以后版本引入的一种安全机制, 通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限…
问题:py+selenium+IE 批量执行单个脚本10几分钟,IE会卡住 一个脚本文件里有20几个用例,跑起来10多分钟,每次跑10分钟后(即第22条用例左右时)IE就会卡住,程序就会在那傻等,最后报错超时……不是用例的问题,我注释掉,换其他用例也是一样,所以不是代码的问题. Google了很久,有不少遇到过,有说是版本问题,需要将IEdriverserver的版本调低,我换了n个版本,均没解决,其他的回答也没有解决问题的. 可能你会说环境的问题,几台vm都是这样,虽然我本地正常. 最后,尝试…
目录 分析 .user.ini使用条件 解题 参考链接 记一道.user.ini利用+exif_imagetype绕过的文件上传的题. 分析 先正经上传一张图片.回显了存储路径,同时发现还包含了一个index.php文件.暂时不知道怎么用. 在上传一句话木马.jpg文件的时候提示<? in contents!,文件中不能包含<?,这个我们可以换个格式写一句话木马.比如 <script language="php"> echo eval($_POST[shell]…
1.1    Linux下的ASLR内存保护机制 1.1.1    Linux下的ASLR工作原理 工作原理与window下的aslr类似 1.1.2 Linux下利用内存地址泄露绕过ASLR ⑴.  原理分析: 那么如何解决地址随机化的问题呢?思路是:我们需要先泄漏出libc.so某些函数在内存中的地址,然后再利用泄漏出的函数地址根据偏移量计算出system()函数和/bin/sh字符串在内存中的地址,然后再执行我们的ret2libc的shellcode.既然栈,libc,heap的地址都是随…
JVM加载类的过程: 1)JVM中类的整个生命周期: 加载=>验证=>准备=>解析=>初始化=>使用=>卸载  1.1.加载 类的加载阶段,主要是获取定义此类的二进制字节流,并将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构,最后在Java堆中生成一个代表这个类的java.lang.Class对象作为方法区这些数据的访问入口.相对于类加载过程的其他阶段,加载阶段是开发期可控性最强的阶段.我们可以通过定制不通的类加载器,也就是ClassLoader来控制二进制…
当前位置: 首页 > 编程社区 > Swift > Swift - 二进制,八进制,十六机制的表示方法 Swift - 二进制,八进制,十六机制的表示方法 2015-01-23 14:47 发布:yuhang 浏览:181   整数各种进制的字面量如下: 十进制数,没有前缀 二进制数,前缀是0b 八进制数,前缀是0o 十六进制数,前缀是0x 1 2 3 4 let decimalInteger = 17 let binaryInteger = 0b10001       // 二进制的1…
通过反射机制获取所有方法(method) import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; /* java.lang.Method */ public class ReflectTest09 { public static void main(String[] args) throws ClassNotFoundException { //创建cl…
apply()方法定义 函数的apply()方法和call方法作用相同,区别在于接收的参数的方式不同.apply()方法接收两个参数,一个是对象,一个是参数数组. apply()作用 1.用于延长函数的作用域 示例: var color='red'; var o={color:'blue'}; function sayColor(){ console.log(this.color); } sayColor();//"red" sayColor.apply(o);//"blue…
Linq扩展方法之Aggregate  对序列应用累加器函数; 函数模板:// 函数名:对序列应用累加器函数. // Parameters:参数要求 // source:要聚合的 System.Collections.Generic.IEnumerable`1. // func:要对每个元素调用的累加器函数. // Type parameters:参数类型 // TSource:source 中的元素的类型. // // Returns:累加器的最终值. // Exceptions: // T:…
原文:匿名方法,Lambda表达式,高阶函数 匿名方法 c#2.0引入匿名方法,不必创建单独的方法,因此减少了所需的编码系统开销. 常用于将委托和匿名方法关联,例如1. 使用委托和方法关联: this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);private void btnRefresh_Click(object sender, EventArgs e){    BindData();} 2. 使用委托…
new方法和单例.定制访问函数.装饰器 上节课作业解答 # 通过多重继承方法,分别定义出动物,人类,和和荷兰人三种类 class Animal(object): def __init__(self, name): self.name = name ​ def eat(self): print('%s正在吃东西' % self.name) ​ def breath(self): print('%s正在呼吸' % self.name) ​ ​ class Person(Animal): def __…
# -*- coding: utf-8 -*- # 请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串 n1 = 255 n2 = 1000 print(hex(n1)) print(hex(n2))…
1.1    SEHOP保护机制 1.1.1    SEHOP工作原理: SEHOP保护机制的核心就是检查SEH链的完整性,其验证代码如下: BOOL RtlIsValidHandler(handler) { if (handler is in an image) { if (image has the IMAGE_DLLCHARACTERISTICS_NO_SEH flag set) return FALSE; if (image has a SafeSEH table) if (handle…
ASLR保护机制 ASLR简介 微软在Windows Vista.2008 server.Windows 7.Windows 8等系统的发布中, 开始将ASLR作为内置的系统保护机制运行, 将系统映像的基址设置到1/256的random slot上, 同时将各个线程的堆栈和堆进行随机化.这需要程序和系统的双重支持, 但是程序的支持并不是一定的.可以使用如下注册表选项来使用或禁用 ASLR 之于所有的程序映像: Edit HKLM\SYSTEM\CurrentControlSet\Control\…
在java中,如果类里面的变量是声明了private的,那么只能在被类中访问,外界不能调用,如果是protected类型的,只能在子类或本包中调用,俗话说没有不透风的墙.但是可以利用java中的反射从而在外界调用private.protected的变量或方法 package reflect; public class PrivateCar { //private成员变量:在传统的类实例调用方式,只能在本类中访问 private String color; //protected方法:使用传统的类…
通过SEH链绕过GS保护机制 ⑴.  原理分析: i.异常处理结构(SEH)处理流程如下: SEH是基于线程的,每一个线程都有一个独立的SEH处理结果,在线程信息块中的第一个结构指向线程的异常列表,Fs:[0]总是指向当前线程的TIB,其中0偏移的指向线程的异常链表,即ExceptionList是指向异常处理链表(EXCEPTION_REGISTRATION结构)的一个指针. 线程信息块定义: typedef struct _NT_TIB { struct _EXCEPTION_REGISTRA…
简介 许多现实中对于网站的攻击往往是由于网站没有及时更新或者对于用户的输入没有进行检查.从缓冲区溢出说起,这样一种针对系统脆弱性的威胁,最根本的问题还是在于对于用户的输入没有进行检查.作为主要威胁之一的SQL注入带来了人们对于其应用和数据库的担忧.这个问题的出现有十年的时间了,但是现在仍旧在许多网站中出现.SQL注入就像许多当前主要的的web应用安全攻击问题也被划归在了对于用户输入的检查上. 正文 许多web开发者并不知道SQL语句能够被自定义(handle)并且假定SQL语句是一个让人信任的命…
随着Android 市场的扩大,各类盗版.破解.打包党纷纷涌现,其使用的手法无非是apk _> smali ->修改代码 ->重打包签名,为对抗此类技术,广大程序员挖掘了Android平台特有的保护技术:签名校验     1.JAVA代码本地签名校验 Android要求安装到手机上的APK文件必须有签名,而理论上开发者的签名他人是无法得到的(证书保护是另外一回事),所以比较容易想到的就是执行签名校验,验证本程序的签名是否为合法的程序.   代码: android.content.pm.P…
前言 国外研究人员披露了Android漏洞(CVE-2018-9489)的信息.Android系统的内部广播机制会暴露敏感的用户和设备信息,手机上安装的应用可在用户不知情或未经许可的情况下访问获取这些信息. Android系统的内部广播机制泄露的数据包括:Wi-Fi网络名称.Wi-Fi网络BSSID,本地IP地址.DNS服务器信息和设备的MAC地址等详细信息.部分信息(如Mac地址)在Android 6版本以上无法通过这个漏洞获取,但是剩下的依然可以通过监听广播来绕过权限检查和其他防范措施. 背…
1.大小写绕过 这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等绕过. 2.简单编码绕过 比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55也就是U的16进制编码来代替U,union写成 %55nION,结合大小写也可以绕过一些WAF,你可以随意替换一个或几个都可以. 也还有大家在Mysql注入中比如表名或是load文件的时候,会把文件名或是表明用16进制编码来绕过WAF都是属于这类. 3.注释绕过…
Metasploit Metasploit框架有一个特定的有效载荷,可用于通过Regsvr32实用程序实现自动化绕过AppLocker exploit/windows/misc/regsvr32_applocker_bypass_server 该模块将启用一个用于存储恶意.sct文件的web服务,同时也提供用于在目标系统下执行的命令 命令执行后regsvr32将从web服务器请求.sct文件,然后执行PowerShell payload 最后成功绕过绕过AppLocker限制…