本书从实践的角度出发,深度剖析Web安全攻防教学内容,并从Web渗透的专业角度结合网络攻防实际案例,图文并茂地再现完整的Web渗透流程,精选经典漏洞案例,详细讲解测试环境搭建方法,更加系统、科学地拆解各类渗透技术,让读者能动手实操。本书通过模拟真实的入侵环境、实践总结防范技巧,介绍了如何在网络实践环境中做到知己知彼、有效防范黑客攻击,并给出了诸多独到的安全见解;同时利用大量实际案例和示例代码,详细剖析了各类Web应用程序的弱点,阐述了对Web应用程序进行渗透测试的全流程,兼顾了理论讲解与实践落地。
李春海,男,长期深耕于网络安全与信息技术前沿领域,主要研究方向为网络空间安全、区块链、工业互联网安全及隐私保护技术。在教学与科研工作中,他致力于将前沿的攻防理论与工业互联网、区块链等实际应用场景深度融合,紧跟国家网络安全战略需求,积极探索数据要素流通中的隐私保护与可信计算机制。他不仅具备扎实的理论功底,更拥有丰富的网络安全一线实践与项目研发经验,主张“以攻促防、理实交融”的教学理念,善于将复杂的网络攻防技术、经典漏洞案例以及最新的科研成果转化为通俗易懂的教学内容。
目 录
第一篇 基础篇
第 1 章 Web 安全基础 3
知识导读 3
知识目标 3
能力目标 3
1.1 Web 安全的核心 3
1.1.1 Web 安全的现状 3
1.1.2 常见 Web 安全漏洞 4
1.2 HTTP 概述 10
1.2.1 发起 HTTP 请求 11
1.2.2 HTTP 详解 12
1.2.3 URL 的基本格式 14
1.2.4 模拟 HTTP 请求 15
1.3 HTTPS 安全性分析 15
1.3.1 HTTPS 基本概念 15
1.3.2 HTTPS 认证流程 16
1.3.3 HTTPS 特点 17
1.3.4 HTTP 与 HTTPS 的区别 18
1.4 截获 HTTP 请求 18
1.4.1 Burp Suite 18
1.4.2 Fiddler 25
1.4.3 Winsock Expert 31
1.5 搜索引擎优化 32
1.6 会话管理 32
1.6.1 会话管理简介 32
1.6.2 Cookie 详解 33
1.6.3 Session 详解 34
1.7 Web 应用中的编码与加密 35
1.7.1 针对字符的编码 35
1.7.2 传输过程的编码 36
1.7.3 Web 系统中的加密措施 37
学习成果达成与测评 39
学习成果实施报告书 40
第2章 渗透测试之信息探测收集 41
知识导读 41
知识目标 41
能力目标 41
2.1 收集域名信息 41
2.1.1 WHOIS 查询 43
2.1.2 备案信息查询 45
2.2 收集敏感信息 47
2.3 收集子域名信息 51
2.4 收集常用端口信息 53
2.5 查找真实 IP 54
2.6 收集敏感目录文件 55
2.7 社会工程学攻击 56
2.7.1 信息收集 56
2.7.2 沟通 56
2.7.3 伪造 57
2.8 Nmap 工具 57
2.8.1 Nmap 工具介绍 57
2.8.2 使用 Nmap 进行扫描探测 57
学习成果达成与测评 60
学习成果实施报告书 61
第 3 章 漏洞扫描环境搭建及工具使用实战 62
知识导读 62
学习目标 62
能力目标 62
3.1 Web 应用服务环境搭建 62
3.1.1 在 Linux 系统中搭建 LNMP环境 62
3.1.2 在 Windows 系统中搭建 WAMP环境 65
3.2 Web 漏洞靶场环境搭建 70
3.2.1 DVWA 搭建 70
3.2.2 SQLi-LABS 搭建 74
3.2.3 XSS 平台搭建 76
3.3 Burp Suite 使用 80
3.3.1 Target 80
3.3.2 Spider 81
3.3.3 Scanner 81
3.3.4 Intruder 82
3.3.5 Extender 83
3.4 AWVS 使用 85
3.4.1 AWVS 介绍 85
3.4.2 主要功能模块 86
3.4.3 其他模块 88
3.4.4 创建扫描任务 88
3.5 AppScan 使用 90
3.5.1 使用 AppScan 扫描 90
3.5.2 扫描结果分析 92
3.5.3 AppScan 辅助工具 93
学习成果达成与测评 97
学习成果实施报告书 98
第二篇 晋级篇
第 4 章 SQL 注入漏洞 101
知识导读 101
学习目标 101
能力目标 101
4.1 SQL 注入基础 101
4.1.1 SQL 注入介绍 101
4.1.2 SQL 注入原理 102
4.1.3 SQL 注入分类 102
4.1.4 与 MySQL 注入相关的知识点 103
4.2 SQL 注入漏洞利用 103
4.2.1 联合注入攻击 103
4.2.2 联合注入攻击代码分析 104
4.2.3 报错注入攻击 106
4.2.4 报错注入攻击代码分析 106
4.2.5 布尔盲注攻击 107
4.2.6 布尔盲注攻击代码分析 107
4.2.7 时间盲注攻击 108
4.2.8 时间盲注攻击代码分析 108
4.2.9 宽字节注入攻击 109
4.2.10 宽字节注入攻击代码分析 109
4.2.11 堆叠注入攻击 110
4.2.12 堆叠注入攻击代码分析 110
4.2.13 二次注入攻击 111
4.2.14 二次注入攻击代码分析 112
4.3 SQL 注入进阶 113
4.3.1 SQL 注入常见的绕过方式 113
4.3.2 SQLMap 使用 114
4.3.3 SQLMap 安装 114
4.3.4 SQLMap 常用命令 117
4.3.5 SQLMap 自带 tamper 脚本 117
4.4 SQL 注入漏洞修复建议 118
学习成果达成与测评 119
学习成果实施报告书 120
第 5 章 XSS 漏洞 121
知识导读 121
学习目标 121
能力目标 121
5.1 XSS 漏洞基础 121
5.1.1 XSS 漏洞介绍 121
5.1.2 XSS 漏洞原理 121
5.2 XSS 漏洞利用 122
5.2.1 XSS 分类 122
5.2.2 反射型 XSS漏洞 122
5.2.3 存储型 XSS漏洞 123
5.2.4 DOM 型 XSS漏洞 124
5.3 XSS 漏洞进阶 125
5.3.1 XSS 漏洞常用测试语句及绕过编码 125
5.3.2 使用 XSS 平台测试 XSS 漏洞 126
5.4 XSS 漏洞修复建议 128
学习成果达成与测评 129
学习成果实施报告书 130
第 6 章 CSRF 漏洞 131
知识导读 131
学习目标 131
能力目标 131
6.1 CSRF 漏洞基础 131
6.1.1 CSRF 漏洞介绍 131
6.1.2 CSRF 漏洞原理 131
6.2 CSRF 漏洞利用 133
6.2.1 CSRF 攻击类型 133
6.2.2 CSRF 漏洞代码分析 133
6.3 CSRF 漏洞修复建议 134
学习成果达成与测评 135
学习成果实施报告书 136
第 7 章 SSRF 漏洞 137
知识导读 137
学习目标 137
能力目标 137
7.1 SSRF 漏洞基础 137
7.1.1 SSRF 漏洞介绍 137
7.1.2 SSRF 漏洞原理 137
7.2 SSRF 漏洞利用 138
7.2.1 SSRF 漏洞利用方式 138
7.2.2 SSRF 漏洞代码分析 139
7.3 SSRF 漏洞修复方法 139
学习成果达成与测评 140
学习成果实施报告书 141
第 8 章 命令执行漏洞 142
知识导读 142
学习目标 142
能力目标 142
8.1 命令执行漏洞基础 142
8.1.1 命令执行漏洞介绍 142
8.1.2 命令执行漏洞原理 143
8.2 命令执行漏洞利用 143
8.2.1 命令执行漏洞利用方式 143
8.2.2 命令执行漏洞代码分析 144
8.3 命令执行漏洞进阶 146
8.3.1 命令执行漏洞常见的绕过方式 146
8.3.2 无回显命令执行 147
8.4 命令执行漏洞修复方法 148
学习成果达成与测评 149
学习成果实施报告书 150
第 9 章 WebShell 151
知识导读 151
知识目标 151
能力目标 151
9.1 WebShell 基础 151
9.1.1 WebShell 特点 151
9.1.2 WebShell 写入方式 152
9.2 常见 WebShell 152
9.2.1 一句话木马 152
9.2.2 WebShell 变形技巧 153
9.2.3 大马 156
9.3 WebShell 管理工具 157
9.3.1 蚁剑(AntSword)使用方法 157
9.3.2 冰蝎(Behinder)使用方法 160
学习成果达成与测评 168
学习成果实施报告书 169
第 10 章 文件上传漏洞 170
知识导读 170
知识目标 170
能力目标 170
10.1 文件上传漏洞基础 170
10.1.1 文件上传漏洞介绍 170
10.1.2 文件上传漏洞原理 170
10.2 文件上传漏洞利用 171
10.2.1 基于客户端验证的文件上传漏洞利用方式 173
10.2.2 基于客户端验证的文件上传漏洞代码分析 175
10.2.3 基于服务器端验证的文件上传漏洞利用方式 176
10.2.4 基于服务器端验证的文件上传漏洞代码分析 177
10.3 文件上传漏洞修复 179
学习成果达成与测评 180
学习成果实施报告书 181
第 11 章 文件解析漏洞 182
知识导读 182
知识目标 182
能力目标 182
11.1 文件解析漏洞基础 182
11.1.1 文件解析漏洞介绍 182
11.1.2 文件解析漏洞原理 183
11.2 文件解析漏洞利用 183
11.2.1 IIS 文件解析漏洞利用方式 183
11.2.2 Apache 文件解析漏洞利用方式 185
11.2.3 Nginx 文件解析漏洞利用方式 186
11.3 文件解析漏洞修复 187
学习成果达成与测评 189
学习成果实施报告书 190
第 12 章 文件包含漏洞 191
知识导读 191
知识目标 191
能力目标 191
12.1 文件包含漏洞基础 191
12.1.1 文件包含漏洞介绍 191
12.1.2 文件包含漏洞原理 192
12.2 文件包含漏洞利用 192
12.2.1 文件包含漏洞利用方式 192
12.2.2 文件包含漏洞代码分析 192
12.2.3 日志文件包含利用 194
12.2.4 临时文件包含利用 195
12.2.5 其他敏感文件包含利用 196
12.2.6 PHP 封装协议包含利用 197
12.3 文件包含漏洞修复 199
学习成果达成与测评 200
学习成果实施报告书 201
第 13 章 业务逻辑漏洞 202
知识导读 202
学习目标 202
能力目标 202
13.1 业务逻辑漏洞基础 202
13.1.1 业务逻辑漏洞介绍 202
13.1.2 业务逻辑漏洞原理 202
13.2 业务逻辑漏洞利用 203
13.2.1 账户相关业务逻辑漏洞 203
13.2.2 交易相关业务逻辑漏洞 203
13.2.3 越权操作业务逻辑漏洞 203
学习成果达成与测评 205
学习成果实施报告书 206
第 14 章 反序列化漏洞 207
知识导读 207
知识目标 207
能力目标 207
14.1 反序列化漏洞基础 207
14.1.1 反序列化漏洞介绍 207
14.1.2 反序列化漏洞原理 207
14.2 反序列化漏洞利用 208
14.2.1 PHP 反序列化漏洞利用 208
14.2.2 PHP 反序列化漏洞代码分析 209
14.2.3 Python 反序列化漏洞利用 211
14.2.4 Python 反序列化漏洞代码分析 212
14.2.5 Java 反序列化漏洞利用 213
14.2.6 Java 反序列化漏洞代码分析 213
14.3 反序列化漏洞修复方法 214
学习成果达成与测评 216
学习成果实施报告书 217
第三篇 项目实战篇
第 15 章 实例分析 221
知识导读 221
知识目标 221
能力目标 221
15.1 代码审计实例分析 221
15.1.1 SQL 注入漏洞实例 221
15.1.2 文件删除漏洞实例 225
15.1.3 文件上传漏洞实例 228
15.1.4 添加管理员漏洞实例 230
15.1.5 竞争条件漏洞实例 231
15.2 渗透测试实例分析 233
15.2.1 后台爆破 233
15.2.2 SSRF+Redis 获得 WebShell 238
15.2.3 旁站攻击 241
15.2.4 重置密码 247
15.2.5 SQL 注入 249
学习成果达成与测评 255
学习成果实施报告书 256