Attack Top Chunk之 bcloud】的更多相关文章

前言 这是 bctf 2016 的题,链接 https://github.com/ctfs/write-ups-2016/tree/master/bctf-2016/exploit/bcloud-200 相关资源 https://gitee.com/hac425/blog_data/tree/master/bcloud 正文 首先程序开启的保护 haclh@ubuntu:~/workplace/bcloud$ checksec bcloud [*] '/home/haclh/workplace/…
ptmalloc ptmalloc的基本思路是将堆上的内存区域划分为多个chunk,在分配/回收内存时,对chunk进行分割.回收等操作.在32位系统下,chunk头的大小为8 Bytes,且每个chunk的大小也是8 Bytes的整数倍. chunk头包括以下两部分: prev_size: 如果当前chunk的相邻前一chunk未被使用,prev_size为此前一chunk的大小 size: 当前chunk的大小.由于chunk大小是8的整数倍,所以此size的后3 bit被用于存储其他信息.…
今年校赛有点可惜,最后两道质量不错的pwn每做出来,总的来说还是我太菜了,希望下次校赛能AK pwn题.不过这次校赛也没有白打,还是有学到新的东西的.在这里感谢出题的学长. glibc-2.29以后unsortbin attack不能用了,不过可以通过把多余的chunk移入tcache实现.下面从源码分析一下具体原理.注意:接下来分析的源码版本都是glibc-2.31的. 直接看smallbin部分 if (in_smallbin_range (nb)) { idx = smallbin_ind…
Fastbin attack 本文参考了ctf-wiki 和glibc 要了解fastbin attack,我们先要了解fastbin的机制.由于libc2.26后加入了tcache机制,我们这里就只分析glibc 2.23. 下面的代码选自glibc 2.23 (有删除) static void _int_free (mstate av, mchunkptr p, int have_lock) { size = chunksize (p); //获取p的size check_inuse_chu…
Kali下使用libheap 在github上,可以libheap用来帮助调试堆溢出.链接见:https://github.com/cloudburst/libheap 但是最后一次更新在一年前了,我直接拿着在Kali 2.0上使用时,会出错,比如: 我就对其进行了修改,保证可以在Kali 2.0下完美使用,32位和64位都可以使用.我的系统版本: 以后碰见其它Linux发行版,都可以对其修改.在不同的发行版之间,在malloc_state和malloc_par结构体中,稍微有些区别,只需要下载…
前言 ​ 对一些有趣的堆相关的漏洞的利用做一个记录,如有差错,请见谅. ​ 文中未做说明 均是指 glibc 2.23 ​ 相关引用已在文中进行了标注,如有遗漏,请提醒. 简单源码分析 ​ 本节只是简单跟读了一下 malloc 和 free 的源码, 说的比较简单,很多细节还是要自己拿一份源代码来读. 堆中的一些数据结构 堆管理结构 struct malloc_state { mutex_t mutex; /* Serialize access. */ int flags; /* Flags (…
前言 off by null 是一个比较有意思的技术 下面通过 hctf2018 的 heapstrom_zero 实战一波. 相关文件(exp, 题目)位于 https://gitee.com/hac425/blog_data/blob/master/off_by_null/ 注:为了调试的方便,修改了一些代码. 原始题目链接 https://github.com/veritas501/hctf2018 程序分析 直接拿源码分析,程序是一个比较简单的菜单程序 int main(void){ i…
PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的CTF,Hitcon的题目内容更新,往往会出现一些以前从未从题目中出现过的姿势.同时观察一些CTF也可以发现,往往都是国外以及台湾的CTF中首先出现的姿势,然后一段时间后才会被国内的CTF学习到. 此次Hitcon2016目前还未发现有中文的writeup放出,由于Hitcon题目的高质量,所以这里写…
前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 利用 FILE 结构体进行攻击,在现在的 ctf 比赛中也经常出现,最近的 hitcon2017 又提出了一种新的方式.本文对该攻击进行总结. 正文 首先来一张 _IO_FILE 结构体的结构 _IO_FILE_plus 等价于 _IO_FILE + vtable 调试着来看看(64 位) vtable 指向的位置是一组函数指针 利用 vtable 进行攻击 通过…
前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 前面介绍了几种 File 结构体的攻击方式,其中包括修改 vtable的攻击,以及在最新版本 libc 中 通过 修改 File 结构体中的一些缓冲区的指针来进行攻击的例子. 本文以 hitcon 2017 的 ghost_in_the_heap 为例子,介绍一下在实际中的利用方式. 不过我觉得这个题的精华不仅仅是在最后利用 File 结构体 getshell 那…