0ctf2017-babyheap】的更多相关文章

1.easy_pwn 可以利用的点: __int64 __fastcall sub_E26(signed int a1, unsigned int a2) { __int64 result; // rax if ( a1 > (signed int)a2 ) return a2; ) LODWORD(result) = a1 + ; else LODWORD(result) = a1; return (unsigned int)result; } 然后 覆盖了 下一个chunk的 size ,然…
前言 ​ 对一些有趣的堆相关的漏洞的利用做一个记录,如有差错,请见谅. ​ 文中未做说明 均是指 glibc 2.23 ​ 相关引用已在文中进行了标注,如有遗漏,请提醒. 简单源码分析 ​ 本节只是简单跟读了一下 malloc 和 free 的源码, 说的比较简单,很多细节还是要自己拿一份源代码来读. 堆中的一些数据结构 堆管理结构 struct malloc_state { mutex_t mutex; /* Serialize access. */ int flags; /* Flags (…
题目位置 https://gitee.com/hac425/blog_data/tree/master/wdb babyheap 通过分配和释放构建 2 个 fastbin 链 利用 show 功能, leak heap 的基地址 然后可以在 heap 伪造 fastbin , 造成 overlap chunk 修改 chunk size ,同时伪造 free chunk unlink 攻击 , 可以控制 ptr_table 然后通过 修改 edit_count 实现多次写 改 __free_h…
前言 又是一道令人怀疑人生的 baby 题. 这道题利用思路非常巧妙,通过 堆溢出 和 fastbin 的机制构造了 information leak, 然后通过 fastbin attack 可以读写 malloc_hook , 然后使用 one_gadget 来 getshell. 题目和 idb 文件:https://gitee.com/hac425/blog_data/tree/master/babyheap 正文 程序涉及的结构体 info 的结构如下,可以通过 allocate 功能…
前言 对 0ctf2018 的 pwn 做一个总结 正文 babystack 漏洞 非常直接的 栈溢出 ssize_t sub_804843B() { char buf; // [esp+0h] [ebp-28h] return read(0, &buf, 0x40u); } 这个题的难点在于 用 python 启动了该程序同时过滤了 stdout 和 stdout #!/usr/bin/python -u # encoding: utf-8 from pwn import * import r…
前言 本文以 0x00 CTF 2017 的 babyheap 为例介绍下通过修改 vtable 进行 rop 的操作 (:-_- 漏洞分析 首先查看一下程序开启的安全措施 18:07 haclh@ubuntu:0x00ctf $ checksec ./babyheap [*] '/home/haclh/workplace/0x00ctf/babyheap' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX en…
babyheap_fastbin_attack 首先检查程序保护 保护全开.是一个选单系统 分析程序 void new() { int index; // [rsp+0h] [rbp-10h] signed int size; // [rsp+4h] [rbp-Ch] void *ptr; // [rsp+8h] [rbp-8h] for ( index = 0; index <= 63; ++index ) { if ( !*((_DWORD *)&flag + 4 * index) )…
fastbin attack + unsortedbin attack + __malloc_hook 的基础利用 题目下载 : https://uaf.io/assets/0ctfbabyheap 本题是2017 0ctf 很简单的一道题 先来看一下题目的基本信息 $ checksec babyheap Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled $ ./…
第一次做出XCTF的题目来,感谢wjh师傅的指点,虽然只做出一道最简单的pwn题,但是还是挺开心的.此贴用来记录一下,赛后试着看看其他大师傅的wp,看看能不能再做出一道题来. babyheap 程序有add.delete.show.edit功能. 在add函数只能创建0x10-0x60大小的chunk. delete函数存在uaf漏洞. show函数平平无奇. edit函数只能往chunk+8的位置进行写,就是在free之后不能直接利用uaf漏洞改写fd指针. 还有一个函数是leavename函…