随笔分类 -  CTF

摘要:#### 前言 IDA和Ghidra对**mips64**架构的识别貌似不是很友好,赛场上由于反编译实在难看,所以很难静下心来去逆,于是赛后在期末考试前稍微花点时间做了一下复现。 #### 准备 **checksec**一下,发现是**mips64 大端**,没开**Canary RELRO**,可 阅读全文
posted @ 2023-06-06 12:36 狒猩橙 阅读(539) 评论(0) 推荐(0)
摘要:前言 RealWorld CTF 5th 里的一道iot-pwn,根据真实设备固件改编而成,觉得题目贴近iot实战且很有意思,故在此记录一下复现过程。 题目分析 题目描述 Hello Hacker. You don't know me, but I know you. I want to play 阅读全文
posted @ 2023-01-27 10:30 狒猩橙 阅读(560) 评论(0) 推荐(2)
摘要:总的来说我出的几题不是很难,主要是想把自己感觉有意思的一些东西分享给大家。 ezlogin 程序设计周大作业稍加改编出的题目。洞在Tea里,有个数组越界写,为了避开\x00截断,我给了*可以对其进行替换。最后base64带出flag。 from pwn import* context(os='lin 阅读全文
posted @ 2022-12-05 18:35 狒猩橙 阅读(648) 评论(8) 推荐(2)
摘要:一些零碎的东西 栈迁移 0x7ff5a2911dea <svcudp_reply+26>: mov rbp,QWORD PTR [rdi+0x48] 0x7ff5a2911dee <svcudp_reply+30>: mov rax,QWORD PTR [rbp+0x18] 0x7ff5a2911d 阅读全文
posted @ 2022-11-20 12:31 狒猩橙 阅读(80) 评论(0) 推荐(1)
摘要:2022强网拟态 only 比赛的时候没做得出来,赛后复现一下。只有一次double free的机会,好在用的是seccomp开的沙盒,使得一开始就有很多空闲堆块,里面也残留有libc指针,通过堆风水去打stdout泄露libc,然后劫持__free_hook进行栈迁移即可。 exp: from p 阅读全文
posted @ 2022-11-07 14:13 狒猩橙 阅读(176) 评论(0) 推荐(0)
摘要:2022祥云杯 leak 今年VNCTF的时候碰到过一种写法,方式不会,没写的出来。没想到这次祥云杯leak这题可以用那种写法写,但是我依旧比赛时没写出来。赛后记录一下。 主要是利用house of corrosion打strerr + house of kiwi触发IO,这题不用kiwi直接用ex 阅读全文
posted @ 2022-10-31 18:31 狒猩橙 阅读(182) 评论(0) 推荐(1)
摘要:1.2.2 musl pwn 几个结构 __malloc_context(与glibc中的main_arena类似) struct malloc_context { uint64_t secret; #ifndef PAGESIZE size_t pagesize; #endif int init_ 阅读全文
posted @ 2022-10-18 07:55 狒猩橙 阅读(209) 评论(0) 推荐(1)
摘要:利用msg_msg实现任意地址读写 msgsnd和msgrcv的源码分析 内核通过msgsnd和msgrcv来进行IPC通信。内核消息分为两个部分,一个是消息头msg_msg(0x30),以及后面跟着的消息数据。整个内核消息的长度是从kmalloc-64到kmalloc-4096`。 /* one 阅读全文
posted @ 2022-09-26 15:56 狒猩橙 阅读(1216) 评论(1) 推荐(1)
摘要:利用ldt_struct 与 modify_ldt 系统调用实现任意地址读写 ldt_struct与modify_ldt系统调用的介绍 ldt_struct ldt是局部段描述符表,里面存放的是进程的段描述符,段寄存器里存放的段选择子便是段描述符表中段描述符的索引。和ldt有关的结构体是ldt_st 阅读全文
posted @ 2022-09-14 18:29 狒猩橙 阅读(738) 评论(1) 推荐(2)
摘要:利用userfaultfd + setxattr堆占位 很久之前便看到过这个技术的名字,但是由于自己的摆烂,一直没有管。今天终于找到时间好好看一下这个技术的利用方式。利用userfaultfd + setxattr算是内核里一种比较通用的利用技术,在实际场景中通常和堆喷射技术结合起来。但是在某些CT 阅读全文
posted @ 2022-09-05 12:53 狒猩橙 阅读(773) 评论(1) 推荐(1)
摘要:2022CISCN-satool 打国赛的时候自己还并不了解LLVM PASS pwn,前几天正好学习了一下LLVM PASS pwn,于是就顺便来复现一下这道题目。 首先找到二进制文件的重写函数的主体并对其进行分析。 开始就是限制了函数的参数和基本块的个数必须为1。 然后是先把一块区域变成可写可执 阅读全文
posted @ 2022-08-25 12:19 狒猩橙 阅读(140) 评论(0) 推荐(1)
摘要:条件竞争 && pipe_buffer + 堆喷射 条件竞争往往发生在开了多线程的程序中,常因为没有对全局函数,数据加锁,导致多线程可以同时对其访问篡改,而引发的漏洞。 例题:WCTF2018-klist 我们通过这一道题来学习一下条件竞争以及pipe_buffer + 堆喷射的使用。 这个程序维护 阅读全文
posted @ 2022-08-11 11:17 狒猩橙 阅读(413) 评论(1) 推荐(1)
摘要: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 狒猩橙 阅读(136) 评论(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 狒猩橙 阅读(370) 评论(0) 推荐(0)
摘要:堆喷射(heap spraying) 用2021QWB-notebook这一题来复习了Userfault的用法,以及初识内核堆喷射。同时也学习了work_for_cpu_fn这个函数的利用方法。它可以很稳定地绕过KPTI,执行commit_creds(prepare_kernel_cred(0))。 阅读全文
posted @ 2022-07-22 10:20 狒猩橙 阅读(421) 评论(0) 推荐(0)
摘要:条件竞争 && userfaultfd 概述 userfault是linux下的一种缺页处理的系统调用,用户可以通过自定义的函数来处理这个缺页错误。这里说的缺页就是指,程序访问页面时,该页面还未被装入RAM中,比如mmap出来的堆块。通过这个机制我们可以控制程序执行的先后顺序,从而大幅度提高我们条件 阅读全文
posted @ 2022-07-11 11:11 狒猩橙 阅读(326) 评论(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 狒猩橙 阅读(225) 评论(2) 推荐(1)
摘要:double fetch 概述 double fetch属于条件竞争漏洞,一般是内核态与用户态之间的数据访问竞争。由于多线程的原因,使得内核里多次访问到的用户的数据不一致而发生的漏洞。比如我们传一个指针给内核,内核首先有函数对这个指针进行合法性的检查,检查完毕后再进一步执行下一个函数。但是如果有恶意 阅读全文
posted @ 2022-05-28 17:14 狒猩橙 阅读(146) 评论(2) 推荐(1)
摘要:kernel 劫持seq_operations && 利用pt_regs 劫持seq_operations进行栈迁移 seq_operations是一个大小为0x20的结构体,在打开/proc/self/stat会申请出来。里面定义了四个函数指针,通过他们可以泄露出内核基地址。 struct seq 阅读全文
posted @ 2022-05-15 22:12 狒猩橙 阅读(666) 评论(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 狒猩橙 阅读(336) 评论(2) 推荐(1)