ctf
ctf解题技巧,ctf wp
breezeO_o
网络安全
展开
-
[re]复杂VM逆向:2020网鼎杯玄武组re baby_vm wp
[re]复杂VM逆向:2020网鼎杯玄武组re baby_vm wp文章目录[re]复杂VM逆向:2020网鼎杯玄武组re baby_vm wp题目分析虚拟机分析解题可以明显感觉到玄武组的题目难于其他三个组。这么复杂的一道题也好意思叫baby???题目分析拿到题目发现是一个64位windows程序,结合题目名称,怀疑是虚拟机逆向。直接逆向分析:没有加壳,把所有函数的符号都去了,但字符串没有混淆,可以根据“Tell Me Your Flag:”字符串找到函数的主逻辑:向下分析可以的到fla原创 2020-05-27 09:57:59 · 11479 阅读 · 2 评论 -
[mobile]真机+IDA调试apk中的so
[mobile]真机+IDA调试apk中的so很多mobile题目需要逆向分析apk中的so(尤其我们公司的比赛),所以这里简单总结一下调试apk中的so的方法。材料:adb调试工具、root的真机一台(模拟器无法调试so)、IDA文章目录[mobile]真机+IDA调试apk中的so下载&安装adb准备调试开始调试补充:以调试模式启动下载&安装adbadb是Android platform tools中的工具,可以去Androiddevtools下载:https://www.an原创 2020-05-23 12:40:22 · 11887 阅读 · 0 评论 -
[re]go语言逆向:2020网鼎杯朱雀组re what wp
[re]go语言逆向:2020网鼎杯朱雀组re what wp题目分析那道题目,是一个linux的逆向,直接输入key:然后逆向分析一下,是一个go语言开发的程序,看着比较复杂,但是字符串什么的都没有混淆,可以通过“please input the key:”字符串找到入口:然后还可以看到一个类似base64串一样的字符串,感觉像是校验用的,继续往下看找到输入,和输入后的校验:可以看到输入校验之后,错误会直接提示error,成功会有一大波操作,简单看了下感觉应该是对开头的flag字符串进行解原创 2020-05-18 16:21:42 · 10435 阅读 · 0 评论 -
[re]反推树结构:2020网鼎杯朱雀组re tree wp
[re]反推树结构:2020网鼎杯朱雀组re tree wp这道题感觉出题人放了一波水,隐藏了一个输出树的函数,导致发现了这个函数之后难度大幅降低,当然没有这个函数也可以解,但麻烦了很多!接下来分析题目:题目分析一道比较标准的逆向题,开局就输flag,一点不多BB:逆向分析一下,主逻辑比较简单:init里面是初始化,先把a-z26个字母放在一个结构体数组里:然后用这个结构体数组生成了一个树结构:具体生成算法不用太仔细研究,我当时也是看了好久,后来发现跟这个并没关系,后面介绍。然后输入原创 2020-05-18 16:00:23 · 9872 阅读 · 2 评论 -
[pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp
[pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp文章目录[pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp题目分析利用方法1利用方法2还是一个比较有意思的个格式化串题目,限制了输入长度,需要使用星号的格式化串完成利用。题目分析题目名字:量子纠缠,实际没啥关系,强行起名,首先查看安全策略:没有PIE,程序的逻辑就让你输入first name和last name,然后就输出了:然后逆向分析题目:没原创 2020-05-16 11:59:39 · 11700 阅读 · 4 评论 -
[re]简单逆向:2020网鼎杯白虎组re 恶龙 wp
[re]简单逆向:2020网鼎杯白虎组re 恶龙 wp题目分析题目描述:这是一个与史莱姆和恶龙战斗的故事,请战胜三头恶龙,取得flag。张三长老说,试图patch这个程序的人会得到错误的flag…得到题目之后,发现是一个linux的逆向。查看一下程序功能:结合之前的描述,感觉是一个游戏题目,连续战胜三次boss,便是成功,正常套路,都要打小怪升级,然后买装备然后打boss,但,我选择1. 和史莱姆战斗,然后死了…逆向分析程序:程序主体就是,只要boss还存在(一共三个),那么就会指向dro原创 2020-05-16 11:51:43 · 11722 阅读 · 4 评论 -
[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp
[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp文章目录[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp分析log文件格式分析协议组成UDS网络传输层UDS统一诊断服务协议分析文件提取文件逆向flag计算参考链接:teslaaaaa这道题是青龙组被做出来的题目中做出来人数最少的,直到比赛快结束才有第一个人做出来,怎么说,难并不是因为脑洞大,讲道理这道题是一道好题,我当时也是肝了一天没做出来,我倒是把文件提取出来了,奈何比赛时间已经接近尾原创 2020-05-16 11:47:31 · 12262 阅读 · 1 评论 -
[re]硬猜flag:2020网鼎杯青龙组re_joker_wp
[re]硬猜flag:2020网鼎杯青龙组re_joker_wp2020网鼎杯青龙组的一道逆向题joker,这道题其实并不是很难,但难在考心态和脑洞,获取flag的最后一步居然是硬猜,我吐了啊,而且没法爆破,因为这道题你拿到flag了,在程序中输入也不会告诉你flag正确。题目分析题目是一个32位windows程序:逆向分析一下,main函数直接f5是不行的,堆栈不平衡。但这里无需去纠正他,因为main函数的逻辑还算简单:直接可以看出flag字符串长度是0x18也就是24然后对输入的f原创 2020-05-15 16:08:09 · 9831 阅读 · 0 评论 -
[re]符号执行一把梭:2020网鼎杯青龙组re_signal_wp
[re]符号执行一把梭:2020网鼎杯青龙组re_signal_wp这道题是2020网鼎杯青龙组的一道逆向提signal,一道虚拟机逆向题目,题目本身不难,可以直接分析也可以符号执行秒掉。题目分析正常windows逆向,开局直接输flag,也不多bibi:逆向分析程序:程序开始将全局变量区的opcode作为参数给vm_operad函数,看名字也能看出是一个虚拟机分析的题目,先把opcode提取出来:\x0A \x04 \x10 \x08 \x03 \x05 \x01 \x04 \x20 \x原创 2020-05-15 12:17:38 · 10717 阅读 · 3 评论 -
[pwn]VMpwn:2020网鼎杯青龙组pwn boom2 wp
2020网鼎杯青龙组pwn boom2 wp比赛的时候被特斯拉那道隐写恶心到了,导致一直在肝那道题,也没看pwn,赛后看了组内大佬的wp,感觉这道pwn也不是很难,于是自己又做了一遍。这道题总共80+队伍做出来,反而更难的pwn1 boom1却有200+队伍做出来,不得不说py真的很严重,赛后我看群里说比赛的时候好像有一份pwn1的exp在全网流通,有点小恶,但也无所谓,名词不重要,自己学到东西才是最重要的。题目分析首先检查一下安全策略:安全策略全开,然后简单看一下逻辑:执行之后让你输入co原创 2020-05-12 16:24:51 · 12066 阅读 · 2 评论 -
[re]无需脱壳dump内存来静态分析
[re]无需脱壳dump内存来静态分析文章目录[re]无需脱壳dump内存来静态分析静态分析动态调试dump内存继续静态分析分析补充ctf逆向中遇到加壳的程序,其实大部分情况下无需脱壳,因为我们的目的是解题的到flag,只需分析出题目的算法,而不必要将壳完整的脱下来。所以我们可以采取动态调试等壳程序运行结束之后直接将解密后的源代码从内存中dump下来静态分析的方法来解题,下面以一道题目进行说明...原创 2020-03-04 01:50:11 · 10795 阅读 · 0 评论 -
[mobile]patch apk后重打包重签名
patch apk后重打包重签名有很多时候想要逆向分析一个apk文件,单纯的静态分析不能解决我们的需求,我们需要patch一下apk的库文件(比如patch反调试),或是修改java源码等,我们希望修改之后重新打包成apk,然后装入实机调试,那么就需要将其重打包重签名。文章目录patch apk后重打包重签名工具java环境apk toolsAndroid Studio解包patch文件重打包...原创 2020-03-01 11:15:51 · 12154 阅读 · 0 评论 -
[pwn]堆:realloc_hook控制栈结构达成onegadget
[pwn]realloc_hook控制栈结构达成onegadget文章目录[pwn]realloc_hook控制栈结构达成onegadgetchunk extend通过realloc调整栈帧来满足onegadgeteasy_pwn wpchunk extendchunk extend是一种限制比较少的堆利用方式,通常通过off by one或off by null来利用。chuank ex...原创 2019-12-31 22:04:26 · 11455 阅读 · 7 评论 -
[pwn]遇到不会的题不要急要一步步分析(和请教大佬)
遇到不会的题要一步步分析(和请教大佬)文章目录遇到不会的题要一步步分析(和请教大佬)拿到题目,没见过的船新题型传统方法简单分析并不能解决询问大腿github找到部分源码思路突破新工具完成逻辑交互程序逻辑利用思路拿到题目,没见过的船新题型公司内部比赛试题一拿到题目,发现压缩包并不简单,怎么还有个奇怪的东西混进来了。于是解压之后直接打开这个奇怪的东西,发现并看不懂:什么鬼东西花里胡哨的,先...原创 2019-12-31 21:53:25 · 9756 阅读 · 1 评论 -
[pwn]堆:fastbin attack详解
[pwn]fastbin attack文章目录[pwn]fastbin attackfastbin attack原理double freeuse after freechunk extend需要注意的点:0ctf:babyheapfastbin attack原理fastbin attack是利用fastbin分配原理的漏洞,利用要求是我们能够修改“已释放”堆块。通常情况下与double fr...原创 2019-12-31 21:12:56 · 15287 阅读 · 3 评论 -
[pwn]堆:堆风水与堆排布-babyfengshui
[pwn]堆:堆风水与堆排布-babyfengshui所谓堆风水也叫作堆排布,其实说严格了并不是一种漏洞的利用方法,而是一种灵活布置堆块来控制堆布局的方法,在一些一些其他漏洞的利用中起到效果。通过一道经典的题目,由清华蓝莲花战队出的babyfengshui来看一下:babyfengshui查看安全策略没开PIE,但值得一提的是这是一个32位的程序,32位的堆是4字节对齐的。查看程序逻辑...原创 2019-12-31 20:59:40 · 12157 阅读 · 1 评论 -
[pwn]ROP:绕过ASLR&NX
# [详细] ROP:绕过ASLR&NX这次使用的程序是Defcon - 2015初赛题目,r0pbaby,也是一道经典的pwn题目了。NX策略是指在栈中的代码不会被执行,ASLR是使共享库的装载位置随机化不可预测。信息搜集首先查看是64位还是32位文件:然后查看安全策略:可见开启了NX和PIE,PIE也就是ASLR。然后在IDA中查看伪代码,无需详细阅读,直接找溢出函数即...原创 2019-05-27 15:54:21 · 10468 阅读 · 0 评论 -
[pwn]ROP:使用通用gadget
[详细] ROP:使用通用gadget这次试用的是LCTF2016的试题pwn100,参考i春秋上的这篇文章 在这里详细讲解如何利用通用gadget构造一个复杂的ROP链。通用gadget介绍介绍一段通用的gadget,通常出现在64elf位文件的__libc_csu_init函数中(截图来自本程序pwn100,很多64位二进制文件都有):这其中有三段gadget,第一段是pop ...原创 2019-07-06 15:45:53 · 14457 阅读 · 0 评论 -
[pwn]ROP:通过ESP和EBP间接控制EIP
[详细]ROP:通过ESP和EBP间接控制EIP这次试用的是Alictf2016的试题vss,参考[i春秋上的PWN入门4](<https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=42534&highlight=pwn>) ,不得不说Sp4ce大佬选的例子都非常好,文章也非常好。我在这里算是详细讲解如何利用ESP...原创 2019-07-10 02:34:37 · 8952 阅读 · 0 评论 -
[pwn]ROP:三道题讲解花式绕过Canary栈保护
文章目录绕过Canary栈保护Canary栈保护babystack writeupMary_Morton writeup绕过Canary栈保护Canary栈保护Canary是一种栈保护手段,通常通过在栈中插入cookie信息(一般在ebp上方),在函数返回的时候检查cookie是否改变,如果改变则认为栈结构被破坏,则调用一个函数强制停止程序。当开启Canary保护的时候不能通过传统的栈溢出直...原创 2019-08-26 21:52:08 · 10955 阅读 · 0 评论 -
[pwn]ROP:信息泄露获取libc版本和地址
文章目录通过信息泄露获取libc版本和地址DynELF模块介绍pwn200 writeuppwn100 writeup通过信息泄露获取libc版本和地址有一些pwn题目中我们可以找到很明显的溢出,但程序中并没有system函数,也没有给出libc版本。但我们可以通过反复的溢出打印一些内存的值来在内存中搜索system的地址,这里主要使用的工具是pwntools中的D以内ELF模块。DynEL...原创 2019-08-26 22:00:15 · 12906 阅读 · 0 评论 -
[pwn]逻辑复杂利用简单
逻辑复杂利用简单的pwn遇到了一道坑有很多的题,记录一下。题目:forgot,题目地址:forgot首先查看安全策略不是很高,就一个NX,看看代码逻辑吧,直觉告诉我并不简单:一张图放不下,其实有溢出,但我由于主函数太长了还一堆小函数,没注意(吓到了)。中间switch之中的一堆小函数都是判断是不是字母、数字、下划线之类的,比如:而且最后有个调用:调用的值又和v14有关,导致...原创 2019-08-26 22:04:34 · 7576 阅读 · 0 评论 -
[pwn]通过覆盖seed值劫持rand()函数
文章目录通过覆盖seed值劫持rand()函数guess_num writedice_game writeup通过覆盖seed值劫持rand()函数遇到了一种提醒,不是通过劫持eip然后getshell,而是程序中给了利用函数,但需要满足一定条件,比如连续猜对N个随机数。这里使用两个例题:guess_num write题目地址:guess_num查看安全策略:全开…然后查看反汇编:...原创 2019-08-26 22:09:08 · 8645 阅读 · 0 评论 -
[pwn]关于printf输出时机的坑
关于printf输出时机的坑今天遇到了一个特别有意思的题,本来很简单的利用,但一直没有算出来,最后发现是一个很简单的却很细节的问题。welpwn详细writeup题目地址:welpwn首先查看一下安全策略:保护很少,然后看一下代码逻辑:read读入了0x400个字节,一般这么长必有溢出,注意echo并不是系统函数,查看echo逻辑:s2只有16个字节,但却复制了一个0x400字...原创 2019-08-26 22:13:28 · 8347 阅读 · 0 评论 -
[pwn]ROP:灵活运用syscall
灵活运用syscall遇到了一个程序并不复杂,但利用却很麻烦的题目,Recho题目详细writeup,题目地址:Recho按照惯例,查看安全策略:基本没啥安全策略,然后查看程序逻辑,程序很短,就一个main:很容易就找到溢出点,大体逻辑就是,先输入一个数,小于15会被认为是16,然后再输入一串字符串,程序会将前x(刚输入的数字)个字符拷贝到buf中,这里没有上限,所以存在溢出。但问题是...原创 2019-08-26 22:18:06 · 9958 阅读 · 0 评论 -
[pwn]堆:unlink绕过,0CTF2015 freenote详解
[pwn]堆:2free=unlink绕过,0CTF2015 freenote题目地址,提取码:f0xd拿到题目,国际惯例,首先查看安全策略;没有开启PIE和full partial。然后查看程序逻辑:函数的名字已经被我改过了,比较常见的堆溢出漏洞的菜单和功能,值得一提的是init__函数(原来名字是啥我忘了):申请了一大块地方,用来做记事本的索引。这个结构体在后面根据上下文可以...原创 2019-09-02 23:38:23 · 9329 阅读 · 0 评论 -
[pwn]堆:Use After Free
Use After Free:time_formatter writeupUAF漏洞就是Use After Free,再释放后继续使用,Use After Free会引发各种奇怪的现象,根据场景的不同并没有一种统一的利用方式。下面看题目:time_formatter日常惯例,先查看安全策略:开启了canary、NX、ASLR,然后查看一下程序逻辑:很常见的堆菜单,下面查看一下各种功能:...原创 2019-09-06 23:35:09 · 8608 阅读 · 0 评论 -
[pwn]堆:熟练掌握double free+unlink
double free+unlink 4-ReeHY-main-100 writeup一道经典的堆溢出题目4-ReeHY-main-100题目分析江湖规矩,先看安全策略:还可以,没有full relro说明可以修改got表。然后看看程序的逻辑:一看到菜单基本就是堆得题目没跑了,然后IDA查看反汇编代码:create函数(我改名后):整个create函数充斥着符号溢出的味道…然...原创 2019-09-06 23:53:17 · 9039 阅读 · 0 评论 -
[pwn]格式化字符串:0ctf 2015 login writeup
文章目录格式化字符串:0ctf 2015 login writeup格式化字符串漏洞题目分析利用思路开始利用格式化字符串:0ctf 2015 login writeup格式化字符串漏洞格式化字符串漏洞是不正确的使用printf函数导致的,为了简便使用printf(s),而s是用户可控的字符串,就会导致任意地址读和任意地址写漏洞。**归根结底,由于printf的参数个数是不确定的,而函数本身根...原创 2019-09-26 15:52:37 · 9329 阅读 · 0 评论 -
[pwn]ROP:绕过NX策略
ROP学习实例:绕过NX策略我们使用的例子是这篇博客中的第一个例子:https://bbs.ichunqiu.com/thread-42530-1-1.html?from=sec,在i386环境中运行,很简单的一道题,这里提供一种更加简单的解法,只需细致观察,可以免除一些不必要的计算。NX策略是使栈区域的代码无法执行,但我们可以使用ROP绕过。ROP技术就是不需要自己手动写shellcode...原创 2019-05-03 09:55:54 · 11061 阅读 · 0 评论