摘要: 3x17 文章主要是参考了https://xuanxuanblingbling.github.io/ctf/pwn/2019/09/06/317/ 首先我们检查一下开启的保护 运行一下,先让输入addr后输入data,感觉像是任意地址写,但是没有没有地址泄漏的功能。 放入IDA分析,程序是个静态链接 阅读全文
posted @ 2020-05-13 20:08 Rookle 阅读(743) 评论(1) 推荐(1) 编辑
摘要: silver_bullet 检查保护 程序很简单也就这几个功能。 重点关注一下这三个主要函数。 Create函数,首先输入一个小于等于0x30长度的字符串,然后在s[0x30]的地方存入输入字符串的长度。 Pwoer_up函数,首先判断之前输入的字符串长度是否小于0x2F,如果小于,则可以对字符串进 阅读全文
posted @ 2020-05-13 20:07 Rookle 阅读(301) 评论(0) 推荐(0) 编辑
摘要: hacknote 先来看看CTFwiki对fast bin 的介绍 Fast Bin 大多数程序经常会申请以及释放一些比较小的内存块。如果将一些较小的 chunk 释放之后发现存在与之相邻的空闲的 chunk 并将它们进行合并,那么当下一次再次申请相应大小的 chunk 时,就需要对 chunk 进 阅读全文
posted @ 2020-05-13 20:06 Rookle 阅读(231) 评论(0) 推荐(0) 编辑
摘要: applestore 首先检查一下保护 运行后可以看到是一个典型的堆管理的题目。 放入IDA中分析 main函数很简单,主要的功能在handler中。我们接着分析此函数。 list就是展示一下iPhone,ipad等的价格。 add函数功能是把商品加入购物车 其中先是create,再insert,有 阅读全文
posted @ 2020-05-13 20:05 Rookle 阅读(248) 评论(0) 推荐(0) 编辑
摘要: dubblesort 首先看一下保护 保护全开。。。。 运行一下,我们发现有一串奇怪字符串。该程序的主要功能是数组排序。 放到IDA里静态分析。我们看到刚刚奇怪的字符串是在栈上。而且我们可以输入一个很大的数字,然后把unsorted_array数组塞满,这样就可以溢出覆盖ret了。 这里有2个问题 阅读全文
posted @ 2020-05-13 20:04 Rookle 阅读(528) 评论(1) 推荐(0) 编辑
摘要: calc 首先先检查保护 可以看到正如程序名字一样是一个计算器的程序。 IDA静态分析代码 main函数主要调用了calc函数 而calc中parse_expr这个函数比较重要 我们用过1+2 3 4为例子,计算的过程大约是如下: 其中I为for循环的i,V为数字的开始 看懂了上面的大致流程,大概就 阅读全文
posted @ 2020-05-13 20:02 Rookle 阅读(495) 评论(0) 推荐(0) 编辑
摘要: Start 首先,检查一下程序的保护机制 什么保护都没开,而且是32位程序,一看就是简单题目。😌 我们运行一下 程序的执行流程也特别简单,打印一串字符串,让你输入然后就退出了。 然后,我们用IDA分析一下 用了两个系统调用,通过下面的网站查查linux系统调用表 http://syscalls.k 阅读全文
posted @ 2020-05-13 20:00 Rookle 阅读(828) 评论(1) 推荐(1) 编辑
摘要: orw 首先,检查一下程序的保护机制 开启了canary保护,还是个32位的程序,应该是个简单的题🤣丢到ida里静态分析一波。 程序很简单,叫你输入一个shellcode然后再运行你写的shellcode。 不过这道题的难点是这个orw_seccomp函数 prctl函数又是啥玩意儿?Prctl( 阅读全文
posted @ 2020-05-13 19:56 Rookle 阅读(463) 评论(0) 推荐(0) 编辑
摘要: babystack 首先检查一下保护 全保护开启,我们IDA分析一下。 main函数很简单,首先第一个read明显存在漏洞,如果不是以 结尾会存在栈中地址的泄漏。 第一个read我们泄漏了canary和elf的基地址。接下来我们用第二read 泄漏libc地址,控制程序返回main函数 接下来我们就 阅读全文
posted @ 2020-05-13 19:43 Rookle 阅读(326) 评论(0) 推荐(0) 编辑
摘要: No_leak 有这种题,题目很短小,只有一个read函数,没有输出函数,这样的题怎么解呢?当然首先想到的是ret2dl,但是那个有点儿复杂。下面我来介绍一种简单的解法。 代码如下: 先来看看保护: 程序很很简单,就是简单的栈溢出,遇到这种题,我们首选ROP,当然ret2dl也是ROP中的一种。 方 阅读全文
posted @ 2020-05-13 19:10 Rookle 阅读(581) 评论(0) 推荐(0) 编辑