摘要:
格式分析 Header: 文件头,用来注明 pdf 文件版本号 Body: 主要由组成文件的对象组成,例如图片,文字 Cross-regerence table: 交叉引用表,用于存放所有对象的引用、位置偏移、字节长度,用于随机访问pdf中的任意对象 Trailer: 文件尾,给出交叉引用表的位置( 阅读全文
摘要:
xman2020-level1 注册了一个 baby 驱动,在 sub_0 中存在栈溢出,可以将 0x100 的用户数据 copy 到内核栈上,缓冲去到 rbp 距离为 0x80。 什么保护没开直接 ret2user 🐏了。 #include <stdio.h> #include <pthread 阅读全文
摘要:
Poc void *map; int f; struct stat st; char *name; void *madviseThread(void *dont_care) { int c = 0; for(int i = 0; i < 100000000; i++) { /* * You have 阅读全文
摘要:
简介 基于 Dirty Pipe(见前篇)创建出来的新型漏洞利用方式,可以将其他 LInux 内核漏洞转化为逻辑漏洞,进而绕过当前所有的内核缓解机制(包括 CFI 控制流完整性保护)。 核心思路是使用高权限 credential 对象来交换低权限 credential 对象。 利用方式 内核中对权限 阅读全文
摘要:
简介 netlink 协议 中的 CLS_ROUTE4 模块中存在 double free。 影响范围:linux 5.19 之前 利用条件:linux 用户有 CAP_NET_ADMIN 权限 内核编译选项: //下面三个可以触发 poc CONFIG_NET_CLS_ROUTE4=y CONFI 阅读全文
摘要:
eBPF 介绍 BPF(Berkeley Packet Filter)使普通用户拥有了让啮合执行用户代码并共享数据的能力。用户可以讲 eBPF 指令直接码传输给内核,然后通过 socket 写时间来触发内核执行代码。并且在用户空间和内核空间共享一个 map 内存,用户空间和内核空间都对其拥有读写能力 阅读全文
摘要:
Slub 简介 Linux 内核内存管理用了两个算法:伙伴算法(以页为单位的大内存)和 slub 算法(以字节为单位的小内存),其中 slub 系统运行在伙伴系统之上。 slub 进行内存分组管理,分别设置 2^3 ~ 2^11 字节和 96B、192B 共 11 个组, 在内核中的控制结构为 km 阅读全文
摘要:
关于 ret2dir 用来绕 smep、smap、pxn 等用户空间与内核空间隔离的防护手段。 首先,在内核中存在 direct mapping area,线性地直接映射了整个物理内存空间。这就意味着,对于一个被用户进程使用的物理页框,同时存在着一个用户空间地址与内核空间地址到物理页框的映射,那么对 阅读全文
摘要:
double fetch 由于内核态和用户态之间的数据访问竞争导致的条件竞争漏洞。 通常条件下,用户向内核传递数据时,内核先通过 copy_from_user 等函数向内核拷贝数据,但大量复杂数据的时候内核可能只引用其指针,而数据将暂时保存在用户空间,那么此时,这个数据就有被其它恶意线程篡改的风险, 阅读全文
摘要:
环境搭建 首先解包 core.cpio,去掉 init 中 poweroff 强制关机那一句,然后重新打包 ./gen_cpio.sh core.cpio 启动 qemu 的时候出现了报错 Kernel panic - not syncing: Out of memory and no killab 阅读全文