Misc入门指南
by G3rling @C0ba1t
前言
正值面试前夕,并且即将召开2024年度的新生赛,写这篇文章一方面是对已学知识的梳理和温习,另一方面也希望通过这篇文章帮助各位同学更好的认识和学习Misc。之前整理过一篇相关文章,但是很多知识对于刚接触的同学来说还为时过早,知识有用但暂无必要,所以借此机会有针对性地对一些基础知识进行整理。本人才疏学浅,学习时日不多,对Misc也仅仅是入门,内容不够全面,也不一定完全正确,仅供参考。
什么是Misc?
Misc是英文单词 Miscellaneous 前四个字母,称作 杂项 。
这个方向的知识如同名字一样,单个知识点的内容量相比其他方向的知识点没有那么多,但是对知识面的广度要求较高,通常涉及多方向领域。(很多时候不知道属于哪个方向往Misc扔准没问题)
在国际比赛上,Misc常被划分为几个小类:
- Recon(信息收集)
- Stego(隐写)
- Encode(编码转换)
- Forensic(取证)
- Traffic(流量分析)
- ……
但是在国内比赛中,这些都被统一列入 Misc 方向,有时 Crypto(尤其是古典密码)也被划入其中。
对Misc的看法
Misc由于其趣味性,成为很多师傅入门时比较感兴趣的方向,但是大部分师傅随着学习的深入都会选择其他方向作为自己的主打方向。不得不承认,Misc在刚入门时确实是一个很不错的选择,在熟悉CTF的过程中可以锻炼自己的基础能力。
Misc容易上手,但并不意味着Misc容易。Misc的难度跨度巨大,简单到可以直接将Flag告诉你,而难到可以让国际比赛整场没有一个队伍能解出来,所以Misc并没有想象的那么简单。
虽然Misc要求的知识面广而杂,但是很多知识点并不需要很高的技术力,而是需要大量练习积累的阅历和经验。以及部分Misc需要脑洞大开,和出题人对上脑洞才能解出题目。(Musc能不能亖啊)
但是Misc具有的趣味性是其他方向远不能及的,在Misc中你会遇见很多有趣的编码和加密,以及在比赛中会学到很多有趣的知识。
如何学习Misc
Recon(信息搜集)
无论是在Misc中还是其他方向的学习中,亦或是在大学学习生涯中,信息搜集能力是不可或缺的。当你遇到不认识的事物或者不懂的知识点时,何不选择问问那些搜索引擎呢?有一些题目需要通过提供的信息进行搜索和推理进一步得到关键信息,从而得到最终需要的答案。
在搜索过程中,你可能需要用到以下工具:
-
科学上网(
Magic is Magic !!!) -
选择合适的搜索引擎以及搜索地点
在遇到问题时,自己搜索解决问题往往能比询问他人得到答案能学到更多的知识,遇到实在不会的题也没必要死磕。如果实在需要向他人询问,请遵循提问的智慧。
Encode(编码转换)
编码,是信息从一种形式或格式转换为另一种形式的过程,简单来讲就是语言的翻译过程。有很多有趣甚至是抽象的编码,随着阅历的增长都会遇到。这里只列出部分常见编码:
基本的进制转换
二进制,十进制,十六进制,字符串之间的转化
base系列编码
Base编码有很多种,常用的有:base16 base32 base64 base85 base36 base 58 base91 base 92 base62
base xx 中的 xx 表示的是采用多少个字符进行编码。其中最常见 的是 base64,他由64个可打印字符(A-Z a-z 0-9 + /)组成,对应0-63,末尾最多2个=,末尾有等号是 base64 一大特征。但是,并不是每个base64编码后的结果都有等号,有等号的也不一定就是base64。
……
在刚接触的时候常用的是一些针对性的在线网站,但是随着学习的深入,你或许会发现一些好用的工具
Stego(隐写)
隐写算是Misc中比较常见的考点,无论是你能想到或者是不能想到的地方都有可能隐藏关键信息。但是大部分隐写都需要对相应文件格式有基础的认识:图片类(png,jpg,bmp),音视频类(mp3,wav,mp4),压缩包类(zip,rar,7z),文本……
甚至一些隐写需要自己编写代码或者专门的工具进行解密,建议在了解文件结构之前,准备好十六进制编辑器,能助你在学习过程中事半功倍。
对于工具的一些建议和意见
目前很多简单的操作已经可以由工具或者现成脚本进行处理,但是Misc随着学习的深入,对编程能力的要求会越来越高。大多数简单的固定考点能够通过这些”轮子“来代替手动操作,对于提高做题速度来说,确实是很好的东西。但凡事都有两面性,”轮子“的出现会产生一些弊端,”轮子“在不懂原理的情况下也能一把梭出题目,这可能会导致那些本来该学会的知识点被略过。试想,随着题目难度的提升,现成的工具和脚本已无法适应目前的情况,那些不懂原理只会用工具的”脚本小子“又该如何面对呢?这里并不是说刚入门不用脚本和工具,而是在手动会做之后再遇到相同类型的题目用工具减少操作,这样是完全没问题的,而且需要从会用脚本的 “脚本小子” 慢慢变为会写脚本的 “脚本小子” 。“基础不牢,地动山摇”,这样使用工具我觉得是比较合理的,打好基础一步一个脚印。
参考文献
MoeCTF2024 Misc入门指北 by sparkle & npm @XDSEC
写得很好👍👍通俗易懂👍老婆孩子都爱看
泥老婆素随?
最后的脚本小子这个问题非常good
认为还是比较重要的,所以专门提出来说一下