
Windows保护机制详解及其绕过
文章平均质量分 96
学习途径:《0day安全:软件漏洞分析技术》
Shad0w-2023
要想人前显贵,必先人后受罪!!!
展开
-
Windows下堆保护机制原理及其绕过
1>.堆刚初始化,所以我们申请的堆是从FreeList[0]中申请的,从FreeList[0]中拆卸下来的chunk在分配好后将剩余的空间新建一个chunk插入到FreeList[0]中,这样的话,h1后面就会有一大段空闲的空间。.后面的chunk块首被覆盖了,当h2再申请空间的时候,程序就会从破坏了的chunk中申请空间,并将剩余的空间新建为一个chunk并插入到FreeList[0]中。大家考虑一下,如果说,我们将旧chunk的Flink和Blink都覆盖掉了,那么会发生什么情况?原创 2024-04-09 14:40:20 · 1108 阅读 · 0 评论 -
Windows下的SEHOP保护机制详解及其绕过
SafeSEH是建立了一张安全SEH表,在调用异常处理之前与安全SEH表中的指针进行比对,我们也有很多绕过方式。微软的天才工程师发现了问题,于是又写出了一种针对于异常处理的保护:SEHOP。原创 2024-04-09 14:39:59 · 1547 阅读 · 0 评论 -
Windows下的ASLR保护机制详解及其绕过
我们前面已经详细介绍过GS,SafeSEH,和DEP保护机制,大家想一想,如果没有开启任何保护,如果程序存在漏洞我们是不是很容易攻击成功?就算开了前面已经介绍过的保护,我们也有很容易的方法突破这些保护,进而完成攻击。那么我们再次站在开发者的角度,我们如何制定一种保护机制,从而让攻击很难完成呢?原创 2024-04-09 14:39:14 · 1667 阅读 · 0 评论 -
Windows下DEP保护机制详解及其绕过
在开始DEP保护机制的介绍之前,想一想没有开保护时我们的攻击过程,以及开了我们前面介绍的GS和SafeSEH保护的攻击过程,相信大家都能发现一个问题:就是我们本来写入数据区的数据被当作代码执行了,那么站在一个开发者的角度,我们该如何避免这种问题?原创 2024-04-09 14:38:17 · 1240 阅读 · 0 评论 -
Windows下SafeSEH保护机制详解及其绕过
我们知道通常情况下,异常处理机制都是系统帮我们写好,编译进程序里面的,那我们如何对这些异常处理地址进行保护呢?我们想想是不是可以像前面的GS那样,我们在另一个地方保存,然后在调用异常处理的时候进行验证呢?实际上是可以的,这张表我们称之为安全S.E.H表。当程序开启了SafeSEH保护后,在编译期间,编译器将所有的异常处理地址提取出来,并且编入一张安全SEH表中,并且将这张表放到程序的映像里面。原创 2024-04-09 14:37:00 · 1211 阅读 · 0 评论 -
Windows下的GS保护详解及其绕过
站在一个开发者的角度,我们如何防止栈溢出?试想一下,我们在返回地址之前,加入一个数字,这样,当覆盖返回地址之前,这个数字已经被覆盖了,我们来通过这个数字来检测是否发生了栈溢出,是否可行呢?变量a变量变量canary0xxxxxxxx0xxxxxxxxxebp0xxxxxxxxx返回地址这样,当发生栈溢出的时候,就会首先将canary覆盖掉,我们在函数返回的时候检测这个canary的值,就可以发现是否发生了溢出。原创 2024-04-09 14:36:14 · 1373 阅读 · 0 评论