CTF
文章平均质量分 68
奈沙夜影
这个作者很懒,什么都没留下…
展开
-
有趣的Shellcode和栈
学弟问了一个ctf-wiki上pwn入门题的知识点,本身没什么意思题目下载链接 - sniperoj-pwn100-shellcode-x86-64题目简介很明显栈溢出,buf位于栈顶,栈空间为0x10个字节(可以从buf的位置rsp+0rbp-10h看出),所以栈分布为内容偏移bufrsplast_rbprsp+0x10ret_addrrsp+0x...原创 2020-03-26 04:47:28 · 28047 阅读 · 2 评论 -
191018 pwn-HITB_dubai polyfill
Polyfill写作dubai-ctf,然而在阿布扎比举办233风格迥异,被毛子吊锤一百遍啊一百遍第二天主要在看一个wasm的pwn,发现了UAF的漏洞但是由于对heap没了解所以没写利用。队里的pwn手觉得没法用所以没写,最后偷了流量重发爽了一天。赛中修复了题目,但是并没有起效。事后分析了一下确实是那个UAF的洞。题目文件http是一个web演示接口,可以通过html+js+engin...原创 2019-10-18 14:01:49 · 25935 阅读 · 3 评论 -
170506 解密-ssctf签到wp 汇编-数据标号
1625-5 王子昂 总结《2017年5月6日》 【连续第217天总结】A.汇编语言 十六章ssctf签到100%B.同学给我发了ssctf的签到题的题目,看了一眼是解密:(Z2dRQGdRMWZxaDBvaHRqcHRfc3d7Z2ZoZ3MjfQ==)最后两个字符是=,这是base64编码的特征,遂进行解码,得到:ggQ@gQ1fqh0ohtjpt_原创 2017-05-07 00:50:04 · 2414 阅读 · 2 评论 -
170522 逆向-控制语句的汇编和优化
1625-5 王子昂 总结《2017年5月22日》 【连续第233天总结】A.加密与解密 控制语句B.高级语言中用IF-THEN-ELSE、SEITCH-CASE等语句来构成程序的判断流程,不仅条理清楚,并且维护性好然而在汇编代码中则复杂得多,由cmp等指令后面跟着各类跳转指令jz,jnz等构成识别关键跳转是软件解谜的一个重要技能IF-THEN-ELSE将其编译成汇原创 2017-05-23 00:24:31 · 447 阅读 · 0 评论 -
170511 逆向-OD的其他功能
1625-5 王子昂 总结《2017年5月11日》 【连续第222天总结】A. OlleyDbg 100%B. OD支持插件,可以自己扩展需要的功能。默认只能加载32个插件。另外各插件之间可能有冲突,因此最好只保留常用插件,有需要时再开启 Run trace可以把被调试程序执行过的指令保存下来,了解以前发生过的事件。它将地址,寄存器内容,消息等记录到缓冲区中。 Hit原创 2017-05-13 09:03:51 · 628 阅读 · 0 评论 -
170512 逆向-静态分析技术
1625-5 王子昂 总结《2017年5月12日》 【连续第223天总结】A.加密与解密 IDAproB.动态分析技术是把程序加载到内存中然后进行调试静态分析技术则是根据程序进行逆向,获得汇编代码或源代码,然后从程序清单上分析程序流程,了解模块完成的功能高级语音编写的程序有两种形式,一种被编译成机器语言在CPU上执行,如Visual C++\Pascal等。由于机器语言和汇原创 2017-05-13 09:24:21 · 1027 阅读 · 0 评论 -
170514 逆向-IDC脚本一例
1625-5 王子昂 总结《2017年5月14日》 【连续第225天总结】A.加密与解密 IDC脚本的使用100%B.IDC可以用来通过处理代码提取或处理信息一些特殊反汇编任务需要IDC的协助。比如对代码段加密的程序,可以先用IDC先写一段解密的代码,解密后再进行反汇编eg:push ebpmov ebp,espsub esp,8call 40108原创 2017-05-15 11:53:57 · 1275 阅读 · 0 评论 -
170605 逆向-Delphi和VB的理论
1625-5 王子昂 总结《2017年6月5日》 【连续第247天总结】A.Delphi程序和VB程序B.Delphi和C++ Builder除了语言不通,其余几乎都相同Delphi和C++ Builder采用的是VCL(可视化组件库)技术,环境使用一种特殊的资源格式RCDATA。RCDATA中含有Delphi的窗体,所有对窗口设计的信息都包含在内。当一个典型的Delphi原创 2017-06-06 00:44:20 · 1000 阅读 · 0 评论 -
170616 逆向-flag_check
1625-5 王子昂 总结《2017年6月16日》 【连续第257天总结】A.实验吧-check flagB.题目是一个网页:http://ctf5.shiyanbar.com/qwctf/flag-checker.html打开直接弹窗问Flag,F12查看源代码发现输入与一个很长很恐怖的式子进行校验:if (a.length==47&&a[11]-a[5]%a[1]*a[原创 2017-06-17 02:20:36 · 986 阅读 · 0 评论 -
170615 逆向-10000000
1625-5 王子昂 总结《2017年6月15日》 【连续第256天总结】A.实验吧题目-10000000B.先拖入PEiD,显示Unknown和yoda's Protector v1.02查了一下,似乎是PEiD的数据错误导致无壳或是无法识别的壳都显示为这个不管了,先放入OD里运行试试吧成功加载,DOS窗口显示“喵?”嗯……大概是让输入的意思吧?随便输入了123进原创 2017-06-16 23:07:58 · 630 阅读 · 0 评论 -
170611 逆向-gctf的debug的writeup
1625-5 王子昂 总结《2017年6月11日》 【连续第252天总结】A.gctf reverse(1)B.下载到debug.exe后拖入PEiD,发现是C#做的刚好之前在实验吧的练习中学到了C#的逆向方法:使用ILSpy工具进行反编译轻松得到源码,接下来就是分析即可虽然函数名字都显示为乱码了,但是最终还是在一个类中找到了相关的函数最外层函数:// ᜅpriva原创 2017-06-12 13:15:02 · 543 阅读 · 0 评论 -
170629 Pwn-XCTF决赛的Pwn视频分析
1625-5 王子昂 总结《2017年6月29日》 【连续第270天总结】A.XCTF总决赛 PwnB.看二进制指导的时候误打误撞看了一个Pwn的视频writeup,不过技术原理上与逆向相同的,区别只在于Pwn主要对程序的反编译来找到程序的漏洞(如栈溢出、逻辑BUG等)从而获取隐藏的flag,而Reverse是拆解理解程序的功能来获得flag本题比较简单,是通过栈溢出的漏洞;环原创 2017-06-30 17:16:08 · 1160 阅读 · 0 评论 -
170609 逆向-VB的自然编译和伪编译
1625-5 王子昂 总结《2017年6月9日》 【连续第250天总结】A.VB的自然编译和伪编译B.自然编译是VB源代码生成汇编代码并链接的过程。因为是生成汇编代码,因此完全遵照一般的反汇编常规VB中常用的函数有strcmp,strcopy,strmove,vartstne等等在http://www.cnblogs.com/bbdxf/p/3780187.html有整理原创 2017-06-09 18:24:20 · 956 阅读 · 0 评论 -
170702 逆向-IOS(失败)
1625-5 王子昂 总结《2017年7月1日》 【连续第272天总结】A.全国大学生信息安全竞赛-IOSB.下载下来发现是ipa文件,赶紧下个pp助手,拖到自己的古董4S里安装试试--需要Ios9.0以上版本看看自己的7.0默然无语,连比赛的题目都要这么高的等级试试静态反编译吧,拖到IDA里main函数直接显示出来,但是一堆赋值以后是一堆不明所以的函数调用看起来是原创 2017-07-02 00:37:40 · 352 阅读 · 0 评论 -
170623 逆向-暗号
1625-5 王子昂 总结《2017年6月22日》 【连续第263天总结】A.全国大学生信息安全竞赛2016 Reverse GeekerDoll和暗号B.GeekerDoll用记事本打开以后发现文件头显示ELF,这是Linux的可执行文件,可以使用IDA调试、反编译静态调试时由于一些函数的jmp地址储存在寄存器中,因此无法进行于是连接上Linux虚拟机进行动态调试,选择R原创 2017-06-23 04:38:06 · 728 阅读 · 0 评论 -
170704 杂项-信息搜集技巧
1625-5 王子昂 总结《2017年7月3日》 【连续第274天总结】A.MISC-信息搜集技巧B.MISC杂项涉及到的内容全面,需要脑洞和思维,深度不高,是一个锻炼头脑的方向,无论从做题还是提升的角度来说都是可以尝试的类别。公开渠道信息收集、情报侦察目标Web网页、地理位置、相关组织组织结构和人员、个人资料、电话、电子邮件网络配置、安全防护机制的策略和技术细节原创 2017-07-04 00:39:48 · 388 阅读 · 0 评论 -
170623 逆向-maze
1625-5 王子昂 总结《2017年6月23日》 【连续第264天总结】A.ciscn-mazeB.惯例先拖入PEiD,发现是VC++看这个题目明显是走迷宫类型的,先运行一下试试吧用CMD打开,毫无提示直接结束期待显示迷宫的我似乎搞错了什么OTZ这种类型OD就不太好分析了,算法太复杂了直接送入IDA,找到main函数F5,发现先是判断参数存在则继续,否则直接结原创 2017-06-24 03:18:17 · 876 阅读 · 0 评论 -
170714 逆向-溯源
1625-5 王子昂 总结《2017年7月14日》 【连续第285天总结】 A. CISCN suyuan B. 比赛期间用了一晚上才将suyuan逆出来,也验证内存中的结果与我写的脚本相同了。但是最后需要提交的flag是反过来的,当时时间不多了所以没想到,现在再拿过来想想,并不需要算法逆向,只需要把交换顺序记录下来就行了—因为是固定的 suyuan打开发现主要有三个过程:原创 2017-07-15 15:10:59 · 643 阅读 · 2 评论 -
170627 逆向-GeekerDoll
1625-5 王子昂 总结《2017年6月27日》 【连续第268天总结】A.全国大学生安全竞赛之GeekerDollB.之前试了很多方法,IDA中找不到源码,因为是64位的所以OD也跟不了,拖到linux虚拟机中用IDA单步跟,被计时器的消息给报异常中断了,无论怎么走都过不去……最后换了writeup看,发现了之前提到过但是没给连接的github上的haskell的反编译的程原创 2017-06-28 03:29:55 · 1170 阅读 · 0 评论 -
170713 逆向-填数游戏
1625-5 王子昂 总结《2017年7月13日》 【连续第284天总结】 A. CISCN 结合WP再战RE B. 这么久之后完整的wp终于出来了,回过头再做一遍之前的re 首先是最早放出的填数游戏 wp上直接写出了数独题目,然后在网上找到了做数独的地方再输入即可 我当时做的时候是卡在输入的地方,OD动态调的时候只有ASCII为9-12的输入能通过、继续原创 2017-07-15 13:49:29 · 693 阅读 · 0 评论 -
170720 逆向-misc-cctf(1)
1625-5 王子昂 总结《2017年7月20日》 【连续第291天总结】 A. cctf writeup(1) B. Reverse我也不知道哈哈拖入IDA发现是64位的elf文件,直接反编译源码,很简单,看到如下判断语句 if ( (unsigned int)sub_4007BD((__int64)&v5, (__int64)"flag{PbkD7j4X|8Wz;~;z_O1}") )原创 2017-07-21 19:16:04 · 1205 阅读 · 0 评论 -
170721 misc-cctf(2)
1625-5 王子昂 总结《2017年7月21日》 【连续第291天总结】 A. cctf writeup(2) B.MISCMP3 IS GOOD解压zip得到hint.txt和mp3文件 查看hint发现是大量的像素点描述,用Python写一个脚本生成图像: 280x280是由原文本的总行数78400做分解得到的 可以通过这个网址:http://factordb.com/ind原创 2017-07-21 19:53:53 · 545 阅读 · 0 评论 -
170718 pwn-pwn0
1625-5 王子昂 总结《2017年7月18日》 【连续第289天总结】 A. pwn入门 B. pwn0: 用binwalk查看一下,发现是32位ELF文件,则回到物理机中用IDA查看 首先当然从main函数入手: 可以看到前面都是申请内存,输出提示,然后就进入了foo函数,那么接着查看: gets得到输入,重复输出以后校验a1,a1是参数,来自于main函数中赋值的30原创 2017-07-19 11:55:38 · 517 阅读 · 0 评论 -
170719 pwn-pwn2
1625-5 王子昂 总结《2017年7月19日》 【连续第290天总结】 A. pwn入门 B. pwn2 惯例用binwalk查看pwn2,发现是32位ELF文件,拖入IDA中查看,发现这次直接就是foo函数: 可以看到,buf的长度为0x1C,(即与bp的差) 也就是说,栈的形式为: buf-bp-ret 这次程序中没有getFlag函数,因此无法通过覆盖ret的方式来执原创 2017-07-20 00:04:24 · 442 阅读 · 0 评论 -
170818 逆向-南邮CTF(WxyVM2)
1625-5 王子昂 总结《2017年8月18日》 【连续第320天总结】 A. 南邮CTF-WxyVM2 B. 上次没做完的正巧在52破解论坛上看到有人发问了,就摸过来再做做看 跟WxyVM1比较像,不过感觉这题相比VM来说更像花指令~ 首先看源码分析,先验证长度为25,然后进行了一大片的加减异或操作,最后与内存中的一个字符串进行比较 上次乍一看大片的加减异或操作不好处理,也没想到原创 2017-08-18 13:31:07 · 1804 阅读 · 0 评论 -
170707 逆向-南邮CTF逆向(WxyVM1)
1625-5 王子昂 总结《2017年7月7日》 【连续第278天总结】 A. 南邮CTF逆向(4) B. 4: 记事本打开发现文件头是ELF,拖入IDA进行反编译,发现只有几个函数 查看main函数,发现输入以后调用sub_4005B6()函数,然后判断长度是否为24和字符串0x601060比较 再进一步看4005B6,发现是按照0x6010C0的14原创 2017-07-08 12:56:48 · 2221 阅读 · 4 评论 -
170708 逆向-南邮CTF逆向(maze)
1625-5 王子昂 总结《2017年7月8日》 【连续第279天总结】 A. 南邮CTF逆向(5、6) B. 5: 又是maze,拖到IDA分析后发现主要内容就在main中:if ( strlen(&input) != 24 || strncmp(&input, "nctf{", 5uLL) || *(&byte_6010BF + 24) != 125原创 2017-07-08 19:42:50 · 3298 阅读 · 0 评论 -
170914 逆向-问鼎杯题库(Reverse100)
1625-5 王子昂 总结《2017年9月14日》 【连续第347天总结】 A. 问鼎杯题库-逆向 B.找flag, 么么哒int __cdecl main(int argc, const char **argv, const char **envp){ signed int i; // edi@1 char *v4; // ecx@3 char v5; // al@4 c原创 2017-09-14 23:43:11 · 1429 阅读 · 0 评论 -
170913 逆向-问鼎杯题库(找flag)
1625-5 王子昂 总结《2017年9月13日》 【连续第346天总结】 A. 问鼎杯题库-逆向 B.找flag运行后是一个单纯的文本输入框和灰色的GetFlag按钮 拖入IDA反编译,没有main函数,只有start函数 start里没看到什么可以继续往下的内容,直接搜索字符串: 一眼看到flag,兴奋地提交 错误OTZ 那看来程序中还有对flag的处理,双击追到内存然后按原创 2017-09-14 00:10:22 · 4707 阅读 · 2 评论 -
170915 逆向-问鼎杯题库(小磊生病了)
1625-5 王子昂 总结《2017年9月15日》 【连续第348天总结】 A. 问鼎杯题库-逆向 B.小磊生病了题目:小磊生病了,医生检查出小磊体内有两种有害病菌B和C是引发的关键,同时也找到的消灭病菌的有益菌A ,现在要你帮助A战胜B和C,治好小磊,小磊会告诉你flag是什么。直接运行会显示Andy,Bob,Carl三种菌的数量 观察代码结构可以发现最后flag的生成处: 很明显原创 2017-09-15 20:31:56 · 883 阅读 · 0 评论 -
170916 逆向-WHCTF(BabyRe/CrackMe)
1625-5 王子昂 总结《2017年9月16日》 【连续第349天总结】 A. XCTF-Reverse B.CRACKME无壳,C++ 打开是一个简单的输入框和注册按钮 点击注册按钮会弹框“哎,注册码错了,你得换个新的哟!”IDA没有main函数,看起来是MFC写的 查找字符串、断GetDlgText等API都没有结果 说明字符串都被加密过了IDA逐个函数查找,发现有两个函数调用了原创 2017-09-16 18:48:27 · 3676 阅读 · 3 评论 -
170917 逆向-WHCTF(BabyHack)
1625-5 王子昂 总结《2017年9月17日》 【连续第350天总结】 A. XCTF-Reverse B.EasyHook刚开始看这个名字还以为要注入DLL啥的呢(:з」∠)忐忑不安地打开发现结构挺简单:int __cdecl main(int argc, const char **argv, const char **envp){ int result; // eax@2原创 2017-09-17 23:49:22 · 781 阅读 · 0 评论 -
170918 逆向-jeb2动态调试(ciscn-crack.apk)
1625-5 王子昂 总结《2017年9月18日》 【连续第351天总结】 A. jeb2动态调试Android B. 之前在国赛的时候有一个APKCRACK,当时逆的过程中发现是调用了一个jni方法,so逆出来发现是很复杂的多行处理,最后返回到DEX中的 由于不怎么熟悉so和jni,遂放弃后来几天看到了WriteUp: 可以看到,程序在取得了用户输入的字符串后,会调用wick.sho原创 2017-09-19 01:25:29 · 9778 阅读 · 3 评论 -
170913 逆向-问鼎杯题库(dice game)
1625-5 王子昂 总结《2017年9月12日》 【连续第345天总结】 A. 问鼎杯题库-逆向两题 B.Beat our dice game and get the flagC++写的,无壳 运行提示要求掷五次骰子,需要结果为3-1-3-3-7 很明显,是正常运行下不可能出现的结果除了Enter外不接受输出,观察IDA 发现进行了大量处理,但没有字符串的显示,说明这里要不是混淆要原创 2017-09-13 00:23:06 · 1061 阅读 · 0 评论 -
170920 逆向-CTF练习平台(RE-love)
1625-5 王子昂 总结《2017年9月20日》 【连续第353天总结】 A. CTF练习平台-RE B.love偶然看到这个平台,找了下RE,只有四题 看起来都很简单 粗略观察了一下Solves数,前三题都高达数百,最后一题却只有五个解决 嗯……有挑战性!做了!下下来先查壳,果然没有 拖入IDA 没有找到main函数,start里也没有东西Shift+f12查看字符串,发现了”pl原创 2017-09-21 00:39:30 · 3113 阅读 · 0 评论 -
170921 逆向-成信CTF平台(ReverseMe&CLAZZ)
1625-5 王子昂 总结《2017年9月21日》 【连续第354天总结】 A. Syclover成信CTF练习平台-RE B.ReverseMe打开是一个elf文件,运行报段错误 通过gdb调试发现错误出现在sub_400646的puts函数处拖入IDA反编译:__int64 __fastcall main(int a1, char **a2, char **a3){ __int6原创 2017-09-22 00:46:02 · 2418 阅读 · 0 评论 -
171008 逆向-实验吧ctf(300re-bin)
1625-5 王子昂 总结《2017年10月8日》 【连续第373天总结】 A. 实验吧ctf-RE B. bin大概浏览了几个,感觉都很简单……算法都很短,不绕,也没壳,稍微花点时间就能搞定的样子 于是就选了分数最高的300Re看看,结果除了是64位ELF对调试有点麻烦以外静态分析非常简单……比赛质量堪忧啊(:з」∠) 拖入64位IDA反编译,找到main函数分析 结构很明显,先循环生原创 2017-10-10 00:55:23 · 1234 阅读 · 0 评论 -
171009 逆向-实验吧ctf(250re-apk)
1625-5 王子昂 总结《2017年10月9日》 【连续第374天总结】 A. 实验吧ctf-re B. android这个题目的分数并不高,但是由于安卓版本问题真是问题频发…… 直接打开程序发现是空荡荡的页面 对APK反编译,发现设置了一个Send_to_Activity广播接收函数 当收到”msg”:”OpenSesame”的广播时设置CTFRevceiver 那我们就用adb原创 2017-10-10 02:40:11 · 1223 阅读 · 0 评论 -
171022 逆向-Xp0intCTF(Re)
1625-5 王子昂 总结《2017年10月22日》 【连续第387天总结】 A. Xpoint-暨南大学校赛 B. 今天有点晚了╮(╯_╰)╭推迟到零点结束,最后正好赶着把盲水印给搞定了 明天还有课,今天就先把Re的WP写好吧~明天有空的话写下misc的~ 这次做题都忘了先查壳,还好一个壳都没有2333倍exe直接拖入IDA反编译 找不到入口点和关键函数,直接Shift+f12查找原创 2017-10-23 00:55:25 · 1048 阅读 · 0 评论 -
171021 逆向-Xp0intCTF(re300)
1625-5 王子昂 总结《2017年10月21日》 【连续第386天总结】 A. Xpoint-暨南大学校赛 B.re300排在最上面的就是分数最高的题目,我们就先搞它吧~ 直接拖入IDA反编译,找到main函数: 虽然字符串都被重新命名了有点困难, 不过大概还是能看清楚的~ v5是input的缓冲区,送入sub_4012EF进行运算,返回值为1时就正确了 那么我们跟进去看看原创 2017-10-22 01:31:07 · 891 阅读 · 0 评论