house of orange

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bme314/article/details/86564169

house of orange

本次笔记基于看雪
看雪CTF.TSRC 2018 团队赛 第十四题

house of orange

1.分配一个堆块
2.溢出topchunk修改size
3.申请超出size的堆,topchunk进入unsorted bin。
4.申请小于size的堆,old_top分为两块。
5.
在这里插入图片描述

pwn HCTF2017 babyprintf

在这里插入图片描述
在这里插入图片描述
libc
_IO_flush_all_lockp函数会刷新_IO_list_all 链表中所有项的文件流,相当于对每个 FILE 调用 fflush,
通过检查
(fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base)或者 (_IO_vtable_offset (fp) == 0 && fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_write_base) )
调用 _IO_OVERFLOW

可以利用其中的 _IO_str_finsh和_IO_str_overflow这两个函数_IO_str_overflow (_IO_FILE fp, int c)
因为调用(char
)fp+0xE8和(char*)fp + 0xE0,所以可以把这部分设置成system的地址。

猜你喜欢

转载自blog.csdn.net/bme314/article/details/86564169