摘要: UAF改top chunk size 之前我以为想改top chunk size要通过UAF并且加上edit的功能才可以实现。前几天我看到一个纯利用堆风水实现修改top chunk的方法才恍然大悟,在此记录一下。 举个例子,堆布局如下: add(0, 0x420, b'a') add(1, 0x42 阅读全文
posted @ 2022-08-08 08:55 狒猩橙 阅读(105) 评论(0) 推荐(1) 编辑
摘要: house of cat 本来很好的一题,结果在比赛前两天出了个house of apple,IO链相似,达成的效果一样。 from pwn import* context(os='linux',arch='amd64',log_level='debug') #s = process('house_ 阅读全文
posted @ 2022-08-03 13:40 狒猩橙 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 堆喷射(heap spraying) 用2021QWB-notebook这一题来复习了Userfault的用法,以及初识内核堆喷射。同时也学习了work_for_cpu_fn这个函数的利用方法。它可以很稳定地绕过KPTI,执行commit_creds(prepare_kernel_cred(0))。 阅读全文
posted @ 2022-07-22 10:20 狒猩橙 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 条件竞争 && userfaultfd 概述 userfault是linux下的一种缺页处理的系统调用,用户可以通过自定义的函数来处理这个缺页错误。这里说的缺页就是指,程序访问页面时,该页面还未被装入RAM中,比如mmap出来的堆块。通过这个机制我们可以控制程序执行的先后顺序,从而大幅度提高我们条件 阅读全文
posted @ 2022-07-11 11:11 狒猩橙 阅读(216) 评论(3) 推荐(1) 编辑
摘要: 2022 鹏城杯 pwn rainbow_cat 我也不知道我是怎么搞出来的,学技术还得看winmt大师博客https://www.cnblogs.com/winmt/articles/16440009.html from pwn import* context(os='linux',arch='a 阅读全文
posted @ 2022-07-03 16:40 狒猩橙 阅读(196) 评论(2) 推荐(1) 编辑
摘要: double fetch 概述 double fetch属于条件竞争漏洞,一般是内核态与用户态之间的数据访问竞争。由于多线程的原因,使得内核里多次访问到的用户的数据不一致而发生的漏洞。比如我们传一个指针给内核,内核首先有函数对这个指针进行合法性的检查,检查完毕后再进一步执行下一个函数。但是如果有恶意 阅读全文
posted @ 2022-05-28 17:14 狒猩橙 阅读(119) 评论(2) 推荐(1) 编辑
摘要: kernel 劫持seq_operations && 利用pt_regs 劫持seq_operations进行栈迁移 seq_operations是一个大小为0x20的结构体,在打开/proc/self/stat会申请出来。里面定义了四个函数指针,通过他们可以泄露出内核基地址。 struct seq 阅读全文
posted @ 2022-05-15 22:12 狒猩橙 阅读(540) 评论(2) 推荐(2) 编辑
摘要: #kernel heap bypass smep,smap && 劫持modprobe_path ###exp1 smep:smep即用户数据不可执行,当 CPU 处于 ring0 模式时,执行用户空间的代码会触发页错误,系统根据CR4寄存器的第20位判断内核是否开启smep,为1时开启,为0时关闭 阅读全文
posted @ 2022-05-14 23:08 狒猩橙 阅读(297) 评论(2) 推荐(1) 编辑
摘要: 1.1.24 musl pwn 关键源码 static void unbin(struct chunk *c, int i) { if (c->prev == c->next) // 若 bin 只有一个 chunk,将 bin 设为空 bin a_and_64(&mal.binmap, ~(1UL 阅读全文
posted @ 2022-05-14 10:40 狒猩橙 阅读(232) 评论(1) 推荐(1) 编辑
摘要: 我是大笨比之线性表交集差 #include <iostream> using namespace std; template <class T> // 单链表结点类,T指定结点的元素类型 class Node { public: T data; // 数据域,保存数据元素 Node<T> *next 阅读全文
posted @ 2022-05-10 17:13 狒猩橙 阅读(60) 评论(1) 推荐(1) 编辑