摘要: starctf_2019_babyshell 有时shellcode受限,最好的方法一般就是勉强的凑出sys read系统调用来注入shellcode主体。 我们拿starctf_2019_babyshell这道题来讲一讲,首先检查一下保护。 IDA分析 首先读入shellcode,然后检查shel 阅读全文
posted @ 2020-05-15 16:53 Rookle 阅读(1020) 评论(0) 推荐(1) 编辑
摘要: ret2dl64 ret2dl64 与ret2dl32不同,ret2dl64需要知道libc。 检查保护: IDA看一看 read_got 被置为0,强制你使用ret2dlresolve。 我们先伪造link_map,然后让程序去执行我们伪造的link_map,执行system('/bin/sh') 阅读全文
posted @ 2020-05-14 13:46 Rookle 阅读(333) 评论(0) 推荐(0) 编辑
摘要: ret2dl32 首先检查一下保护: IDA分析一下 程序很简单就是,往bss段上的buf读入0x400个数据,然后拷贝到栈上。read_got还被置为0,这一看就是要逼着你使用ret2dlresolve。 首先我们程序劫持到bss段 上面的代码使得我们把控制流劫持到base_stage的位置。ba 阅读全文
posted @ 2020-05-14 13:29 Rookle 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 3x17 文章主要是参考了https://xuanxuanblingbling.github.io/ctf/pwn/2019/09/06/317/ 首先我们检查一下开启的保护 运行一下,先让输入addr后输入data,感觉像是任意地址写,但是没有没有地址泄漏的功能。 放入IDA分析,程序是个静态链接 阅读全文
posted @ 2020-05-13 20:08 Rookle 阅读(711) 评论(1) 推荐(1) 编辑
摘要: silver_bullet 检查保护 程序很简单也就这几个功能。 重点关注一下这三个主要函数。 Create函数,首先输入一个小于等于0x30长度的字符串,然后在s[0x30]的地方存入输入字符串的长度。 Pwoer_up函数,首先判断之前输入的字符串长度是否小于0x2F,如果小于,则可以对字符串进 阅读全文
posted @ 2020-05-13 20:07 Rookle 阅读(288) 评论(0) 推荐(0) 编辑
摘要: hacknote 先来看看CTFwiki对fast bin 的介绍 Fast Bin 大多数程序经常会申请以及释放一些比较小的内存块。如果将一些较小的 chunk 释放之后发现存在与之相邻的空闲的 chunk 并将它们进行合并,那么当下一次再次申请相应大小的 chunk 时,就需要对 chunk 进 阅读全文
posted @ 2020-05-13 20:06 Rookle 阅读(228) 评论(0) 推荐(0) 编辑
摘要: applestore 首先检查一下保护 运行后可以看到是一个典型的堆管理的题目。 放入IDA中分析 main函数很简单,主要的功能在handler中。我们接着分析此函数。 list就是展示一下iPhone,ipad等的价格。 add函数功能是把商品加入购物车 其中先是create,再insert,有 阅读全文
posted @ 2020-05-13 20:05 Rookle 阅读(244) 评论(0) 推荐(0) 编辑
摘要: dubblesort 首先看一下保护 保护全开。。。。 运行一下,我们发现有一串奇怪字符串。该程序的主要功能是数组排序。 放到IDA里静态分析。我们看到刚刚奇怪的字符串是在栈上。而且我们可以输入一个很大的数字,然后把unsorted_array数组塞满,这样就可以溢出覆盖ret了。 这里有2个问题 阅读全文
posted @ 2020-05-13 20:04 Rookle 阅读(480) 评论(1) 推荐(0) 编辑
摘要: calc 首先先检查保护 可以看到正如程序名字一样是一个计算器的程序。 IDA静态分析代码 main函数主要调用了calc函数 而calc中parse_expr这个函数比较重要 我们用过1+2 3 4为例子,计算的过程大约是如下: 其中I为for循环的i,V为数字的开始 看懂了上面的大致流程,大概就 阅读全文
posted @ 2020-05-13 20:02 Rookle 阅读(461) 评论(0) 推荐(0) 编辑
摘要: Start 首先,检查一下程序的保护机制 什么保护都没开,而且是32位程序,一看就是简单题目。😌 我们运行一下 程序的执行流程也特别简单,打印一串字符串,让你输入然后就退出了。 然后,我们用IDA分析一下 用了两个系统调用,通过下面的网站查查linux系统调用表 http://syscalls.k 阅读全文
posted @ 2020-05-13 20:00 Rookle 阅读(771) 评论(1) 推荐(1) 编辑