![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
0day
文章平均质量分 68
Angelki
相信自己一定可以的!
展开
-
0day 第10章 --栈中的保护机制:GS
实验环境: winxp sp3 、vs2010 10.1 GS的保护原理 看图就明白了 在vs2010中可通过以下选项选择是否开启GS,默认开启: 以下情况不会进行GS保护: (1) 函数不包含缓冲区 (2) 函数被定义为具有变量参数列表 (3) 函数使用无保护的关键字标记 (4) 函数在第一个语句中包含内嵌汇编代码 (5)缓冲区不是8字节类型且大小小于等于4个字节 针对(3)和(5)...原创 2018-10-11 09:59:58 · 835 阅读 · 5 评论 -
0day 第12章--12.4节:利用可执行内存挑战DEP
实验环境: winxp sp3 vs2010 实验配置: 关闭DEP、GS、SAFESEH,禁用优化,release版本 思路: 如果进程的内存空间中有一段可读可写可执行的内存,而我们将shellcode复制到该内存,并劫持程序流程,则我们的shellcode就有执行的机会。 具体实施: 利用memcpy函数将shellcode复制到该段内存。 memcpy函数的部署可参考上一节 1、首先找到一段...原创 2019-04-07 16:57:17 · 347 阅读 · 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 · 771 阅读 · 0 评论 -
0day 第10章--10.5节:修改data中的cooki突破GS
[@TOC] 实验原理: 修改.data中保存的cookie,然后替换掉检查时的cookie,即可绕过对cookie的检查! 实验环境: winxp sp3 vs2010 实验要求: 优化全部禁用、release版本 源程序: OD载入程序,在两处printf处下断点。首先得到malloc后,str的地址:0x003A4ED0 F7单步向下,得到shellcode的地址:0x00403000 ...原创 2018-11-01 10:12:04 · 298 阅读 · 0 评论 -
0day 第11章--11.4节:从堆中绕过SafeSEH
实验原理: SHE的安全校验存在一个严重的缺陷:如果SHE中异常函数指针执行堆区,即使安全校验发现SHE不可信,仍会调用已经被修改过的异常处理函数!因此基于这个原理我们将shellcode布置到堆区中执行! 实验环境: Winxp sp3 vs2010 Release版本、禁用优化 实验程序: 分析程序: 首先程序申请了一块500字节的堆空间,将sellcode复制到该空间中; 在test函数...原创 2018-11-01 09:54:06 · 235 阅读 · 0 评论 -
0day 第11章--11.1节:SafeSEH保护原理
@TOC 1、SafeSEH原理很简单: 在程序调用异常处理函数之前,对要调用的异常处理函数进行校验,当发现异常处理函数不可靠时停止对异常处理函数的调用。 编译器在编译程序时将程序所有的异常处理函数地址提取出来,编入一张安全的SHE表,并将这张表放到程序的映像里面。当程序调用异常处理函数时将函数地址与安全SHE表进行匹配,检查调用的异常处理函数是否在安全的SHE表中。 2、SafeSEH机制的运行...原创 2018-11-01 09:48:36 · 455 阅读 · 0 评论 -
0day 第10章--10.4节:攻击异常处理突破GS(2)
文章目录**实验原理:**实验环境:源程序: 实验原理: 传入参数过长,直到覆盖掉SEH句柄。将SHE句柄覆盖为shellcode地址即可。 实验环境: Winxp sp3 vs2010 Release版本、禁用优化、多了后面2个“否”(这样编译的程序就出现strcpy和strcat函数了,便于分析) 仅仅是这两个否,之后的程序分析就和书中一样了! 传说中的关闭safeseh的方法。。。 源程...原创 2018-11-01 09:37:07 · 314 阅读 · 0 评论 -
0day 第10章--10.4节:攻击异常处理突破GS(1)
实验原理: 传入参数过长,直到覆盖掉SEH句柄。将SHE句柄覆盖为shellcode地址即可。 实验环境: Winxp sp3 vs2010 Release版本、禁用优化 根据网上把safeseh关闭了,但是没用。。。 入的坑:(找到原因了,但是不知道怎么改正。。。) 思考原因:很有可能是因为系统开启了safeseh,没有关闭导致的! 书上说,溢出原理是shellcode过程导致覆盖了strc...原创 2018-11-01 09:25:59 · 281 阅读 · 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 · 444 阅读 · 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 · 198 阅读 · 0 评论 -
0day 第12章--12.3.3 Ret2Libc实战之利用VirtualAlloc
实验环境: Winxp sp3 VS2010 实验配置: 禁用优化、关闭GS、关闭safeseh、开启DEP 思路:当程序需要一段可执行内存时,可以通过kernel32.dll的VirtualAlloc申请一段具有可执行属性的内存。因此可通过利用此函数将shellcode复制到申请的内存空间中,以绕过DEP。 如何利用? 将返回地址覆盖为VirtualAlloc的地址,参数输入进去即可。 ...原创 2019-04-08 21:08:56 · 434 阅读 · 0 评论