异常中的异常——借助系统异常处理特例实现匪夷所思的漏洞利用

内存的读、写、执行属性是系统安全最重要的机制之一。通常,如果要改写内存中的数据,必须先确保这块内存具有可写属性,如果要执行一块内存中的代码,必须先确保这块内存具有可执行属性,否则就会引发异常。然而,Windows系统的异常处理流程中存在一些小小的特例,借助这些特例,就可以知其不可写而写,知其不可执行而执行。

继续阅读“异常中的异常——借助系统异常处理特例实现匪夷所思的漏洞利用”

利用Chakra JIT绕过DEP和CFG

JIT Spray是一种诞生于2010年的漏洞利用技术,可将Shellcode嵌入到JIT引擎生成的可执行代码中。目前,包括Chakra在内的各JIT引擎几乎都针对该技术采取了防御措施,包括随机插入空指令、立即数加密等。本文将指出Chakra的JIT Spray防御措施的两个问题(分别存在于Windows 8.1及其之前的系统,以及Windows 10之中),使得攻击者可在IE中用JIT Spray技术执行Shellcode,从而绕过DEP。同时,本文还给出了一种利用Chakra的JIT引擎绕过CFG的方法。

继续阅读“利用Chakra JIT绕过DEP和CFG”