From:Hello CTF:https://hello-ctf.com/HC_envSet/CTFtool/
1、快速开始
在学习CTF前希望您具备一些CS领域的基础知识,这里推荐您先阅读 JANlittle师傅写的CS入门资料 ( 点此跳转 ) 大致具备CS领域的基本技能后再开始CTF的学习。
- 入入入入门(fén)综述:https://xp0int-team.feishu.cn/wiki/wikcnnWbXXGELt1xHkyBhvdQKrh
- CS自学指南:https://csdiy.wiki/
常见问题 Q&A
- Q:什么是 CTF
- A:「CTF Capture The Flag」中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过相发起真实攻击进行技术比拼的方式;其将安全相关的知识点抽象出来并加入到题目中,我们通过对知识点的理解认知,具体地进行实践来攻克题目。
- Q:什么是 Flag
- A:参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
Q:CTF 竞赛模式
A:CTF有个人赛和团队赛,在主流比赛中多为团队赛;
CTF赛制分多种,国内常见的为「 解题模式 Jeopardy 」「 攻防模式 | AWD (Attack With Defense) 」「 静态攻防 AWDP (Attack With Defence Plus) 」一般分为线上线下两个阶段,线上通常采用 解题模式 ,线下通常为 CTF +( 理论 )+ AWD/AWDP 模式,具体看主办方安排。
「 解题模式 Jeopardy 」目前大多数国内外CTF比赛的主流形式,选手自由组队参赛。题目通常在比赛过程中陆续放出。解出一道题目后,提交题目对应的flag即可得分,比赛结束时分高者获胜。
「 攻防模式 | AWD (Attack With Defense) 」通常为现场比赛,多数CTF决赛的比赛形式,选手自由组队参赛。每个队伍都有自己的gamebox,其上运行着一些带有漏洞的服务。参赛战队需要找到漏洞对其他队伍gamebox发起攻击,也需要通过patch服务来加固自己的gamebox。相比于解题模式,时间更短,比赛中更注重临场反应和解题速度,需要能够快速攻击目标主机的权限,考察团队多方面的综合安全能力。
「 静态攻防 AWDP (Attack With Defence Plus) 」解题+加固赛,相比AWD赛制取消了gamebox,主办方会根据出题人设置的脚本判断提交的patch是否有效(攻击则和解题模式类似),参赛队伍无法直接攻击其他队伍。每个回合,参赛队伍都会根据自己攻击和加固成功的题目(以及相应题目的解题队伍数)来得分,以累积得分作为排行依据。
Q:CTF的竞赛方向
A:由于CTF知识面很广,一个人不可能面面俱到,所以选手们通常都会选择一个自己喜欢的方向深入研究,,通常分为五个方向:MISC、CRYPTO、WEB、REVERSE、PWN:
- 「 杂项 MISC 」安全杂项涉及到古典密码学、编码、隐写术、电子取证、数据分析等广度极高的安全手段及利用方法,选手需要确定手段或者方法,反向的去破译取证从而拿到flag,MISC是CTF比赛中广度最高的方向,需要各个方向都有涉猎。 ——嗯?题不知道丢哪?没事丢杂项就好!
- 「 密码学 CRYPTO 」密码学简单讲就古典密码和现代密码,当然大多数古典密码的题目目前都被划分到MISC中,目前的密码学反而更偏向现代密码学,常出现分组密码、流密码和公钥密码体制的考察,对初等数学、基本的数论有一定需求。选手通常被给予一个加密程序,抹去明文之后留下的加密过程和输出,要求选手通过密码体制的弱点来还原flag。 ——听说Oi爷又AK了!
- 「 网络攻防 WEB 」着重于Web应用程序,框架,浏览器以及各类Web服务器的安全问题;挖掘/利用/研究各类Web系漏洞,探究其形成原理、利用方式及修补方案。题目常见的漏洞类型包括注入、XSS、文件包含、代码执行、上传、SSRF等,选手通过漏洞直接或者间接拿到shell或者得到某些关键文件从而得到Flag。 ——汪汪汪
- 「 逆向工程 Reverse Engineering 」研究各类操作系统,编译器,虚拟机的底层架构,以Windows和Linux为平台,学习可执行程序的逆向分析技术,如软件调试与破解,对已经编译完成的可执行文件进行分析,研究程序的行为和算法,然后以此为依据,计算出出题人想隐藏的flag ——逆��
- 「 二进制漏洞利用 Pwn 」Pwn在安全领域是「攻破」的意思。主要研究程序漏洞利用技术,例如栈溢出、堆管理器的漏洞利用和其他高阶技巧;挖掘和分析各类基于编译型语言的漏洞。二进制攻击涉及到栈溢出、堆溢出、格式化字符串漏洞等二进制漏洞,选手需要借助这些漏洞获取计算机权限,从而拿到flag ——PWN!(指声音
- SOMETHING NEW 随着计算机技术的发展,也有一些新的方向如 「 区块链 Blockchain 」「 AI安全 」「 物联网 IoT 」等的加入。这些内容我们会在进阶文档中更新。
- Q:我只是个萌新,为什么他们叫我师傅
- A:CTF圈子中,CTFer们通常以"师傅"相互称呼。
- Q:什么是WriteUp
- A:又称作WP,是记录CTF比赛中解题过程的文章,通常包含题目描述、解题思路、解题过程、源码分析、脚本分析等内容。当然你也可以简单理解为解题报告——题解。
- Q:学习CTF有什么要求么
- A:信息检索能力 和 学习能力 这两者即可。说人话就是,会用搜索引擎,知道怎么检索信息,知道怎么验证信息正确性,知道怎么在垃圾场里面翻有用信息;然后就是拿到信息之后,快速学习,知道怎么运用知识点。至少,别人的解题报告(一般我们称之为WriteUp 简称 WP)你得看得懂,你会看着跟着复现。
其他名词解释
-
一把梭 代指一类解题过程或者方法,一般指将题目中给出的对应的附件 / 代码 / 密文等,直接丢到某个工具或者网站上,就能得到flag的解题方法。
-
套娃 一是指一些题目比如说加密题,嵌套了多层的加密,需要多次解密才能得到flag,即一道题中可能涉及到多个知识点的考察; 二是带有一定贬义意义,通常指出题人只是为了出题而出题,单纯的、一味的、向题目中叠加tricks,导致本来就不新颖的题目还变得更加复杂,使得题目的难度无意义的变高。
从哪开始
如果你看着五个方向思考良久,一下子不太确定自己的方向,这里提供一些小参考,你可以通过下面两个方向先熟悉一下CTF的一些流程,找找——嗯,感觉。
注意入门方向是为了熟悉CTF比赛模式和规则,并不一定决定你最终方向。在熟悉了CTF大致的形式啊、规则啊什么的之后,就可以自由探索自己喜欢的方向了x
网络攻防 WEB
- 在传统的CTF线上比赛中,Web类题目是主要的题型之一。
- 相较于二进制、逆向等类型的题目,参赛者不需掌握系统底层知识;
- 相较于密码学、以及一些杂项问题,不需具特别强的编程能力,故入门较为容易。
杂项 MISC
- MISC具有极大的趣味性;
- MISC的入门难度包含维度很广但都很简单,非常适合用来快速熟悉CTF的比赛模式和规则。
练习平台 & 使用指南
比赛平台
国内目前几大主流平台:(排名不分先后)
NSSCTF NSSCTF | 在线CTF平台 (多功能Xenny。适合一人单刷,也适合团队训练。更详细的可以参考 NSSCTF平台食用指南)
BUUCTF BUUCTF在线评测
CTFshow ctf.show (MISC和Web的入门题单很赞)
攻防世界 https://adworld.xctf.org.cn/home/index
青少年CTF 青少年CTF练习平台
CTFhub CTFHub (技能树确实不错,但是更新慢)
Bugku 首页 - Bugku CTF (AWD做的比较好)
pwn.college pwn.college(当然如果您一来就相中了PWN的话,这个平台也是不错的选择)
目前有一个好处就是,基本上每个平台的入门题目,直接搜索就能找到足够详细的WP,只要你会读文档,会跟着复现,并且在这个过程中持续学习,那么入门CTF对你来讲也就不会是什么难事
"不必等待WP的降临,如果没有WP,我便是WP" —— 鲁迅
"鲁迅说过这话?"
"鲁迅什么话没说过?"
刷题指南
下面以NSSCTF为例,简单介绍一下做题流程,和题目类型。
更详细参考:NSSCTF 平台食用手册:https://hello-ctf.com/HC_Appendix/NSSCTF_Usage/
CTF题目开启的基本形式如下:
-
附件 —— 通常为压缩包,每类题型都可能有,可能直接就是题目本身,也可能是题目涉及到的源码等等
-
容器 (常见于Web Pwn,也有可能见于 Misc Crypto ……)
-
Web靶机 —— 通常为
ip:port / domain:port
-
eg:1.11.45.14:1919
/ node3.anna.nssctf.cn:28622
这样的靶机可以直接在浏览器中访问:
nc 靶机 给出的形式和Web靶机类似:ip:port
/ domain:port
也有可能没有:
ip port
/ domain port
也有部分靶机给出时会明显带上nc :nc ip port
/ nc domain port
这样的靶机不能直接在浏览器中访问,需要使用nc工具连接,通常在Linux系统中接入,或者使用某些工具进行交互,如 pwntools
当然也有可能附件和靶机都有。比如 Web 涉及到源码审计的时候,也有的nc交互给nc后台的脚本等各种类似的情况
新手引导
与其他比赛不同,CTF似乎没有一条能够一镜到底的通路,更多的还是需要探索适合自己的。
不过一些基础题单倒是比较确定,可以尝试看看x
下面我们会给出每个方向大致的内容、一些工具和Tricks以及入门路线和基础题单
希望你在入门中 培养 和 强化自己的学习能力,找到属于自己的路。
杂项 MISC
前置知识:
知道什么是CTF、知道什么是Flag就行了
基础内容 / 路线:
- OSINT
「 开源网络情报 OSINT(Open Source Intelligence) 」一种情报搜集手段,从各种公开的信息资源中寻找和获取有价值的情报,一般用于考察选手的信息搜集能力,也有可能会考察选手的逻辑推理能力。 - 编码转换 / 古典密码
- 隐写: 图片隐写、音频隐写、视频隐写
- 取证: 流量分析、磁盘取证、内存取证、日志分析取证
入门需要的工具和Tricks
Warning
该部分只提供基础工具,更多工具可以到环境配置章节中的工具合集查看,在遇到对应题目的时候可在合集中自行查找,到一定程度之后可以尝试自己复现轮子。
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
Python | MISC方向中用途最广的语言。 | 官网 | / |
CyberChef | 近乎全能的编码解码工具。 | 官网 国内中文镜像站 | / |
010 Editor | 专业的文本编辑器和16进制编辑器,可通过加载模块脚本,解析文件结构。 | 官网 | / |
QR Research | 专业的二维码扫描识别软件,支持多个纠错等级,掩码选项(已停止维护)。 | / | / |
Stegsolve | 图像分析工具。 | GitHub | / |
Wireshark | 流量分析取证软件。 | 官网 | / |
方便快速获得题感的一把梭工具:
- 随波逐流工作室 随波逐流CTF编码工具 (1o1o.xyz) 随波逐流一把梭
- CTF_MISC_第一版本工具PuzzleSolver_哔哩哔哩_bilibili PuzzleSolver一把梭
给MISC选手的忠告
MISC是一个对编程能力要求比较高的方向,不过大多数考点的固定衍生出比较多的"轮子",当然轮子减少手动操作,确实是好东西,但是容易产生一些弊端,因为跳过了手动操作所以不懂原理也能梭题目,可能会导致选手略过本来应该学的原理,手动会做之后再碰到了用工具减少操作是完全没问题的,即便没有这些整合工具,用现成脚本说到底本质也是一样的。
题目清单
- CTFshow 菜狗杯的MISC部分 配合WP 食用 菜狗杯WriteUP
- CTFshow MISC入门
- BUUCTF MISC部分
当然其他平台也行,注意你的目的是 学到东西 ,而不是看刷题数量
网络攻防 WEB
前置知识: 看懂网页就行
基础内容 / 路线: 考点基本围绕几大类型的漏洞:
泄露 | 注入 | 序列化&反序列化 | 文件包含 | 文件上传 | 命令执行 | XSS | SSRF | 逃逸
如果你想了解更多或者前沿,可以参考「 开放式Web应用程序安全项目 OWASP(Open Web Application Security Project) 」 计划
Web方向涉及的技术栈以及大致认知路线: JS(JavaScript) → PHP(语言基础,语言特性) → PHP框架(例如ThinkPHP) → Python Java → Web框架 例如Flask(Python) Springboot(Java) Node.js(JavaScript) ....
注意
与开发不同,您无需完整掌握语言再去做题,在了解语言基础后,要做的就是通过题目去学习语言的特性,例如PHP的弱类型特性,Python的反序列化等等,这样的学习方式会更加高效。
入门需要的工具和Tricks
- 工具
项目名称 | Usage | 项目地址 | 使用文档 | 其他 |
---|---|---|---|---|
hackbar | 浏览器插件,能够在页面上直接完成 请求/响应内容编辑,完成各种包括但是不限于伪造的工作。 | 谷歌商店 GitHub | / | / |
Proxy SwitchyOmega | 代理管理软件,方便一个浏览器多个代理端口的切换。 | GitHub | / | / |
Wappalyzer | 页面技术识别软件,方便快速定位页面的框架技术等信息 | 官网 | / | / |
Burp Suite | 代理抓包软件,用于Web应用程序的渗透测试和攻击 | 官网 | / | / |
Antsword | 开源Webshell管理工具 | GitHub | / | / |
dirsearch | 目录扫描工具 | GitHub | / | / |
SQLMap | 自动化的SQL注入利用工具 | GitHub | / | / |
稍微进阶一点,你可能需要一些 Linux 基础 —— 因为服务器主流系统都是Linux家族,大多数web服务也都挂载在Linux上面
同时 CTF 中所用的容器也是基于 Linux
有些题目 / 漏洞 涉及到的 RCE 也依赖于Linux命令
同时,你可能需要会简单的使用Docker,用于本地环境的搭建,便于漏洞复现或者本地调试。
Web 入门不会太难,但是和MISC一样,Web 是一个维度很广的方向,所以你需要在做题过程中不断地学习、不断的去了解 Web 这一个庞大的世界。
题目清单
CTFshow 菜狗杯的Web部分(选做即可 不要死磕 ) 配合WP 食用 菜狗杯WriteUP
CTFshow Web入门
NSSCTF Web题目 前期建议结合WP 和 tag刷题
BUUCTF / QsnCTF 几大经典靶场 —— Upload-Labs sqli-labs PikaChu Web-DVWA XSS-Lab……
密码学 CRYPTO
前面有说到,密码学主要是两个大类:古典密码学 和 现代密码学
目前比赛古典密码学多在MISC中考察,如果有涉及到密码学方向的古典密码学,那可能多半是变式 —— 即在古典密码原有的基础或者基于古典密码 置换 和 代换 基本原理创造出的新密码
而绝大部分密码学考察都为现代密码
古典密码参考:
密码学入门主要以现代密码学为主。
※ 入门需要的工具和Tricks
Python3环境
做题会遇到对应的模组,目前都能搜索到相关教程
【AD / 付费】 推荐 NSSCTF 平台上面 Xenny 老师 工坊密码学系列教程
题目尝试:
- NSS 密码学的题目部分
- BUU 密码学部分
注意结合Wp时,因为现代密码学需要一定的数论基础,请不要为了解题而解题,在一些情况下你需要自行完成数学推导,最好是在完成数学推导后通过推导自行编写程序完成题目。
逆向工程 Reverse Engineering
目前,CTF中的逆向工程题目形式多数为:用户输入字符串→程序进行check。该过程会进行一系列的校验过程或者说算法,通常能通过校验的字符串便是flag。
所以针对校验过程,有可能是现有的一些加密解密算法,也有可能是出题人自研x
当然,也有许多“游戏性质的题目”,比如迷宫x
下面是你需要了解的东西;
- 可执⾏文件
- C/C++ 基础
- “不要学会了基础才去学基础能做什么” 在你掌握了大部分内容就可以开始实践了,这时候打开你的 OD 就可以开始对程序进行分析了,我们鼓励在实践中学习
- 汇编语言基础
- 寄存器、内存、寻址
- x86/x64 汇编
- 反汇编、反汇编算法
- 调⽤约定
- 变量、区分处理局部变量
※ 入门需要的工具和Tricks
- IDA Pro (注意:这里尽量选择高版本的,⽽且不要追求汉化)
- OllyDbg, x64dbg
- GUN Binary Utilities
- GDB 调试器
※ 题目尝试:
刷题时可配合 WriteUp 食用 HNCTF REVERSE Writeup - 飞书云文档 (feishu.cn)
-
然后可以尝试NSS其他逆向题目
-
也可以是BUUCTF对应逆向板块的题目
※ 友情链接:吾爱破解 - LCG - LSG|安卓破解|病毒分析|www.52pojie.cn
二进制漏洞利用 Pwn
【不是AD】强烈推荐 Cyberangel师傅 的glibc PWN、IoT、angr等文档系列,直接带你从入门到精通!!!
PWN主要考察栈溢出、堆溢出、格式化字符串漏洞等常规的二进制漏洞,选手需要借助这些漏洞获取计算机权限,从而拿到flag。
之前也介绍过PWN靶机,一般后台为 C/CPP 所写的交互程序,我们常用nc连接,或者使用pwntools工具来建立远程连接。
那么你会遇到什么?
- 栈溢出Ret2xxx系列各种ROP
- 格式化字符串
- 堆的各种漏洞
- IO文件劫持和利用
- 整数溢出、type溢出
- ……
听不懂没关系,这里只是稍微介绍下x 入门之后遇到了自然就懂了喵~🐱
这里要强调的是!PWN是一门极其需要耐心的方向,入门的周期也比较长,而且直白的说:他确实需要一定天赋。
入门你可能会面临和逆向类型差不多的挑战,但你的难度显然会更高:
- 汇编
- C / C++
- 编译原理
- Linux
- python
※ 入门需要的工具和Tricks
- IDA Pro (注意:同样地,这里尽量选择高版本的,⽽且 不要追求汉化 )
- OllyDbg, x64dbg
- GDB 调试
- pwntools
- 推荐:Roder师傅的 Pwncli GitHub - RoderickChan/pwncli: Do pwn by command line
- 二进制文件分析工具:radare2、objdump等。
这里稍微推荐一点学习资源x
※ 题目尝试:
刷题时 可配合WriteUp食用 HNCTF-PWN - 飞书云文档 (feishu.cn)
- NSSCTF 中其他PWN题
※ 友情链接:看雪论坛-安全社区|安全招聘|bbs.pediy.com (kanxue.com)
2、CTFtools-wiki
CTFtools-wiki:https://github.com/ProbiusOfficial/CTFtools-wiki
该合集将尽力做到对各个阶段的CTFer都有所帮助,您可以依照各方向环境配置文档在这里寻找各个工具的下载地址和使用方法。
适合自己的工具才是最好的,您并不需要下载所有的工具,请勿持有 ALL IN 思想。
常用软件
项目名称 | 项目简介 | 项目地址 | 项目文档 |
---|---|---|---|
Maye Lite | 专注于文件快速启动的简洁、轻量级工具 | Github | Maye Lite 一个更轻更简洁的快速启动工具 – N25H's Blog |
uTools | 一个极简、插件化的现代桌面软件。 | 官网 | 为什么使用 uTools? | uTools - 新一代效率工具平台 |
Everything | 一款强大的本地文件索引和搜索工具 | 官网 | / |
CTF 工具合集
环境基础
项目名称 | Usage | 项目地址 | 使用文档 |
---|---|---|---|
Vscode | 最好用 最轻量的 文本编辑器 依靠扩展可实现包括但不限于 IDE 各种功能 | 官网 | / |
Vmware Workstation | 虚拟机软件 | 官网 | / |
PyCharm | Python 集成开发环境(IDE) | 官网 | / |
IDEA | Java 集成开发环境(IDE) | 官网 | / |
PHPStorm | PHP 集成开发环境(IDE) | 官网 | / |
Phpstudy | Web环境 (Apache / Nginx + FTP + MySQL) 快速部署 常用于 Web初学阶段的一些本地web页面的搭建 | 官网 | / |
Docker | 容器服务 常用于 题目本地搭建测试 靶场环境,漏洞复现环境搭建等 除了静态附件题目,几乎所有的CTF题目都依赖Docker | 官网 | / |
Navicat | 优秀的数据库 管理 操作 调试 以及 可视化软件 | 官网 | / |
Watt Toolkit | Github Discord 部分谷歌服务 页面元素CDN 访问加速 | 不是用来让你打游戏的啊喂(#`O′)! | Github | / |
Clash | 部分服务访问加速 | 我也只能说这么多 | Github | / |
Web | Web安全
- 注意 工具包含 应用程序 和 浏览器插件
- 以下为Web常用工具或者说基础工具,一些漏洞利用程序将不会被归纳到这,您可以 点击此处 查看后方的CTF项目归档来查找更多工具。
项目名称 | Usage | 项目地址 | 使用文档 | 其他 |
---|---|---|---|---|
hackbar | 浏览器插件,能够在页面上直接完成 请求/响应内容编辑,完成各种包括但是不限于伪造的工作。 | 谷歌商店 Github | / | / |
Proxy SwitchyOmega | 代理管理软件,方便一个浏览器多个代理端口的切换。 | Github | / | / |
Wappalyzer | 页面技术识别软件,方便快速定位页面的框架技术等信息 | 官网 | / | / |
Burp Suite | 代理抓包软件,用于Web应用程序的渗透测试和攻击 | 官网 | / | / |
Antsword | 开源Webshell管理工具 | Github | / | / |
dirsearch | 目录扫描工具 | Github | / | / |
SQLMap | 自动化的SQL注入利用工具 | Github | / | / |
JD-GUI | Jar包反编译工具 | Github | / | / |
Ysoserial | Java 反序列漏洞利用工具 | Github | / | / |
MISC | 杂项
基础语言 | 模块
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
Python | MISC方向中用途最广的语言。 | 官网 | / |
编码 / 解码 / 解密 工具
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
CyberChef | 近乎全能的编码解码工具。 | 官网 国内中文镜像站 | / |
Ciphey | 自动化解密工具。 | Github | |
CTFCrackTools | 国内首个CTF工具框架,内涵多个主流密码加解密,支持添加支持Python编写的插件。 | Github | / |
文本 / Hex 编辑 | 文件工具
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
010 Editor | 专业的文本编辑器和16进制编辑器,可通过加载模块脚本,解析文件结构。 | 官网 | / |
lmHex | 开源的16进制编辑器。 | Github | |
WinHex | 16 进制编辑器为核心的数据处理软件。 | 官网 | / |
Binwalk | 可识别文件分离提取工具,常用于从文件中提取隐写到其中的其他文件。 | Github | / |
Foremost | 用于提取一个文件中包含的多个文件。 | / | / |
隐写工具 | 图像 / 音频
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
Qrazybox | 二维码分析和恢复 | Github Usagepage | |
QR Research | 专业的二维码扫描识别软件,支持多个纠错等级,掩码选项(已停止维护)。 | / | / |
UleadGIFAnimator | 高级GIF编辑器 | / | 吾爱论坛 |
-----图像类 | |||
Stegsolve | 图像分析工具。 | Github | / |
TweakPNG | 用于检查和修改PNG图像文件 |类似于010的Png Template功能 | 官网 | / |
BlindWaterMark(python) | 基于 python 的图像盲水印 | Github | / |
BlindWatermark(java) | 基于 java 的图像盲水印 | Github | / |
WaterMark(隐藏水印) | 图像隐写工具,在频域添加数字水印 | / | 吾爱论坛 |
WaterMarkH | 单图盲水印(频域隐写)工具 | / | / |
zsteg | PNG 和 BMP 图片隐写 | Github | / |
StegoVeritas | 隐写工具 | Github | / |
Stegdetect | 检测jpeg图像隐写工具,搭配stegbreak食用更佳 | Github | / |
-----音频类 | |||
Steghide | 将文件隐藏到图片或音频中的工具 | 官网 | / |
Audacity | 多轨音频处理软件。 | Github | / |
Mp3stego | 音频隐写提取工具 | 官网 | / |
Silenteye | 音频/图像隐写工具 | 官网 | / |
DeepSound | 可以将文件加密保存到一段声音文件中 | 官网 | / |
Mp3tag | 音频文件元资料编辑器 | 官网 | / |
取证工具
项目名称 | Usage | 项目地址 | 文档 |
---|---|---|---|
Forensics-Wiki | 取证综合资料库 | 官网 | / |
-----密码爆破 | |||
ZipCenOp | 伪加密加/解密工具 | Github | / |
ARCHPR | 压缩文件密码暴力破解工具。 | / | / |
Ziperello | zip压缩包密码恢复软件。 | / | / |
Aopr | Office文件密码暴力破解工具。 | / | / |
Passware Kit Forensic | 十分强大的解密工具,各类文件/磁盘密码爆破,密钥搜索等 | / | - 依依的汉化包 - 汉化版 |
Hashcat | 高性能,GPU/CPU 兼容的本地密码破解,支持多种不同格式 | Github | / |
John the Ripper | 简单易用的离线破解 | Github | / |
Hydra | 远程或在线密码的并行暴力破解。 | Github | / |
-----流量分析 | |||
Wireshark | 流量分析取证软件。 | 官网 | / |
-----内存 磁盘 取证 | |||
Volatility | 内存分析取证软件。 | 官网 Github | / |
MemProcFS | 新型内存取证框架 | Github | / |
NtfsStreamsEditor | NTFS流分析 | 官网 | / |
R-Studio | 内存取证tick+磁盘文件恢复分析 | 官网 | / |
AutoPsy | 用来分析磁盘映像和恢复文件的开源取证工具 | 官网 | / |
RegistryExplorer | 注册表文件分析器 | 官网 | / |
PowerToy | 注册表文件分析器 | Github | / |
解题工具
请不要过分依赖下面工具!!!
-
MISC是一个对编程能力要求比较高的方向,不过大多数考点的固定衍生出比较多的"轮子",当然轮子减少手动操作,确实是好东西,但是容易产生一些弊端,因为跳过了手动操作所以不懂原理也能梭题目,可能会导致选手略过本来应该学的原理,手动会做之后再碰到了用工具减少操作是完全没问题的,即便没有这些整合工具,用现成脚本说到底本质也是一样的。
使用工具获取便利的同时 请不要忽略对原理的学习!
项目名称 | Usage | 相关地址 |
---|---|---|
随波逐流 | 离线加密解密,字符编码进行转换,文件隐写查看等多项功能。 | 官网 |
PuzzleSolver | MISC 综合解题工具,由Byxs20开发。 | Github |
开源脚本
MISC是一个十分注重编程能力 和 脑洞 的方向,希望你能从下面的开源脚本中获得启发,也欢迎pr投稿你的开源脚本x
项目名称 | 项目地址 | 项目作者 |
---|---|---|
自动爆破PNG图片宽高并一键修复工具 | Github | AabyssZG (曾哥) ) |
文件反转、倒置、导出工具 | Github | AabyssZG (曾哥) ) |
CRC碰撞全自动化脚本 | Github | AabyssZG (曾哥) ) |
自动化内存取证_GUI版本 | Github | Tokeii0 (猫捉鱼) |
Crypto | 密码学
项目名称 | Usage | 项目地址 | 其它 |
---|---|---|---|
---语言 | 模块 | |||
Python | CTF密码学中离不开的语言x | 官网 | / |
Crypto 包 | 密码学工具库,用于在Python中实现各种加密、解密和哈希算法。 | Github | / |
gmpy2 包 | 包含了许多常用的数论函数和算法,适配各种大整数情况,算法效率高于原生库。 | Github | / |
numpy 包 | 基于C代码实现了底层数据结构和计算函数优化,适用于处理大型数据集和高性能计算,在密码学中常用于矩阵类运算。 | Github 官网 | / |
---应用程序 | |||
Sagemath | 开源的数学软件系统,整合了许多开源Python包。 | 官网 Github | Sage 中文文档 |
Yafu | 本地的因数分解程序 | 官网 | / |
Factordb | 在线的因数分解网站 | 官网 | / |
z3 | 开源的约束求解器,针对约束求解题型 | Github | / |
Reverse | 逆向
项目名称 | Usage | 项目地址 | 其他 |
---|---|---|---|
微步沙箱 | 文件敏感操作检查 | UsagePage | / |
Binaryai | 基于开源项目代码匹配度在线反编译工具 | UsagePage | / |
IDA | 最常用的静态逆向工具 | 官网 | ida pro权威指南 |
Ghidra | 开源的静态逆向工具,和IDA作用相同 | 官网 | / |
Ollydbg | 同为反汇编调试器(官方已经停止维护) | 官网 | / |
x64dbg / x32dbg | 在windows上使用的开源 x64 / x32 调试器 | 官网 | / |
DIE | 查壳工具,拿到程序第一件事就是分析文件类型,是否有壳 | Github | Github |
Exeinfope | 同为查壳工具 | 官网 | / |
Cheat Engine | 对程序的内存数据进行扫描和调试。 | 官网 | / |
GDB | 一般用于ELF的动态调试,配合插件(如pwngdb,gdb-peda)使用更佳 | 使用包管理工具安装 | Sourceware |
z3 | 开源的约束求解器,针对约束求解题型 | Github | / |
dnSpy | 强大的.NET调试、修改和反编译的工具(已停止维护) | Github | / |
----Java反编译 | |||
JADX | 开源 更好的代码可读性 自动恢复丢失的类和方法、变量和方法名称、可以将反编译结果导出为 Eclipse 或 IDEA 项目 | Github | / |
JD-GUI | 更好的代码可读性 可导出为 Java 文件或 Jar 包 | Github | / |
JEB | 支持wasm 可交叉引用、可看字节码、反编译结果纯粹 | 官网 | / |
GDA | 支持apk, dex, odex, oat, jar, class, aar文件的反编译, 支持python及java脚本自动化分析 | 官网 | / |
Fernflower | IDEA 采用的反编译工具,支持Jar包反编译。 | Github | / |
----Python反编译 | |||
pycdc | pyc反编译,对高版本有不错兼容性。 | Github | / |
Unpy2exe | 对py2exe打包的python程序提取字节码文件 (.pyc)。 | Github | / |
Pyinstxtractor | 对pyInstaller打包的python程序提取字节码文件 (.pyc)。 | Github | / |
[Python]uncompyle | 用于对Python字节码文件 (.pyc) 的反汇编,将其变成python源代码。 | 官网 | / |
PWN | 二进制
项目名称 | Usage | 项目地址 | 其他 |
---|---|---|---|
GDB | 一般用于ELF的动态调试,配合插件(如pwngdb,gdb-peda)使用更佳。 | Sourceware | / |
Pwntools | 用于编写EXP。 | Github | / |
Pwncli | 一款简单、易用的pwn 题调试与攻击工具,帮助你快速编写pwn 题攻击脚本,并实现本地调试和远程攻击的便捷切换,提高你在CTF 比赛中调试pwn 题脚本的速度与效率。 | Github | / |
Checksec | 查看二进制文件开启了哪些保护机制。 | Github | / |
ROPgadget | 编写ROP的EXP时需要用到,可以帮助你寻找合适的gadgets。 | Github | / |
objdump | 反汇编工具,查看文件的一些表信息,如got表。 | / | / |
radare2 | UNIX-like reverse engineering framework and command-line toolset. | Github | / |
windbg | Window 内核模式和用户模式代码调试。 | Microsoft Learn | / |