堆漏洞利用实战手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,将 @user_3c6cb52e/heap-exploitation-0zf3 安装到 AI 助手中。
技能介绍
在 pwn 挑战和真实漏洞挖掘中,glibc 堆漏洞的利用往往卡在版本差异和内存布局理解上。基础模型常混淆不同 glibc 版本的约束,甚至遗漏了 2.32 引入的 PROTECT_PTR(safe-linking)机制。本技能作为专家级攻击手册,旨在提供准确、可落地的堆利用策略,解决从内存泄露到最终代码执行的完整链路构建难题。
核心能力与工作流
本技能按技术博客的逻辑组织,核心覆盖 ptmalloc2 的内部结构与攻击决策树:
- 内存结构与泄露:详细梳理
malloc_chunk布局、tcache、fastbin、unsortedbin和smallbin的指针结构。针对堆地址泄露,提供利用tcache fd、fastbin fd或 UAF 读取等具体方法。 - 版本自适应攻击:根据目标环境的 glibc 版本动态选择策略。针对
< 2.26提供 unsafe unlink;针对2.27 - 2.31推荐 tcache poisoning 或 House of 系列;针对>= 2.32详细解析 safe-linking 的解码与绕过;针对>= 2.34(移除 hooks)则引导至_IO_FILE或exit_funcs等后继利用技术。 - 漏洞模式匹配:覆盖 UAF、Double Free、Heap Overflow、Off-by-one、Off-by-null 和未初始化读取等常见模式,并给出对应的利用路径。
- 高级参考库:内联
HOUSE_OF_TECHNIQUES.md和IO_FILE_EXPLOITATION.md,涵盖 House of Force/Spirit/Orange 等经典技巧及_IO_FILEvtable 劫持(FSOP)。
适用边界与注意点
- 本技能专注于 glibc
ptmalloc2分配器,不适用于其他堆实现(如 jemalloc、tcmalloc)或内核堆漏洞。 - 利用
>= 2.32版本的 safe-linking 时,必须先获取堆地址以解码 XOR 指针。 - 对于
>= 2.34版本,传统的__malloc_hook等覆盖手段已失效,需结合arbitrary-write-to-rce等技能寻找新的 RCE 链路。
使用场景
- CTF比赛中遇到glibc堆漏洞,需根据目标glibc版本(如2.32以上)选择绕过safe-linking的利用链,完成任意地址读写
- 分析真实软件中的堆溢出漏洞时,需利用tcache结构泄露堆地址并构造chunk overlap,进而覆盖关键函数指针
- 针对glibc 2.34以上版本(移除hooks)的堆漏洞,需转向_IO_FILE vtable劫持或exit_funcs覆盖等后继利用技术
- 审计开源代码时,需识别UAF、Double Free等堆漏洞模式,并根据触发条件设计对应的泄露与利用步骤
适合人员
- CTF选手:参加pwn方向比赛时,需快速根据glibc版本适配堆利用技巧,完成内存泄露到代码执行的完整链路
- 安全研究员:分析真实漏洞时,需精准匹配UAF、堆溢出等模式,并利用tcache/safe-linking等机制验证漏洞危害性
- 系统开发工程师:排查服务端堆漏洞时,需理解ptmalloc2内部结构,定位漏洞成因并设计缓解措施
- AI助手开发者:优化模型的漏洞利用能力时,需补充glibc版本差异和高级利用技巧,减少基础模型的认知偏差