Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 564

JIT 喷射

JIT 喷射 是什么?

JIT 喷射一种利用 JIT 编译器在合法生成的可执行内存页中夹带攻击者选定的可执行字节的漏洞利用技术。


JIT 喷射是一种内存破坏漏洞利用技术,针对带有即时编译器(JIT)的运行时,例如 V8、SpiderMonkey、JSC 等 JavaScript 引擎,.NET CLR,JVM,ActionScript,以及 eBPF。攻击者构造高层语言代码,使其 JIT 编译后的输出按原始字节解析时正好是目标本机指令,从而将载荷夹带进 JIT 产生的 RWX 页面。当配合可劫持控制流的内存破坏漏洞时,攻击者即可跳转到这些喷射出来的 gadget,因为内存被合法标记为可执行,所以能绕过 DEP/NX。现代缓解措施包括常量盲化、随机化代码区域、W^X 写/执行分离、ASLR 和 CFI。

示例

  1. 01

    在 JavaScript 中喷射大量乘法运算,使其立即数常量编码出 shellcode。

  2. 02

    利用 ActionScript JIT 在 Flash Player 的 JIT 区域内布置 NOP sled 与 shellcode。

常见问题

JIT 喷射 是什么?

一种利用 JIT 编译器在合法生成的可执行内存页中夹带攻击者选定的可执行字节的漏洞利用技术。 它属于网络安全的 应用安全 分类。

JIT 喷射 是什么意思?

一种利用 JIT 编译器在合法生成的可执行内存页中夹带攻击者选定的可执行字节的漏洞利用技术。

JIT 喷射 是如何工作的?

JIT 喷射是一种内存破坏漏洞利用技术,针对带有即时编译器(JIT)的运行时,例如 V8、SpiderMonkey、JSC 等 JavaScript 引擎,.NET CLR,JVM,ActionScript,以及 eBPF。攻击者构造高层语言代码,使其 JIT 编译后的输出按原始字节解析时正好是目标本机指令,从而将载荷夹带进 JIT 产生的 RWX 页面。当配合可劫持控制流的内存破坏漏洞时,攻击者即可跳转到这些喷射出来的 gadget,因为内存被合法标记为可执行,所以能绕过 DEP/NX。现代缓解措施包括常量盲化、随机化代码区域、W^X 写/执行分离、ASLR 和 CFI。

如何防御 JIT 喷射?

针对 JIT 喷射 的防御通常结合技术控制与运营实践,详见上方完整定义。

JIT 喷射 还有哪些其他名称?

常见的别称包括: 即时编译喷射。

相关术语