专栏名称: 宸极实验室
『宸极实验室』隶属山东九州信泰信息科技股份有限公司,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。实验室圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。
目录
相关文章推荐
今天看啥  ›  专栏  ›  宸极实验室

『CTF』IO_FILE利用入门(2)

宸极实验室  · 公众号  ·  · 2024-07-01 17:00
    

文章预览

点击蓝字 关注我们 日期:2024.07.01 作者:H4y0 介绍:Linux_io_FILE基础知识。 0x00 前言 _IO_FILE 利用已成为 CTF 中 PWN 题的常规利用思路,逐渐成为基础知识,上篇文章已经介绍了 _IO_FILE 的结构及标准 I/O 流相关内容,本文将介绍 vtable 及与 vtable 相关的劫持程序流的方法。 0x01 伪造vtable 借用 Wiki 上的例子: # define system_ptr 0x7ffff7a52390; int main ( void ) { FILE *fp; long long *vtable_ptr; fp=fopen( "123.txt" , "rw" ); vtable_ptr=*( long long *)(( long long )fp+ 0xd8 ); //get vtable memcopy(fp, "sh" , 3 ); vtable_ptr[ 7 ]=system_ptr //xsputn fwrite( "hi" , 2 , 1 ,fp); } 使用 glibc-2.23 进行编译, glibc2.23 版本下,位于 libc 数据段的 vtable 是不可以进行写入的,但是可以通过伪造 vtable 并且修改 _IO_FILE_plus->vtable 这个指针来实现劫持程序流程。 简单介绍一下 fwrite 函数。      _IO_size ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览