FILE_related
file相关攻击
TTYflag
ctf pwn菜鸡选手
qq 1617889365
展开
-
FILE攻击的一些进阶操作(待补充)
FILE_advance glibc2.24中加入了对vtable劫持的检测 在 2.24 版本的 glibc 中,全新加入了针对 IO_FILE_plus 的 vtable 劫持的检测措施,glibc 会在调用虚函数之前首先检查 vtable 地址的合法性。首先会验证 vtable 是否位于_IO_vtable 段中,如果满足条件就正常执行,否则会调用_IO_vtable_check 做进一步检查。 /* Check if unknown vtable pointers are permitted; o原创 2020-11-26 10:57:00 · 285 阅读 · 0 评论 -
FSOP
FSOP 进程内所有的_IO_FILE结构会使用_chain域相互连接形成一个链表,这个链表的头部由_IO_list_all维护。 FSOP的核心思想就是劫持_IO_list_all的值来伪造链表和其中的_IO_FILE项,但是单纯的伪造只是构造了数据还需要某种方法进行触发。FSOP选择的触发方法是调用_IO_flush_all_lockp,这个函数会刷新_IO_list_all链表中所有项的文件流,相当于对每个FILE调用fflush,也原创 2020-11-26 10:48:29 · 1469 阅读 · 0 评论 -
vtable伪造
vtable伪造 libc2.23 版本下,位于 libc 数据段的 vtable 是不可以进行写入的,在之前的版本的利用就不叙述了。虽然libc 数据段的 vtable不可以写入,但是可以通过伪造vtable并且修改_IO_FILE_plus->vtable这个指针来实现劫持程序流程。 直接用wiki上的例子 #define system_ptr 0x7ffff7a523a0; #include<stdio.h> #include<stdlib.h> #inc原创 2020-11-26 10:43:26 · 435 阅读 · 0 评论 -
FILE结构体概述
FILE结构 FILE结构体的定义(截自/glibc2.23/libio/libio.h) struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define _IO_file_flags _flags /* The following pointers correspond to the C++ streambuf protocol. */ /* Note: Tk uses原创 2020-11-26 10:32:22 · 1535 阅读 · 1 评论