随笔分类 -  IO_FILE

摘要:2022强网拟态 only 比赛的时候没做得出来,赛后复现一下。只有一次double free的机会,好在用的是seccomp开的沙盒,使得一开始就有很多空闲堆块,里面也残留有libc指针,通过堆风水去打stdout泄露libc,然后劫持__free_hook进行栈迁移即可。 exp: from p 阅读全文
posted @ 2022-11-07 14:13 狒猩橙 阅读(176) 评论(0) 推荐(0)
摘要: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)
摘要:摆烂很长时间之后,终于下定决心来看点新的东西。正好 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 狒猩橙 阅读(658) 评论(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)
摘要: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 狒猩橙 阅读(314) 评论(1) 推荐(1)