网络空间攻防技术原理
上QQ阅读APP看书,第一时间看更新

1.2 CTF竞赛的主要内容

1.2.1 CTF竞赛题目形式

CTF竞赛的考查范围很广,理论上所有的网络空间安全问题都可以出现在CTF竞赛中。从CTF竞赛中的常见题型来看,主要可以分为Web(网络攻防)、Reverse(逆向工程)、Pwn (二进制漏洞利用)、Crypto(密码学)及Misc(安全杂项)5类。

① Web:主要包括Web安全中常见的漏洞利用,如SQL注入、XSS、CSRF、文件包含、文件上传、代码审计、PHP弱类型等,Web安全中常见的题型及解题思路,以及相应工具的使用等。

② Reverse:主要包括逆向工程中的常见题型、工具平台、解题思路,进阶部分则包含逆向工程中常见的软件保护、反编译、反调试、加壳、脱壳技术。涉及Windows、Linux以及 Android 平台的多种编程技术,要求利用常用工具对源代码及二进制文件进行逆向分析等。

③ Pwn:主要包括对二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在CTF竞赛中,Pwn题目主要出现在Linux平台上。

④ Crypto:主要包括古典密码学和现代密码学两部分内容,古典密码学趣味性强,出题思路广阔,种类繁多;现代密码学安全性高,对算法的考查要求较高,主要是分析密码算法和协议,计算密钥和进行加解密操作等。

⑤ Misc:主要包括信息搜集、编码分析、隐写分析、取证分析等,内容不局限于一项或一类技术,常常跨越若干安全技术,形式多样、方式灵活,是初学者比较容易接触的一类题目。

另外,从网络空间安全学科的角度看,CTF竞赛的题目主要涉及系统安全、软件安全、密码学及安全杂项4个方面。

① 系统安全:主要涉及操作系统和Web系统安全,包括Web网站多种语言源代码审计分析(特别是PHP)、数据库管理和SQL操作、Web安全漏洞挖掘和利用(如SQL注入和XSS)、服务器提权、编写代码补丁并修复网站安全漏洞等安全技能。

② 软件安全:主要包括对C、C++、Python、PHP、Java、Ruby、汇编等程序语言的掌握,对格式化字符串、缓冲区溢出、UAF 等常见二进制程序漏洞的分析,对32位及64位Windows/Linux操作系统平台下二进制程序漏洞的挖掘,以及shellcode的编写及利用等。

③ 密码学:主要涉及密码编码学和密码分析学,包括古典密码、分组密码、序列密码、公钥密码、哈希函数等内容。

④ 安全杂项:主要涉及信息搜集能力、安全编程能力、移动安全、云计算安全、可信计算、隐写术和信息隐藏、计算机取证技术和文件恢复技能、计算机网络基础及对网络流量的分析能力等。