用途:面向二进制漏洞利用场景,系统整理 ELF 各类防护的识别与绕过方法,每项防护配套绕过手段与所需原语,并给出组合防护下的决策路径。内容来自 ctf-wiki mitigation 章节与真实利用经验,相关路由包括 stack-overflow-and-rop、format-string-exploitation、heap-exploitation、arbitrary-write-to-rce,并可加载 PROTECTION_BYPASS_MATRIX.md 参考矩阵。
主要能力:识别用 checksec 与表格式命令(ASLR 查 /proc/sys/kernel/randomize_va_space;PIE 用 readelf -h 看 Type: DYN;NX 用 readelf -l 看无 RWE 段;Canary 查 __stack_chk_fail@plt;RELRO 用 readelf -l 与 .got 可写性;FORTIFY 查 __printf_chk、__memcpy_chk)。绕过覆盖:ASLR(信息泄露、部分覆写、32 位爆破、ret2dlresolve、格式化字符串泄露,并列出 x86-64 Linux 各区域熵);PIE(泄露返回地址、部分覆写末 1-2 字节、%N$p 泄露);NX(ROP、ret2libc、ret2csu、SROP、mprotect 链、JIT spray);RELRO(无/部分可直接 GOT 覆写,Full 改用 __malloc_hook、__free_hook、_IO_FILE vtable、__exit_funcs、TLS_dtor_list、.fini_array、栈返回地址);Canary(格式化字符串泄露、fork 爆破、部分覆写泄露空字节、TLS 覆写、__stack_chk_fail@GOT 覆写);FORTIFY_SOURCE(位置参数 %n 被禁,可用非位置 %n 链或改用堆溢出、ROP 找未加固 printf);CET 影子栈与 IBT;ARM MTE 的 4 位标签与 1/16 爆破、越界内利用等。文末决策树按 checksec 结果逐层给出路径选择。
使用方式:先跑 checksec 识别防护组合,再按所需原语在矩阵中选绕过路径;命令与判断条件保持原文。
适用场景:CTF pwn、漏洞利用研究、防护评估教学。
限制:各绕过效果依赖目标 glibc 版本、编译选项与具体漏洞原语;部分目标如 hook 仅限 glibc < 2.34;MTE 爆破为概率性;未提供具体目标环境验证步骤与工具安装命令。