前言

没有网络安全就没有国家安全,网络安全不仅关系到国家整体信息安全,也关系到民生安全。近年来,随着全国各行各业信息化的发展,网络与信息安全得到了进一步重视,越来越多的网络安全竞赛也开始进入人们的视野。网络安全竞赛对于主办方来说,在某种程度上能完成对网络安全人才的选拔,对于参赛者来说,也是一个很好的交流学习平台,更是很多人接触网络安全、学习网络安全、深入了解网络安全的重要渠道。

CTF作为网络安全竞赛中最为传统的竞赛模式,最为直接地考察了选手在各个领域对应知识点的掌握情况,从检验和学习的角度考虑也更具有针对性。本书选取CTF实战中所需知识和技能进行讲解,希望从竞赛维度来促进大家对网络安全各个领域相关技能的学习。CTF的覆盖面大于传统的攻防渗透,因此对于初学者来说不仅仅是掌握竞赛中可能遇到的技能,更希望能够拓展对网络安全其他领域的了解,并通过CTF的学习找到自己想去深入研究的方向。

本书共分5篇,包括17章,具体安排如下。

第1~3章为第1篇Web安全。第1章Web安全基础知识,主要带领读者了解Web安全中涉及的相关基础知识,以HTTP为出发点,介绍HTTP中可能存在的安全问题、Web安全中经常使用的工具及信息泄露漏洞的基本概念与基本利用手法;第2章Web安全入门——PHP相关知识,从PHP的基础语法开始,介绍PHP中可能存在的安全问题,包括PHP的语法漏洞、反序列化漏洞等,并且掌握相关知识点题目的解题方法;第3章常见Web漏洞解析,从漏洞本身出发进行讲解,这些漏洞大部分和所使用的语言无关,而在CTF中又是经常出现的考点,如SQL注入、XSS、SSRF等。

第4~6章为第2篇Crypto密码。第4章密码学概论,介绍了密码学发展历程及一些编码方式;第5章古典密码学,从单表替换密码、多表替换密码及其他类型密码三个方向,由浅入深剖析了各个密码体系的原理及现有的攻击方法;第6章现代密码学,从非对称加密体系、对称加密体系、流密码、哈希函数及国密算法五个方向深度剖析了各个密码体系的原理及现有的攻击方法。

第7~10章为第3篇MISC安全。第7章隐写术,系统地讲解了常见文件的格式与识别,常见图片、音频、视频、文档隐写方式的分析方法,常见隐写分析工具的使用方法;第8章压缩包分析,介绍了常见压缩包的格式与加密手段,压缩包的常见破解方法,压缩包分析工具的使用方法;第9章流量分析,介绍了网络通信与协议,介绍了Wireshark工具的基本使用方式。借助Wireshark对常见的流量进行分析,包括Web混淆流量、USB相关的鼠标和键盘流量;第10章取证分析,介绍了常见的文件系统,磁盘取证和内存取证的分析方式和常见取证工具的使用方法。

第11~13章为第4篇Reverse逆向工程。第11章逆向分析基础,介绍了逆向工程的基础知识;第12章逆向分析法,介绍了如何通过逆向工程对可执行文件进行分析,分析一个程序方法有很多,但总体上都离不开“静态分析法”和“动态分析法”两种方法;第13章代码对抗技术,介绍了“脱壳”“花指令”“反调试”等常见的软件保护技术。

第14~17章为第5篇PWN。第14章PWN基础知识,主要介绍了ELF可执行文件结构、Linux操作系统相关知识和PWN相关工具。第15章栈内存漏洞,介绍了栈溢出漏洞原理、shellcode编写技巧、返回导向编程技术,以及栈溢出漏洞利用开发。第16章堆内存漏洞,介绍了glibc内存管理机制及三大常见堆漏洞类型:释放后重用漏洞、堆溢出漏洞和双重释放漏洞。第17章其他类型漏洞,介绍了整数漏洞和格式化字符串漏洞,深度剖析其背后的漏洞原理和漏洞影响。

本书编写的人员都来自于安恒信息的“恒星实验室”,近年来恒星实验室在众多网络安全竞赛中都取得了优异的成绩,同时本书的编写人员也参与支撑了国内众多网络安全竞赛的举办,因此能够从出题人和做题人两方视角进行讲解。在编写书稿时先进行体系设计,而后将自身经验转化输出,重点讲解实战所需知识和技能,希望能帮助更多的人更加高效地学习,更希望能为国家的网络空间安全建设贡献一份力量。

CTF作为竞赛模式中的一种,覆盖面非常广泛,解题思路非常多,本书开发中我们也只是选取了部分角度进行切入,内容上没有办法完全覆盖所有CTF竞赛内容。限于作者水平,书中疏漏之处在所难免,希望读者批评指正。

为了方便读者学习,提升学习效率,本书特意附赠了实验平台,相关地址可以通过关注以下公众号获取。本书其他的配套资源(视频、工具、内容更新等),作者也会在此公众号同步发布。

最后,由于网络安全的特殊性,本书相关内容仅限于学习网络安全技术,严禁利用书中所提及的相关技术及手段进行非法攻击,否则将受到法律的严惩!

作者