猜你喜欢
CTF实战:从入门到提升

CTF实战:从入门到提升

书籍作者:苗春雨 ISBN:9787111724834
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5676
创建日期:2024-03-31 发布日期:2024-03-31
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书采用理论与案例相结合的形式,全面讲解传统网络安全竞赛CTF解题赛中五大类重点知识和技能。
全书共17章,其中第1~3章为第1篇Web安全,从原理层面讲解了最常见的PHP相关安全问题,以及文件上传漏洞、文件包含漏洞、命令执行漏洞、SQL注入漏洞、SSRF漏洞等常见Web漏洞的原理与利用;第4~6章为第2篇Crypto密码,主要介绍了密码学基础、常见编码、古典密码学和现代密码学等相关内容;第7~10章为第3篇MISC安全,主要介绍了隐写术、压缩包分析、流量分析和取证分析等相关内容;第11~13章为第4篇Reverse逆向工程,主要介绍了逆向工程基本概念、计算机相关原理、逆向相关基础、常规逆向分析思路、反调试对抗技术等内容;第14~17章为第5篇PWN,主要介绍了基础环境准备、栈溢出、堆溢出等漏洞的原理与利用。
本书所有案例都配有相关实践内容,能够更有效地帮助读者进一步理解相关技能。
本书旨在帮助读者相对快速且完整地构建一个CTF实战所需的基础知识框架,并通过案例学习相关技能,完成从入门到提升,适合所有网络安全爱好者及从业者参考阅读,也可作为高等院校网络安全相关实践课程的参考用书。

作者简介

1. 苗春雨,博士,杭州安恒信息技术股份有限公司高级副总裁。中国网络空间安全人才教育联盟专委人才标准组副组长,中国工业信息安全产业发展联盟人才促进组副组长,中国网络安全审查技术及认证中心专家讲师,安恒信息博士后工作站博士后企业导师,中国科学技术大学、西安电子科技大学等多所高校客座教授/硕士企业研究生导师,浙大-安恒Arclab联合创新研究中心主任。擅长网络安全防护体系、物联网安全,主持和参与国际/省部级科研项目6项,主编教材和专著8本,主导开发5款网络安全演训产品,获得发明专利和软件著作权30余项,发表学术论文50余篇。荣获中国产学合作促进会产学合作创新奖、教育部网络空间安全教指委产学合作优秀案例一等奖、新安盟金石工匠奖等多个奖项。

2. 叶雷鹏,安恒信息教研院教研部经理,恒星实验室负责人。全国优秀共青团员,新时代浙江工匠,浙江省技术能手,浙江省青年岗位能手,杭州市叶雷鹏网络与信息安全管理员技能大师工作室领衔人。曾受邀参与国家一、二类职业技能竞赛命题工作,并多次带队参与各级攻防演练、竞赛,并取得优异成绩。

3.赵今,安恒信息安全研究专家,恒星实验室核心成员。主攻代码审计和云安全方向,负责信息安全竞赛相关赛题输出及培训内容输出。拥有多项安全证书,包括OSCE3、OSCP、OSWE、OSEP等。曾参与多项网络安全竞赛并获得多个奖项,包括第五空间网络空间大赛、字节跳动ByteCTF、纵横杯等比赛的冠军。

4. 杨鑫顺,安恒信息资深安全研究工程师,恒星实验室核心成员。致力于软件安全研究与漏洞挖掘。挖掘过操作系统、物联网设备等高危漏洞,曾参与强网杯、网鼎杯等网络安全技能竞赛,并获得优异成绩。

5. 金祥成,安恒信息高级安全培训工程师,恒星实验室核心成员。深入研究软件安全、移动App安全等二进制领域方向,拥有丰富的教学经验与实战经验。曾参与西湖论剑网络安全赛事的支撑与命题,多次参加国家级、省级网络安全相关竞赛,并多次获奖。


编辑推荐
适读人群 :网络安全爱好者及从业者


1. 安恒信息技术专家倾力之作;网络安全从业者和爱好者入门必读。
2. 重点讲解Web安全、Crypto密码、MISC安全、Reverse逆向工程、PWN五大类竞赛知识和技能。
3. 附赠案例源代码资源和实验操作平台。


前言



◆ 前言:◆

