常规CTF比赛主要分为线上做题,以及线下AWD攻防(Attack With Defence),其中初赛往往为做题形式,决赛为AWD混战。做题形式又分为MISC(杂项)、PWN、WEB、REVERSE(逆向)、CRYPTO(密码),AWD混战以WEB为主,部分会有PWN,做题和AWD形式中的WEB都万变不离其宗,主要攻击手段有SQL注入、XSS、SSRF、文件包含、文件上传和一些已披露漏洞等,比赛中的漏洞又是故意暴露出来的,故比较好看出来,只要熟悉以上漏洞形式,即可上传SHELL拿FLAG。 其中主方向有WEB、逆向、PWN三个,一般一个人只能选一个方向主要学习,因为所涉及的知识不同,也没听说过能全精的。MISC和密码带着学一些,新手没思路的话一般推荐从web入手,web入门简单,除非对二进制特别感兴趣或代码能力极强。 一定要精通至少一门编程语言!!!不管选择学什么方面,编程语言都相当重要,CTF中不要想做脚本小子(纯只会用工具),能用工具解决的都是简单题,每个方面学到中等以后都会要求编程能力,web方面发包调试、sql注入等;杂项和密码编写解密脚本;逆向脚本动态调试、解密;PWN更不用说了,没有题是不需要写脚本的。这里推荐python3,这是目前较容易上手且非常流行的语言。