# CTF:从0到1 -> zero2one ###### tags: `CTF` `入门` > - 是一点CTF的入门心得吧,希望能给想玩CTF的小朋友们一点帮助。 > - 这里还只是个划水摸鱼的萌新(捂头)有什么写错的地方烦请大佬们补充谢谢0v0 --- ## 0x01 关于CTF ### Ⅰ. 一点简介 CTF(Capture The Flag,夺旗赛),就是通过程序分析、攻防对抗等形式,从比赛平台的题目中得到一串具有一定格式的字符串(被称为flag)或其他内容,并将其提交到平台上以夺得分数。 ### Ⅱ. 亿点简介 详细简介这东西,前人有简介的话当然引用前人的了(捂头跑路)。感觉目前来说看到最完整的介绍要数CTFHub里的了 ~~(要不是因为要去拿彩蛋的flag估计我也不会看到这些介绍hhh)~~ 。 CTF简介:[CTF简介 | CTFHub](https://writeup.ctfhub.com/Skill/CTF%E5%9F%BA%E7%A1%80/22435.html) 关于CTF的竞赛模式:[竞赛模式 | CTFHub](https://writeup.ctfhub.com/Skill/CTF%E5%9F%BA%E7%A1%80/44044.html) 关于CTF的比赛形式:[比赛形式 | CTFHub](https://writeup.ctfhub.com/Skill/CTF%E5%9F%BA%E7%A1%80/52169.html) 关于CTF的题目类型:[题目类型 | CTFHub](https://writeup.ctfhub.com/Skill/CTF%E5%9F%BA%E7%A1%80/63374.html) ## 0x02 从入门到... ### Ⅰ. 新手教程 #### 1)选择一个主攻方向 在读完上面的亿点简介(尤其是题目类型)以后,可以**试图寻找自己对哪个方向更感兴趣**(web,reverse/逆向,pwn/二进制,crypto/密码学)。为什么不选misc呢?因为杂项实在是太杂,建议团队三个人都或多或少地刷一下,~~华师CTF新生赛里杂项类是为数不多能做出来的题目了(捂头跑)~~。  我的话目前在队里的定位是个摸鱼的逆向手,所以对逆向方面比较熟悉(吧,目前打算往pwn方向延伸。 对几个方向的一点点理解是: - 感觉 _**web**_ 相当于前端的杂项,听部长大佬说web包括的方面很多很杂,做起来令人头大(想问具体的就去敲他吧[甩锅])。 - _**逆向**_ 上我感觉算是比较简单也比较累的一个方向,入门的话只要能读得懂C/C++源代码就完全ojbk,后期可能需要人肉反汇编&反编译,~~做题的时候十分需要感受宁静hhhh~~。 - _**pwn**_ 则是简单逆向+漏洞利用,入门可能比较难(?~~但是新生赛里说不定就有输入十六个b就能出flag的究极简单题[手动狗头]~~),毕竟需要在读懂程序逻辑(一般这里的程序逻辑没逆向那么难)以后,发现能利用的漏洞(比如堆栈溢出/重复free等),如果对计算机内部处理比较感兴趣的同学可以试试? - _**密码学**_ 感觉是万物归宗(x),后期无论做什么题都有可能遇到密码学(比如上次ciscn逆向到最后是一道TEA解密的问题),very需要数论基础。 组队的时候,可以先组人再分方向,也可以通过方向来选人,最理想的状态是三人方向不同,优势互补。 #### 2)边练边学,刷题入门 CTF比赛过程中跟其他比赛最大的不同点就是**能在互联网查找资料,赛后还(或许)能搜到一些题目的wp(即write up,类似于答案解析)**。 在选择方向以后,可以在一些刷题网站(如CTFHub、攻防世界、Bugku CTF等,在Ⅲ中会有详细介绍)中,选择该方向的题目进行练习。刚开始的时候,或许还不懂面对题目应该做什么,那么可以选择在网上找这道题目的wp(如这道题目在攻防世界上,名为easyre,那么可以搜索“攻防世界 easyre”,就能看到它的解题思路)。  **初学者可以直接跟着wp复现得到flag,但跟着做的过程中也要学到做题的思路和思考方向。** 在学了一些题目以后,就可以尝试自己做一些题啦,能做出就成就感up,没做出就继续看wp o(* ̄▽ ̄*)ブ。当然,也不是每道题都有wp,但不用担心,这些网站在新手区放的经典题基本上都会有wp的。 **CTF的学习过程其实更像是积累经验的过程**,在做每一道题、打每一场比赛的赛中和赛后能学到新的知识点,也能知道自己在什么方面有所不足、哪些点因为粗心忽略掉了。 同时,也别忘了很重要的 **“自造轮子”** ,CTF是用自己的电脑进行比赛的,也就是说会很依赖本地的库和脚本。万一碰到不能去互联网查资料的&#?%@比赛(真的存在XD),就意味着你需要用本地脚本进行某个密码算法(比如TEA)的解密,如果没有本地轮子就只能现打了,还是很费时间的orz。 (p.s. 在找不到在线解密的网站时,有本地的解密代码也很方便) _**比赛入门强推:华师CTF新生赛**_ 按照这样的入门路线来走,小白也不用害怕啦>v<,华师CTF新生赛是一个非常非常友好的入门起点,如果**你对CTF感兴趣的话,快关注今年的C新生赛呀(づ◡ど)**。 ### Ⅱ. 必先利其器 无论哪个方向,写脚本用的语言建议首选Python。~~(Python是世界上最好的语言!!)~~ Reverse: - IDA pro(yyds!反汇编+反编译必备) - Ollydbg(简称OD,一个动态调试工具,推荐吾爱破解专用版) - 一个读二进制机器码的工具(WinHex、010 editor...) - Ghidra(一个支持反编译mips64的工具,ida虽然有插件但好像只支持mips32? ~~srds它的生态没ida好所以还是首推ida~~) - PEiD(一个查壳工具) - uncompyle2(.pyc反编译为.py的工具) - ...(想到什么再补好了XD 别的方向暂时还无,建议搜索引擎 ~~(比如知乎)~~ 走起QvQ ## 0x03 安利一些前人的肩膀 ### Ⅰ. 一些书 **【读过给“o”标志,简单说一下读后感;未读过给“x”标志,简介从网络上搬过来,仅供参考。】** 1. 《CTF特训营:技术详解、解题方法与竞赛技巧》_**【o】【全方向】**_ 这本书里包括Web、Reverse、PWN、Crypto、APK、IoT六个部分,据说是面向初学者的一本书。但是从阅读体验来看,**感觉不太适合一点都没接触过CTF的小白(连一道题都没做过的这种)**,至少在看到的逆向和pwn部分是这样。 不过,它虽然没有手把手带你入门的详细步骤,但有的是**干货max**。如果读者是做过一点题的咸鱼选手(比如我),就会感觉学到了超多,里面介绍和总结了很多实用的技巧和某一部分的详细题型。很多方法就是提一嘴,让你知道有这个东西,但具体该怎么用、用的时候该注意什么,就得自己去领悟了。 总结:感觉本书适合 _跟着wp做了一些题目并能独立做出几道的初学者_ 及 _想要往别的方向发展的现役选手_。 2. 《从0到1:CTFer成长之路》_**【x】【全方向】**_ 【本书主要面向CTF入门者,融入了CTF比赛的方方面面,让读者可以进行系统性的学习。本书包括13章的内容,技术介绍分为线上赛和线下赛两部分。线上赛包括10章,涵盖Web、PWN、Reverse、APK、Misc、Crypto、区块链、代码审计。线下赛包括2章,分别为AWD和靶场渗透。第13章通过Nu1L战队成员的故事和联合战队管理等内容来分享CTF战队组建和管理、运营的经验。】 书还没到>~<,期待拜读的机会。 3. 《加密与解密》_**【o】【Reverse && PWN】**_ **加解密yyds!!绝对是值得反复读的好书=v=** 虽然有点厚都是跳着看的hhh,但是打基础真的很棒。 推荐阅读路线(亲测)是基础篇->调试篇(了解学习IDA和OD/WinDbg/...的大致用法)->解密篇(大概看看会出到的密码算法)->脱壳篇&&保护篇(感觉主要是脱壳和反调试)->PE部分(走基础)->剩下没看的。 4. 《逆向工程权威指南》_**【x】【Reverse】**_ 【本书专注于软件的逆向工程,是写给初学者的一本经典指南。全书共分为12个部分,共102章,涉及X86/X64、ARM/ARM-64、MIPS、Java/JVM等重要话题,堪称是逆向工程技术百科全书。除了详细讲解,本书来给出了很多习题来帮助读者巩固所学的知识,附录部分给出了习题的解答。】 是一本在很多逆向方向入门帖里都会安利的书hhhh 5. 《汇编语言》_**【o】【Reverse && PWN】**_ 这本书我觉得是汇编入门宝典,虽然讲的是16位的古早8086CPU,但是把汇编的机制搞懂了以后,再看看x86/64和8086的区别就可以迅速用到题目里面。(比如vm的反汇编) 我觉得在学习汇编上跟别的语言不同的是,**最重要不是语法,而是计算机程序的运行过程、数据存储布局等底层的东西** ,而这本书在这方面讲的很通俗易懂不枯燥,推荐xn。 6. 《图解密码技术》_**【o】【Crypto】**_ (大致看了一些部分)就是一本很有趣的讲密码学的书!建议从前言看起发现彩蛋√ 因为去年刚开学那会是抱着随便了解了解的心态看的,所以可能对里面专业的东西没怎么记得住,为了避免误解我还是搬一段简介吧↓ 【本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。第一部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第二部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第三部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技术在现实生活中的应用。】 7. 《白帽子讲web安全》_**【x】【Web】**_ 【在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?本书将带你走进Web安全的世界,让你了解Web安全的方方面面。黑客不再变得神秘,攻击技术原来我也可以会,小网站主自己也能找到正确的安全道路。大公司是怎么做安全的,为什么要选择这样的方案呢?你能在本书中找到答案。详细的剖析,让你不仅能“知其然”,更能“知其所以然”。 本书是根据作者若干年实际工作中积累下来的丰富经验而写成的,在解决方案上具有极强的可操作性,深入分析了各种错误的解决方案与误区,对安全工作者有很好的参考价值。安全开发流程与运营的介绍,对同行业的工作具有指导意义。】 给完全没有了解的隔壁web方向推荐一波<(_ _)> 8. CSAPP(深入理解计算机系统) _**【o】【Reverse && PWN】**_ 推一个大佬们的学习指南/资源汇总:[【CMU-CSAPP】2015 CMU 15-213 CSAPP资源汇总](https://0xffff.one/d/684) 同样是没有折腾完的一本书(瘫)想对计算机底层方面有更深层次了解的朋友们可以试着阅读一番=v= ### Ⅱ. 一些网站 1. [华师CTF](https://ctf.scnu.edu.cn/library/knowledge)  是一个宝藏集合网站!不仅仅是一个报名网站(去年),里面的知识清单&训练场也大有乾坤,建议都扫一遍=v= 2. [0xFFFF](https://0xffff.one/t/ctf)  是一个很多dalao水的论坛!干货很多实名安利! 不只是CTF区,其他的区也有很多好玩的帖子,建议多逛 ~~(潜水玩家捂头跑路)~~。 3. [攻防世界](https://adworld.xctf.org.cn/task)【刷题网站】  这里有一个专门刷题的答题区,准备新生赛的话可以考虑一下把对应方向的新手练习区按上面说的方法刷一遍hhh(其实感觉新手练习区有些题目也是偏难的XD) 而且有些比赛也是在这个平台上举办的,先搞个账号不亏2333。 4. [CTFHub](https://www.ctfhub.com/#/index)【刷题网站】  这个网站其实是一个hub一样的集合类网站,这个技能树看起来包括的方面还挺全的 ~~(就是还没多少题orz 毕竟新站)~~ 不过赛事中心&历年真题&工具部分还是挺不错的,想复盘可以去找找题目,需要什么工具可以找找(说不定就找到了 5. [看雪](https://ctf.pediy.com/itembank.htm)【刷题网站?】  打个问号是因为我觉得它还是更偏向于论坛hhh 刷题这块的功能没怎么用过。 论坛还是很不错的,有很多干货&资源分享>< 6. [吾爱破解](https://www.52pojie.cn)  也是个干货&&资源的论坛集合,安利! 7. [Bugku CTF](https://ctf.bugku.com/challenges)【刷题网站】  刷题网站+1,各个方向的题目分类很明确,不过难度好像没按顺序排?杂项题目类型还是挺丰富的,建议安排一下。 不过新生赛以后也没用这个刷过题了= =可能有理解偏差x ## 最后再强推一下华师的CTF新生赛! 不仅奖品丰富实用(至少是我参加那么多比赛以来拿到最多奖品的一个TvT),还能顺便入门CTF,何乐而不为呢>v<
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up