REinject's Blog

我们的功夫再棒,也敌不过洋枪


Copy Fail 深度研究:Linux 页缓存漏洞的根因、利用与检测

CVE-2026-31431 深度研究:从 AF_ALG crypto 子系统的一个优化 commit,到持续 9 年的任意文件页缓存覆写漏洞。涵盖根因分析、内核级动态验证、7 条宿主机提权路径、容器跨租户攻击,以及基于 O_DIRECT + fanotify 的通用检测方案。

覆盖 _IO_2_1_stdout 泄漏 libc 地址

PWN 类型的题基本上都需要用到 libc 的地址,一般情况可以通过获取程序 GOT 表填充的 libc API 地址通过相对偏移计算出 libc 基址。但是也有时候没办法直接读 GOT,这时候如果可以实现任意位置写,那通过覆盖 _IO_2_1_stdout 的方式就可以泄漏 libc 地址。

操作上比较简单,直接把 _IO_2_1_stdout 结构开头的 flag 置为 0x00000000fbad1800,并将 _IO_write_base 低字节位改小,然后等着程序调用 putsprintf 函数即可将 libc 地址泄漏到标准输出里。

阅读更多...
1 / 3 下一页