摘要: Warm up 考察知识点: 文件包含漏洞 代码审计 解题步骤 首先我们进来看到了一个滑稽的表情,没啥别的东西,先看看源码 源码中发现有注释 source.php 我们访问source.php,得到代码 <?php highlight_file(__FILE__); class emmm { pub 阅读全文
posted @ 2020-08-05 11:46 Rookle 阅读(212) 评论(0) 推荐(0) 编辑
摘要: malloc 函数分析(glibc.2.27) 本人菜🐔一只,如果分析的有错误,请大佬指正。 __libc_malloc函数分析 void * __libc_malloc (size_t bytes) { mstate ar_ptr; void *victim; //把全局变量__malloc_h 阅读全文
posted @ 2020-06-29 11:09 Rookle 阅读(573) 评论(0) 推荐(0) 编辑
摘要: house_of_storm 漏洞危害 House_of_storm 可以在任意地址写出chunk地址,进而把这个地址的高位当作size,可以进行任意地址分配chunk,也就是可以造成任意地址写的后果,危害十分之大。 House_of_storm 虽然危害之大,但是其条件也是非常的苛刻。 漏洞利用条 阅读全文
posted @ 2020-06-16 12:45 Rookle 阅读(1755) 评论(1) 推荐(0) 编辑
摘要: malloc 函数详解 本篇主要是参考了glibc 2.23的源码 首先我们来看看malloc函数的执行流程。 strong_alias (__libc_malloc, __malloc) strong_alias (__libc_malloc, malloc) 定义了malloc的是__libc_ 阅读全文
posted @ 2020-06-01 19:40 Rookle 阅读(598) 评论(0) 推荐(1) 编辑
摘要: #Fastbin attack 本文参考了ctf-wiki 和glibc 要了解fastbin attack,我们先要了解fastbin的机制。由于libc2.26后加入了tcache机制,我们这里就只分析glibc 2.23。 下面的代码选自glibc 2.23 (有删除) static void 阅读全文
posted @ 2020-05-23 23:17 Rookle 阅读(1879) 评论(0) 推荐(2) 编辑
摘要: Unlink 本文参考了CTF wiki 和glibc 源码 原理: 我们在利用 unlink 所造成的漏洞时,其实就是借助 unlink 操作来达成修改指针的效果。 我们先来简单回顾一下 unlink 的目的与过程,其目的是把一个双向链表中的空闲块拿出来,然后和前后物理相邻的 free chunk 阅读全文
posted @ 2020-05-23 13:43 Rookle 阅读(871) 评论(0) 推荐(0) 编辑
摘要: xman_2019_format(非栈上格式化字符串仅一次利用的爆破) 首先检查一下程序的保护机制 然后用IDA分析一下 存在后门 首先malloc了一片堆空间,读入数据 把刚刚读入的数据当作格式化字符串传递给printf 这题就是考察格式话字符串不在栈上怎么利用,我们的想法就是利用栈上的数据。 首 阅读全文
posted @ 2020-05-20 13:30 Rookle 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 0ctf_2017_babyheap 首先检查一下保护 IDA 分析好的代码如下 首先申请了一块内存地址用来存放结构体数组,地址随机。 堆题常见的几个功能。我们来看看add 这里申请内存用的是calloc 这里没有检查size,size可以为任意值。造成堆溢出。 delete函数free后指针清零 阅读全文
posted @ 2020-05-16 18:57 Rookle 阅读(1029) 评论(0) 推荐(1) 编辑
摘要: 鹏城杯_2018_treasure 首先检查一下保护: IDA分析 我们先来看看settreasure()函数 申请了两个内存空间,并往sea中复制了shellcode 看看这个shellcode,不知道干嘛的 我们再来看看第二个函数 读入一个长度小于等于9的shellcode,和我之前做的铁人三项 阅读全文
posted @ 2020-05-16 16:05 Rookle 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 铁人三项(第五赛区)_2018_seven 先来看看保护 保护全开,IDA分析 首先申请了mmap两个随机地址的空间,一个为rwx,一个为rw 读入的都shellcode长度小于等于7,且这7个字符不能重复。 然后把一个叫initial的东西复制到rwx_page上,再把我们写的shellcode拼 阅读全文
posted @ 2020-05-16 11:35 Rookle 阅读(330) 评论(1) 推荐(0) 编辑