0day
Angelki
相信自己一定可以的!
展开
-
0day 第10章 --栈中的保护机制:GS
实验环境:winxp sp3 、vs201010.1 GS的保护原理看图就明白了在vs2010中可通过以下选项选择是否开启GS,默认开启:以下情况不会进行GS保护:(1) 函数不包含缓冲区(2) 函数被定义为具有变量参数列表(3) 函数使用无保护的关键字标记(4) 函数在第一个语句中包含内嵌汇编代码(5)缓冲区不是8字节类型且大小小于等于4个字节针对(3)和(5)...原创 2018-10-11 09:59:58 · 765 阅读 · 5 评论 -
0day 第12章--12.4节:利用可执行内存挑战DEP
实验环境:winxp sp3vs2010实验配置:关闭DEP、GS、SAFESEH,禁用优化,release版本思路:如果进程的内存空间中有一段可读可写可执行的内存,而我们将shellcode复制到该内存,并劫持程序流程,则我们的shellcode就有执行的机会。具体实施:利用memcpy函数将shellcode复制到该段内存。memcpy函数的部署可参考上一节1、首先找到一段...原创 2019-04-07 16:57:17 · 332 阅读 · 0 评论 -
0day 第12章--12.3.1节:Ret2Libc 实战之利用ZwSetInformationProcess
12.3.1 利用Ret2Libc挑战DEP思想:通过跳转到 ZwSetInformationProcess 函数将DEP关闭后再转入shellcode 执行。核心:利用LdrpCheckNXCompatibility函数检查SafeDisc来关闭DEP的流程。核心是0x7C93CD24行代码,检查al是否等于1,如果等于1则执行关闭DEP的流程。思路:由于DEP开启,堆栈不能直接写入,...原创 2019-02-21 09:55:28 · 755 阅读 · 0 评论 -
0day 第10章--10.5节:修改data中的cooki突破GS
[@TOC]实验原理:修改.data中保存的cookie,然后替换掉检查时的cookie,即可绕过对cookie的检查!实验环境:winxp sp3 vs2010实验要求:优化全部禁用、release版本源程序:OD载入程序,在两处printf处下断点。首先得到malloc后,str的地址:0x003A4ED0F7单步向下,得到shellcode的地址:0x00403000...原创 2018-11-01 10:12:04 · 229 阅读 · 0 评论 -
0day 第11章--11.4节:从堆中绕过SafeSEH
实验原理:SHE的安全校验存在一个严重的缺陷:如果SHE中异常函数指针执行堆区,即使安全校验发现SHE不可信,仍会调用已经被修改过的异常处理函数!因此基于这个原理我们将shellcode布置到堆区中执行!实验环境:Winxp sp3 vs2010Release版本、禁用优化实验程序:分析程序:首先程序申请了一块500字节的堆空间,将sellcode复制到该空间中;在test函数...原创 2018-11-01 09:54:06 · 221 阅读 · 0 评论 -
0day 第11章--11.1节:SafeSEH保护原理
@TOC1、SafeSEH原理很简单:在程序调用异常处理函数之前,对要调用的异常处理函数进行校验,当发现异常处理函数不可靠时停止对异常处理函数的调用。编译器在编译程序时将程序所有的异常处理函数地址提取出来,编入一张安全的SHE表,并将这张表放到程序的映像里面。当程序调用异常处理函数时将函数地址与安全SHE表进行匹配,检查调用的异常处理函数是否在安全的SHE表中。2、SafeSEH机制的运行...原创 2018-11-01 09:48:36 · 418 阅读 · 0 评论 -
0day 第10章--10.4节:攻击异常处理突破GS(2)
文章目录**实验原理:**实验环境:源程序:实验原理:传入参数过长,直到覆盖掉SEH句柄。将SHE句柄覆盖为shellcode地址即可。实验环境:Winxp sp3 vs2010Release版本、禁用优化、多了后面2个“否”(这样编译的程序就出现strcpy和strcat函数了,便于分析)仅仅是这两个否,之后的程序分析就和书中一样了!传说中的关闭safeseh的方法。。。源程...原创 2018-11-01 09:37:07 · 250 阅读 · 0 评论 -
0day 第10章--10.4节:攻击异常处理突破GS(1)
实验原理:传入参数过长,直到覆盖掉SEH句柄。将SHE句柄覆盖为shellcode地址即可。实验环境:Winxp sp3 vs2010Release版本、禁用优化根据网上把safeseh关闭了,但是没用。。。入的坑:(找到原因了,但是不知道怎么改正。。。)思考原因:很有可能是因为系统开启了safeseh,没有关闭导致的!书上说,溢出原理是shellcode过程导致覆盖了strc...原创 2018-11-01 09:25:59 · 249 阅读 · 0 评论 -
0day 第10章--10.3:覆盖虚函数突破GS
实验环境:winxp sp3 vs2010实验要求:程序要求禁用优化、release版本实验原理:程序只有在函数返回时才检查Security Cookie,如果在函数检查之前劫持程序流程,就能实现缓冲区溢出了!因此可以利用C++中的虚函数!(为什么?见0day第6章攻击C++虚函数)[C++虚函数原理]{虚表指针->虚表->函数地址,call函数地址}总结一下入的坑:(1)...原创 2018-11-01 09:20:38 · 431 阅读 · 8 评论 -
0day 第11章--11.6节:利用加载模块之外的地址绕过SafeSEH
实验环境:winxp sp3 vs2010总结一下入的坑:(1) 变量zero的位置必须在strcpy()的后面,不然strcpy之后会将zero的值覆盖掉,导致zero不为0,触发不了异常。void test(char * input){ char str[200]; strcpy(str,input); int zero=0; __try{ zero = 1/zer...原创 2018-10-10 22:34:30 · 187 阅读 · 0 评论 -
0day 第12章--12.3.3 Ret2Libc实战之利用VirtualAlloc
实验环境:Winxp sp3VS2010实验配置:禁用优化、关闭GS、关闭safeseh、开启DEP思路:当程序需要一段可执行内存时,可以通过kernel32.dll的VirtualAlloc申请一段具有可执行属性的内存。因此可通过利用此函数将shellcode复制到申请的内存空间中,以绕过DEP。如何利用?将返回地址覆盖为VirtualAlloc的地址,参数输入进去即可。...原创 2019-04-08 21:08:56 · 419 阅读 · 0 评论