news 2026/7/1 8:29:32

【学习记录】Week2(三):Glibc 2.23→2.35 关键变化速查表(重点!)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【学习记录】Week2(三):Glibc 2.23→2.35 关键变化速查表(重点!)

写在前面:在 PWN 题中,你拿到的远程环境是什么 Ubuntu 版本,直接决定了你能用什么利用手法。很多新手拿着 Glibc 2.23 的老解法去打 2.35 的环境,撞得头破血流却说 Exploit 写错了。
从 2.23 到 2.35,Glibc 经历了数次“地震级”的安全加固。本文将为你梳理这条演进路线,并奉上 PWN 手必备的速查表。这是决定你能否在高版本环境生存的核心知识!

📑 目录

  1. 为什么 Glibc 版本是 PWN 的分水岭?
  2. 核心演进历程:从 2.23 到 2.35 发生了什么?
  3. 🚀 Glibc 2.23→2.35 PWN 关键变化速查表
  4. 地震级更新详读:Hooks 的陨落 (2.34)
  5. 高版本生存指南:没有 Hook 我们怎么打?

1. 为什么 Glibc 版本是 PWN 的分水岭?

不同的 Ubuntu LTS(长期支持版)默认绑定不同的 Glibc 版本:

  • Ubuntu 16.04 -> Glibc 2.23
  • Ubuntu 18.04 -> Glibc 2.27
  • Ubuntu 20.04 -> Glibc 2.31
  • Ubuntu 22.04 -> Glibc 2.35

Glibc 的更新主要针对堆管理和** Hook 机制**进行了疯狂修补。如果你不知道目标版本的查杀机制,你的 Double Free、你的 Hook 劫持统统会变成malloc(): unsorted double linked list corrupted然后无情退出。

2. 核心演进历程:从 2.23 到 2.35 发生了什么?

  • 2.23 时代(古典时代):没有 Tcache,Fastbin 攻击是主流。__malloc_hook__free_hook像没人管的大门,随便覆写拿 Shell。
  • 2.27 时代(Tcache 降临):引入了 Tcache(线程本地缓存)。堆块释放优先进入 Tcache,Fastbin 攻击大量失效。但 Tcache 早期没有任何检查,导致 Tcache Poisoning(投毒)横行。
  • 2.29 ~ 2.31 时代(查杀加剧):Tcache 增加了key字段用于检测 Double Free;Unsorted Bin 的链表检查变得极其严格,传统的 Unsorted Bin Attack 宣告死刑。
  • 2.34 ~ 2.35 时代(至暗时刻)彻底移除了所有的 Hook 函数!__malloc_hook__free_hook__realloc_hook全部变成了废弃符号。传统一招鲜吃遍天的打法彻底失效,强制要求转向 IO_FILE 攻击或栈劫持。

3. 🚀 Glibc 2.23→2.35 PWN 关键变化速查表

这是本篇的核心,建议截图或收藏备用:

Glibc 版本对应 Ubuntu核心安全机制变更受影响的经典攻击手法现行主流利用思路
2.2316.04无 Tcache;Fastbin 检查较弱Fastbin Double Free, __malloc_hook 覆写Fastbin Attack -> One_gadget
2.2718.04引入 Tcache;Tcache 无 Double Free 检查Fastbin 攻击失效;Tcache Double Free 泛滥Tcache Poisoning -> __free_hook
2.2919.04Tcache 引入key字段防 Double Free;Unsorted Bin 加强 size 检查Tcache Double Free 失效;Unsorted Bin Attack 失效破坏 key 字段 -> Tcache Poisoning -> Hook
2.3120.04进一步加强各种链表完整性检查;Tcache 指针加密 (Protpor)堆指针伪造难度增加同上,需绕过 key 检查
2.3421.04彻底移除__malloc_hook/__free_hook所有依赖 Hook 的利用手法全部报废转向 IO_FILE (FSOP) 或_rtld_global劫持
2.3522.04巩固 2.34 变更;加强指针混淆与 TLV 检查IO_FILE 部分老手法受限House of Apple, 栈劫持 (ret2libc/ROP)

4. 地震级更新详读:Hooks 的陨落 (2.34)

在 2.34 之前,我们只要有任意地址写,就能拿 Shell。比如:

  1. 申请一个堆块。
  2. 利用 UAF 或溢出,把__free_hook的地址写进堆的fd指针。
  3. __free_hook分配出来,写入system函数的地址。
  4. 程序下一次调用free("/bin/sh")时,实际执行了system("/bin/sh")