没有网络安全就没有国家安全,网络安全不仅关系到国家整体信息安全,也关系到民生安全。近年来,随着全国各行各业信息化的发展,网络与信息安全得到了进一步重视,越来越多的网络安全竞赛也开始进入人们的视野。网络安全竞赛对于主办方来说,在某种程度上能完成对网络安全人才的选拔,对于参赛者来说,也是一个很好的交流学习平台,更是很多人接触网络安全、学习网络安全、深入了解网络安全的重要渠道。
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竞赛内容。限于作者水平,书中疏漏之处在所难免,希望读者批评指正。
为了方便读者学习,提升学习效率,本书特意附赠了实验平台,相关地址可以通过关注以下公众号获取。本书其他的配套资源(视频、工具、内容更新等),作者也会在此公众号同步发布。
最后,由于网络安全的特殊性,本书相关内容仅限于学习网络安全技术,严禁利用书中所提及的相关技术及手段进行非法攻击,否则将受到法律的严惩!


目录

◆ 目录:◆

第1篇 Web安全
第1章 Web安全基础知识
1.1 Web应用体系结构/
1.1.1 Web应用工作流程/
1.1.2 Web应用体系结构内的术语/
1.2 HTTP详解/
1.2.1 HTTP概述/
1.2.2 HTTP请求方法/
1.2.3 HTTP请求状态码/
1.2.4 HTTP协议的 URL/
1.2.5 HTTP响应头信息/
1.3 HTTP安全/
1.3.1 URL编码的基本概念/
1.3.2 UA头伪造漏洞的概念及利用方法/
1.3.3 返回头分析方法/
1.3.4 来源伪造漏洞的概念及利用方法/
1.3.5 案例解析——[极客大挑战 2019]HTTP/
1.4 基础工具使用/
1.4.1 HackBar 插件/
1.4.2 SwitchyOmega 代理插件/
1.4.3 Wappalyzer 插件/
1.4.4 EditThisCookie 插件/
1.4.5 BurpSuite/
1.4.6 Postman/
1.4.7 案例解析——BUU BURP COURSE 1/
1.5 信息泄露/
1.5.1 Dirsearch 扫描器使用/
1.5.2. git与.svn泄露与利用/
1.5.3 其他源码泄露/
1.5.4 实战练习/
第2章 Web安全入门——PHP 相关知识
2.1 PHP的基础知识/
2.2 PHP的弱类型特性/
2.2.1 什么是强类型与弱类型/
2.2.2 弱类型漏洞产生原理/
2.2.3 MD5、HASH 相关漏洞利用/
2.3 PHP变量覆盖漏洞/
2.3.1 PHP变量覆盖的概念/
2.3.2 PHP变量覆盖的函数/
2.3.3 PHP变量覆盖漏洞的利用方法/
2.3.4 案例解析——[BJDCTF2020]Mark loves cat/
2.4 PHP文件包含漏洞/
2.4.1 PHP中常见的文件包含函数/
2.4.2 PHP中文件包含漏洞的概念/
2.4.3 PHP本地文件包含漏洞/
2.4.4 PHP远程文件包含漏洞/
2.4.5 PHP中常见的伪协议/
2.4.6 案例解析——[BJDCTF2020]ZJCTF/
2.5 PHP代码执行漏洞/
2.5.1 PHP中代码漏洞的概念/
2.5.2 PHP代码执行漏洞函数/
2.5.3 案例解析——虎符网络安全大赛 Unsetme/
2.6 PHP反序列化漏洞/
2.6.1 PHP的类与对象/
2.6.2 PHP的序列化与反序列化/
2.6.3 PHP中的反序列化漏洞/2.6.4案例解析——2019强网杯 UPLOAD/
第3章 常见Web漏洞解析
3.1 命令执行漏洞/
3.1.1 Bash与 CMD常用命令/
3.1.2 命令执行漏洞的基础概念/
3.1.3 过滤敏感字符串绕过的漏洞案例/
3.1.4 无回显的命令执行漏洞案例/
3.1.5 不出网的命令执行漏洞案例/
3.1.6 案例解析——[GXYCTF2019]Ping Ping Ping/
3.2 SQL注入漏洞/
3.2.1 SQL语句基础知识/
3.2.2 SQL注入漏洞的基础概念/
3.2.3 SQL手工注入方法/
3.2.4 SQL注入利用方式分类——布尔盲注利用/
3.2.5 SQL注入利用方式分类——时间盲注利用/
3.2.6 案例解析——CISCN2019 Hack World/
3.3 XSS漏洞/
3.3.1 XSS漏洞的基础概念/
3.3.2 XSS漏洞分类/
3.3.3 HTML中 XSS 常利用事件/
3.3.4 案例解析——BUU XSS COURSE 1/
3.4 SSRF漏洞/
3.4.1 curl命令的使用/
3.4.2 SSRF漏洞的基础概念/
3.4.3 SSRF常见漏洞点的寻找方法/
3.4.4 SSRF漏洞利用方法/
3.4.5 Gopherus工具使用案例/
3.4.6 案例解析——[网鼎杯 2020 玄武组]SSRFMe/
第2篇 Crypto密码
第4章 密码学概论
4.1 密码学发展历程/
4.2 编码/
4.2.1 Base编码/
4.2.2 其他编码/
4.2.3 案例解析——AFCTF 2018 BASE/
第5章 古典密码学
5.1 单表替换密码/
5.1.1 恺撒密码/
5.1.2 Atbash密码/
5.1.3 摩斯密码/
5.1.4 仿射密码/
5.1.5 案例解析——AFCTF 2018 Single/
5.2 多表替换密码/
5.2.1 维吉尼亚密码/
5.2.2 普莱菲尔密码/
5.2.3 希尔密码/
5.2.4 自动密钥密码/
5.2.5 案例解析——AFCTF 2018 Vigenère/
5.3 其他类型密码/
5.3.1 培根密码/
5.3.2 栅栏密码/
5.3.3 曲路密码/
5.3.4 猪圈密码/
5.3.5 跳舞的小人/
5.3.6 键盘密码/
5.3.7 案例解析——SWPUCTF 2019 伟大的侦探/
第6章 现代密码学
6.1 非对称加密体系/
6.1.1 RSA基础/
6.1.2 RSA基础攻击方式/
6.1.3 RSA进阶攻击方式/
6.1.4 ElGamal算法介绍/
6.1.5 ECC算法介绍/
6.1.6 案例解析——SWPUCTF 2020 happy/
6.2 对称加密体系/
6.2.1 AES/
6.2.2 分组模式介绍/
6.2.3 ECB电子密码本模式/
6.2.4 CBC密码分组链接模式/
6.2.5 CFB密文反馈模式/
6.2.6 案例解析——SWPUCTF 2020 cbc1/
6.3 流密码/
6.3.1 伪随机数/
6.3.2 LCG/
6.3.3 案例解析——GKCTF 2021 Random/
6.4 哈希函数/
6.4.1 哈希函数介绍/
6.4.2 哈希长度扩展攻击/
6.4.3 案例解析——De1CTF 2019 SSRFMe/
6.5 国密算法/
6.5.1 SM1分组密码算法/
6.5.2 SM2椭圆曲线公钥密码/
6.5.3 SM3密码杂凑函数/
6.5.4 SM4分组密钥算法/
6.5.5 案例解析——巅峰极客 2021 learnSM4/
第3篇 MISC安全
第7章 隐写术
7.1 文件结构类型及识别/
7.2 图片隐写/
7.2.1 附加字符串/
7.2.2 图片宽高/
7.2.3 最低有效位(LSB)/
7.2.4 盲水印/
7.2.5 案例解析——[NISACTF 2022]huaji?/
7.3 音频隐写/
7.3.1 摩尔斯电码与音频隐写/
7.3.2 MP3音频/
7.3.3 波形图/
7.3.4 频谱图/
7.3.5 案例解析——[SCTF 2021]in_the_vaporwaves/
7.4 视频隐写/
7.4.1 视频帧的分离/
7.4.2 案例解析——[2019RoarCTF]黄金6年/
7.5 文档隐写/
7.5.1 Word文档隐写/
7.5.2 PDF文档隐写/
7.5.3 案例解析——[UTCTF2020]docx/
第8章 压缩包分析
8.1 常见压缩文件格式/
8.2 常见压缩包破解方法/
8.2.1 伪加密破解/
8.2.2 暴力破解/
8.2.3 字典破解/
8.2.4 掩码攻击/
8.2.5 明文攻击/
8.2.6 CRC32碰撞/
8.2.7 案例解析——[GUET-CTF2019]zips/
第9章 流量分析
9.1 网络通信与协议/
9.1.1 通信方式/
9.1.2 网络协议概述/
9.2 Wireshark操作介绍/
9.2.1 显示过滤器/
9.2.2 追踪流与导出流/
9.2.3 查找内容/
9.3 Web流量分析/
9.3.1 HTTP 流量分析/
9.3.2 webshell混淆流量分析/
9.3.3 TLS 流量分析/
9.3.4 案例解析——[INSHack2019]Passthru/
9.4 USB流量分析/
9.4.1 鼠标流量分析/
9.4.2 键盘流量分析/
9.4.3 案例解析——[NISACTF 2022]破损的flag/
第10章 取证分析
10.1磁盘取证/
10.1.1 文件系统/
10.1.2 磁盘取证方法/
10.1.3 案例解析——[XMAN2018排位赛]file/
10.2 内存取证/
10.2.1 volatility介绍/
10.2.2 案例解析——[陇剑杯 2021]WiFi/
第4篇 Reverse逆向工程
第11章 逆向分析基础
11.1 逆向工程/
11.1.1 逆向与CTF/
11.1.2 逆向分析的意义/
11.2 计算机部件/
11.2.1 CPU/
11.2.2 内存/
11.2.3 内存分配机制/
11.2.4“分段”与“分页”/
11.2.5 内存映射/
11.3 可执行文件/
11.3.1 PE格式概述/
11.3.2 PE文件加载/
11.3.3 ELF格式概述/
11.4 寄存器/
11.4.1 寄存器分类/
11.4.2 通用寄存器/
11.4.3 ESI与EDI/
11.4.4 ESP与EBP/
11.4.5 段寄存器/
11.4.6 标志寄存器/
11.4.7 指令指针寄存器/
11.5 汇编语言/
11.5.1 汇编语言简介/
11.5.2 汇编指令格式/
11.5.3 数据传送指令/
11.5.4 算数运算指令/
11.5.5 逻辑运算指令/
11.5.6 移位指令/
11.5.7 条件转移指令/
11.5.8 栈操作指令/
11.5.9 函数调用/
11.5.10 中断指令/
第12章 逆向分析法
12.1 常用工具/
12.1.1 IDA Pro/
12.1.2 OllyDbg/
12.2 壳/
12.2.1 压缩壳/
12.2.2 加密壳/
12.2.3 软件壳识别/
12.2.4 几类脱壳方式/
12.3 加解密/
12.3.1 数据编码/
12.3.2 数据运算/
12.3.3 特征识别/
12.4 多语言逆向/
12.4.1 .NET/
12.4.2 Python/
12.4.3 GO/
第13章 代码对抗技术
13.1 查壳与脱壳/
13.1.1 UPX介绍/
13.1.2 寻找OEP/
13.1.3 单步脱壳法/
13.1.4 ESP定律法/
13.1.5 内存转储/
13.1.6 修复IAT/
13.2花指令/
13.2.1花指令简介/
13.2.2花指令识别/
13.2.3花指令修复/
13.3 反调试/
13.3.1 反调试简介/
13.3.2 API反调试/
13.3.3 PEB反调试/
13.3.4 TLS反调试/
13.3.5 进程名反调试/
13.3.6 窗口名反调试/
13.3.7 时间戳反调试/
13.4 z3约束求解器/
13.4.1 z3安装/
13.4.2 z3使用基础/
13.5 SMC技术/
第5篇 PWN
第14章 PWN基础知识
14.1 CTF与PWN/
14.2 可执行文件/
14.2.1 ELF文件格式解析/
14.2.2 程序内存布局/
14.2.3 延迟绑定技术/
14.3 Linux安全保护机制/
14.3.1 ASLR技术/
14.3.2程序ASLR之PIE技术/
14.3.3 No-eXecute技术/
14.3.4 RELRO技术/
14.4 PWN工具/
14.4.1 GDB及插件使用/
14.4.2 pwntools/
第15章 栈内存漏洞
15.1 shellcode开发/
15.1.1 shellcode原理/
15.1.2 shellcode编写/
15.1.3 shellcode变形/
15.2 缓冲区溢出原理/
15.2.1 函数调用栈/
15.2.2 栈溢出原理/
15.3 缓冲区溢出攻击/
15.3.1 栈溢出基本攻击/
15.3.2 shellcode注入攻击/
15.4 返回导向编程技术/
15.4.1 ROP原理/
15.4.2 ROP利用/
15.4.3 ROP变种利用/
15.5 栈溢出缓解机制/
15.5.1 canary原理/
15.5.2 canary bypass/
第16章 堆内存漏洞
16.1 堆块结构与管理/
16.1.1 堆与栈的区别/
16.1.2 malloc实现原理/
16.1.3 malloc_chunk结构/
16.1.4 chunk内存对齐/
16.1.5 free实现原理/
16.1.6 fast bin管理机制/16.1.7unsorted bin管理机制/
16.2 释放后重用漏洞/
16.2.1 UAF漏洞成因/
16.2.2 UAF漏洞利用/
16.3 堆溢出漏洞/
16.3.1 堆溢出漏洞成因/
16.3.2 堆溢出漏洞利用/
16.4 双重释放漏洞/
16.4.1 double free漏洞成因/
16.4.2 double free攻击方式/
16.4.3 double free漏洞利用/
第17章 其他类型漏洞
17.1 整数漏洞/
17.1.1 整数概念与类型/
17.1.2 整数溢出利用/
17.2 格式化字符串漏洞/
17.2.1 变参函数/
17.2.2 格式转换/
17.2.3 漏洞原理/
17.2.4 利用方式/
17.2.5 漏洞利用/