随笔分类 -  CTF

摘要: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 狒猩橙 阅读(284) 评论(1) 推荐(1)
摘要:####exp from pwn import* context.log_level = 'debug' context.arch = 'amd64' #s = process('./examination') s = remote('124.70.130.92',60001) libc = ELF 阅读全文
posted @ 2022-05-09 17:48 狒猩橙 阅读(78) 评论(0) 推荐(0)
摘要:#kernel UAF && 劫持tty_struct ####ciscn2017_babydriver exp1 fork进程时会申请堆来存放cred。cred结构大小为0xA8。修改cred里的uid,gid为0,即可get root #include <string.h> #include < 阅读全文
posted @ 2022-05-03 21:34 狒猩橙 阅读(249) 评论(1) 推荐(1)
摘要:#kernel ROP 借助qwb-2018 core这道题目来熟悉一下,kernel rop及ret2usr 首先看一下启动脚本 发现没有开什么保护,只开了一个kaslr,为了方便调试我们在这里把它改成nokaslr关闭即可。 再来看一下init文件 看一下这个里面的几行命令是什么意思 1、mou 阅读全文
posted @ 2022-05-02 14:01 狒猩橙 阅读(148) 评论(1) 推荐(1)
摘要:house of storm 是一个结合了 unsorted bin 和 largebin attack 的危害性极高的组合漏洞。其效果是可以实现任意地址申请一个堆块,他的思想主要就是通过 unsorted bin 和 largebin attack 来伪造并链进一个 unsorted bin。 利 阅读全文
posted @ 2022-04-26 17:16 狒猩橙 阅读(249) 评论(2) 推荐(1)
摘要:largebin attack 由这个名字就可以看出是对 largebin 进行的操作,需要的条件是存在 UAF 或者可以构造出 UAF。实现的功能是: 1、任意地址写入一个大数字 2、实现任意地址分配(这个好像也叫 house of strom,以后另开一章来记) 关键源码: else { vic 阅读全文
posted @ 2022-03-16 13:24 狒猩橙 阅读(357) 评论(1) 推荐(1)
摘要:摆烂很长时间之后,终于下定决心来看点新的东西。正好 winmt 师傅前不久把他 pig 修好的附件发给我了,我就借此来学习一下新版本的 IO_FILE 及 house of pig。 新版本的 IO_FILE 利用的函数是老版本中喜欢用的 _IO_str_overflow,我们来看一下 glibc 阅读全文
posted @ 2022-03-11 12:16 狒猩橙 阅读(442) 评论(3) 推荐(1)
摘要:之前写过一篇 IO_FILE——leak 任意读,但是在学习的时候偷懒了,没有深入去看,这次碰到 winmt 师傅出的题,就傻眼了,故再写一篇博客来记录一下。 例题 ctfshow Incomplete Menu : 洞在 edit 里,可以超过 size 进行一个置零的操作。 这里还是考虑利用 _ 阅读全文
posted @ 2022-03-06 14:26 狒猩橙 阅读(662) 评论(1) 推荐(1)
摘要:没有附件,只能对着别人文章硬看了。(哪个师傅有附件的话联系我一下,感激不尽) 从肥猫师傅本人的 文章 中得知使用 kiwi 的条件有两点: 1、能够触发 __malloc_assert 2、有任意写的能力,修改 _IO_helper_jumps 结构体 kiwi 的流程是 __malloc_asse 阅读全文
posted @ 2022-02-26 21:22 狒猩橙 阅读(535) 评论(0) 推荐(1)
摘要:在堆题没有show函数时,我们可以用 IO_FILE 进行leak,本文就记录一下如何实现这一手法。 拿一个输出函数 puts 来说,它在源码里的表现形式为 _IO_puts 。 _IO_puts (const char *str) { int result = EOF; _IO_size_t le 阅读全文
posted @ 2022-02-23 11:28 狒猩橙 阅读(569) 评论(2) 推荐(1)
摘要:看 glibc 2.32 源码: /* Safe-Linking: Use randomness from ASLR (mmap_base) to protect single-linked lists of Fast-Bins and TCache. That is, mask the "next 阅读全文
posted @ 2022-02-20 15:11 狒猩橙 阅读(220) 评论(0) 推荐(2)
摘要:2.27 之前的 off by null 的利用手法总体来说比较简单伪造一个 presize 即可,但是在 glibc 2.29的更新当中,unlink 里加入的 presize check 使得之前的利用手法不再有效,并且 off by null 的难度提高不少。 /* consolidate b 阅读全文
posted @ 2022-02-18 13:22 狒猩橙 阅读(317) 评论(0) 推荐(1)
摘要:tcache stashing unlink atttack 主要利用的是 calloc 函数会绕过 tcache 从smallbin 里取出 chunk 的特性。并且 smallbin 分配后,同大小的空闲块挂进会 tcache。这个攻击可实现两个效果: 1、任意地址上写一个较大的数(和unsor 阅读全文
posted @ 2022-02-16 10:38 狒猩橙 阅读(636) 评论(0) 推荐(1)
摘要:推迟了好久的复现,那就在情人节这个特殊的日子复现一波吧。这题除了 ora 之外特别的地方就是用到了 retf 来进行 32 位和 64 位的切换。参考了 winmt 师傅的博客复现了一下。 import time from pwn import * context.arch = 'amd64' #c 阅读全文
posted @ 2022-02-14 12:37 狒猩橙 阅读(87) 评论(0) 推荐(1)
摘要:在 glibc 2.29 当中 tcache 增加了 key 字段,让原本的 tcache-dup 不像原来那么简单了。一般来说我们需要破坏 key 字段,才能继续进行 double free。而 house of botcake 采用的思想是避免出现 key 字段那么就无需覆盖。他是在填满 tca 阅读全文
posted @ 2022-02-08 22:37 狒猩橙 阅读(420) 评论(1) 推荐(1)
摘要:off-by-null + unlink from pwn import * context.arch = 'amd64' context.log_level = 'debug' s = process('./ciscn_2019_es_4') #s = remote('node4.buuoj.cn 阅读全文
posted @ 2022-01-29 17:03 狒猩橙 阅读(114) 评论(1) 推荐(1)
摘要:setcontext+orw 大致可以把2.27,2.29做为两个分界点。 我们先来讨论 2.27 及以下的 setcontext + orw 的写法。 首先 setcontext 是什么?了解过 SROP 的师傅应该知道 pwntools 自带了一款可以控制寄存器值的工具。模板如下: frame 阅读全文
posted @ 2022-01-26 19:39 狒猩橙 阅读(3272) 评论(1) 推荐(3)
摘要:FSOP 是 File Stream Oriented Programming 的缩写。所有的 _IO_FILE 结构会由 _chain 字段连接形成一个链表,由 _IO_list_all 来维护。而 FSOP 的核心思想就是劫持通过 _IO_list_all 的值来伪造链表和其中的 _IO_FIL 阅读全文
posted @ 2022-01-19 20:24 狒猩橙 阅读(764) 评论(1) 推荐(1)
摘要:_fileno 是 stdin 文件里的一个字段,在 x64 系统里,偏移为 0x70。 以下是 IO_FILE 结构体: struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define 阅读全文
posted @ 2022-01-14 10:09 狒猩橙 阅读(315) 评论(1) 推荐(1)
摘要:House of force是一个堆的小利用技巧,要想利用它需要满足两个条件: 1、可以通过溢出修改 top chunk 的 size 2、分配堆的大小没有限制 通过把 top chunk 的size 改的很大,再malloc一个特定的size,使 top chunk 的位置 恰好在目标位置 -0x 阅读全文
posted @ 2022-01-09 09:39 狒猩橙 阅读(192) 评论(1) 推荐(1)