假设性说明(模拟 2.34 环境下的崩溃):
假设你在 Ubuntu 22.04 (Glibc 2.35) 下尝试老套路,用 GDB 查看目标地址:

pwndbg> p &__free_hook $1 = (<data variable, no debug info> *) 0x0

你会发现,这个地址变成了0x0!它不再是全局变量了,相关的跳转逻辑在汇编层面也被直接删掉。你辛辛苦苦写进去的system地址,根本没有人去执行。这就意味着,一切依赖 Hook 的 Exploit 在 2.34 以上彻底成为废代码。

5. 高版本生存指南:没有 Hook 我们怎么打?

既然大门(Hook)被封死了,我们就得翻窗。在 2.34/2.35 环境下,通常有以下两种翻窗姿势:

5.1 IO_FILE (FSOP) 攻击

程序在退出或刷新缓冲区时,会调用_IO_flush_all_lockp,这个函数会遍历 IO 链表并调用虚函数表里的函数。
我们可以伪造一个恶意的_IO_FILE结构体,篡改它的虚函数表指针。当程序退出时,就会执行我们伪造的虚函数,从而劫持执行流(例如跳转到一个特定的 ROP Gadget,即 House of Apple 系列手法)。

5.2 栈劫持

如果我们能泄露到 Environ 指针(位于 libc 中,指向栈上的环境变量),我们就能得到栈地址。
有了栈地址,配合任意地址写,我们可以直接把 ROP 链写到栈上(比如覆盖__libc_start_main的返回地址),直接用 ROP 调用systemexecve,绕过一切 Hook。

6. 结语

Glibc 的演进史就是一部攻防对抗史。作为 PWN 选手,我们必须牢记:拿到题目第一步,先看 Glibc 版本!
2.23 有 2.23 的打法,2.35 有 2.35的优雅。不要试图用过时的武器打新版本的补丁。

下一部分,我们将暂停宏观视角,回到微观的汇编世界,速查那些必须倒背如流的核心汇编指令。如果本文对你有帮助,请点赞收藏支持!🙏

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 8:28:01

3分钟快速上手BilldDesk:免费开源的跨平台远程桌面控制软件

3分钟快速上手BilldDesk&#xff1a;免费开源的跨平台远程桌面控制软件 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 你是否在为远程办公寻找一款既强大又免费…

作者头像 李华
网站建设 2026/7/1 8:27:28

Android 15 View 绘制触发 BufferQueue / BLAST / SurfaceFlinger 上屏流程

本文通过AI 基于 android-15.0.0_r17 整理&#xff0c;并跟源码做了比对校准&#xff0c;请参考。 普通 View 硬件加速绘制时&#xff0c;Java 层不会直接 Surface.lockCanvas()&#xff1b;而是 ViewRootImpl 触发 ThreadedRenderer&#xff0c;RenderThread 通过 EGL/Skia/Vu…

作者头像 李华
网站建设 2026/7/1 8:23:50

【VMware】此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。

尝试启动虚拟机&#xff0c;出现VT-x报错&#xff1a; 此主机支持IntelVT-x,但Intel VT-x处于禁用状态。 如果已在BIOS固件设置中禁用IntelVTx,或主机自更改此设置后从未重新启动&#xff0c;则IntelVT-x可能被禁用。 (1)确认BIOS/固件设置中启用了Ine!VTx并禁用了可信执行”…

作者头像 李华
网站建设 2026/7/1 8:23:41

GDPU新生必看:从奖学金到转专业,一份超详细的大学四年规划避坑指南

GDPU新生战略规划&#xff1a;从路径选择到资源整合的四年进阶指南刚踏入广东药科大学校园的新生们&#xff0c;往往带着对未来的憧憬与迷茫。大学四年不是匀速跑道&#xff0c;而是充满战略转折点的进阶游戏。本文将打破传统指南的碎片化建议&#xff0c;用战略地图思维帮你规…

作者头像 李华
网站建设 2026/7/1 8:22:47

哪些商标侵权行为会构成刑事犯罪?什么情况下商标侵权会被判刑?

在知识产权日益受到重视的今天&#xff0c;商标作为企业的产品或提供的服务标志&#xff0c;其商业价值也越来越受到人们的重视。尤其是一些知名度高、信誉佳的商标&#xff0c;由于其具有不可估量的商业价值&#xff0c;很容易成为侵权的对象。侵权行为如果严重危害到他人权益…

作者头像 李华