网络空间安全技术丛书 Web安全防护指南 基础篇
作者:蔡晶晶
出版时间: 2018年版
内容简介
web安全与防护技术是当前安全界关注的热点,本书尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。本书包括五个部分,部分为基础知识,这些知识对Web攻防技术理解有着极大帮助。第二部分重点讲解各类基本漏洞的原理及攻防技术对抗方法,并针对个漏洞的测试方法及防护思路进行整理。第三部分重点讲解Web应用的业务逻辑层面安全,但由于各类Web应用的不同,因此重点通过Web应用的用户管理功能入手,讲解在用户权限的获取、分配、利用方面的各项细节问题。第四部分从Web应用整体视角提供攻防对抗过程中的技术细节,这在实际运维过程中有很大的作用。第五部分介绍Web安全防护体系建设的基本方法,包含常见的防护设备、Web防护体系建议、渗透测试方法及快速代码审计实践,深入了解在Web安全防护体系中的各部分基础内容及开展方式。
目录
目 录
推荐序
前言
第一部分 基础知识
第1章 Web安全基础 2
1.1 Web安全的核心问题 2
1.2 HTTP协议概述 5
1.2.1 HTTP请求头的内容 6
1.2.2 HTTP协议响应头的内容 9
1.2.3 URL的基本格式 11
1.3 HTTPS协议的安全性分析 12
1.3.1 HTTPS协议的基本概念 13
1.3.2 HTTPS认证流程 14
1.3.3 HTTPS协议的特点总结 16
1.4 Web应用中的编码与加密 16
1.4.1 针对字符的编码 16
1.4.2 传输过程的编码 18
1.4.3 Web系统中的加密措施 20
1.5 本章小结 22
第二部分 网络攻击的基本防护方法
第2章 XSS攻击 24
2.1 XSS攻击的原理 24
2.2 XSS攻击的分类 25
2.2.1 反射型XSS 26
2.2.2 存储型XSS 26
2.2.3 基于DOM的XSS 26
2.3 XSS攻击的条件 26
2.4 漏洞测试的思路 27
2.4.1 基本测试流程 28
2.4.2 XSS进阶测试方法 30
2.4.3 测试流程总结 40
2.5 XSS攻击的利用方式 40
2.5.1 窃取Cookie 40
2.5.2 网络钓鱼 42
2.5.3 窃取客户端信息 44
2.6 XSS漏洞的标准防护方法 45
2.6.1 过滤特殊字符 45
2.6.2 使用实体化编码 50
2.6.3 HttpOnly 52
2.7 本章小结 52
第3章 请求伪造漏洞与防护 53
3.1 CSRF攻击 54
3.1.1 CSRF漏洞利用场景 58
3.1.2 针对CSRF的防护方案 58
3.1.3 CSRF漏洞总结 61
3.2 SSRF攻击 61
3.2.1 SSRF漏洞利用场景 62
3.2.2 针对SSRF的防护方案 65
3.2.3 SSRF漏洞总结 66
3.3 本章小结 66
第4章 SQL注入 67
4.1 SQL注入攻击的原理 67
4.2 SQL注入攻击的分类 72
4.3 回显注入攻击的流程 72
4.3.1 SQL手工注入的思路 73
4.3.2 寻找注入点 73
4.3.3 通过回显位确定字段数 74
4.3.4 注入并获取数据 76
4.4 盲注攻击的流程 78
4.4.1 寻找注入点 79
4.4.2 注入获取基本信息 81
4.4.3 构造语句获取数据 84
4.5 常见防护手段及绕过方式 86
4.5.1 参数类型检测及绕过 86
4.5.2 参数长度检测及绕过 88
4.5.3 危险参数过滤及绕过 90
4.5.4 针对过滤的绕过方式汇总 95
4.5.5 参数化查询 99
4.5.6 常见防护手段总结 100
4.6 本章小结 101
第5章 文件上传攻击 102
5.1 上传攻击的原理 103
5.2 上传的标准业务流程 103
5.3 上传攻击的条件 106
5.4 上传检测绕过技术 107
5.4.1 客户端JavaScript检测及绕过 107
5.4.2 服务器端MIME检测及绕过 110
5.4.3 服务器端文件扩展名检测及绕过 113
5.4.4 服务器端文件内容检测及绕过 118
5.4.5 上传流程安全防护总结 122
5.5 文件解析攻击 123
5.5.1 .htaccess攻击 123
5.5.2 Web服务器解析漏洞攻击 125
5.6 本章小结 127
第6章 Web木马的原理 128
6.1 Web木马的特点 129
6.2 一句话木马 130
6.2.1 一句话木马的原型 130
6.2.2 一句话木马的变形技巧 131
6.2.3 安全建议 135
6.3 小马与大马 136
6.3.1 文件操作 137
6.3.2 列举目录 139
6.3.3 端口扫描 139
6.3.4 信息查看 140
6.3.5 数据库操作 142
6.3.6 命令执行 143
6.3.7 批量挂马 144
6.4 本章小结 145
第7章 文件包含攻击 146
7.1 漏洞原理 146
7.2 服务器端功能实现代码 147
7.3 漏洞利用方式 148
7.3.1 上传文件包含 148
7.3.2 日志文件包含 148
7.3.3 敏感文件包含 150
7.3.4 临时文件包含 151
7.3.5 PHP封装协议包含 151
7.3.6 利用方式总结 151
7.4 防护手段及对应的绕过方式 152
7.4.1 文件名验证 152
7.4.2 路径限制 154
7.4.3 中间件安全配置 156
7.5 本章小结 158
第8章 命令执行攻击与防御 159
8.1 远程命令执行漏洞 159
8.1.1 利用系统函数实现远程命令
执行 159
8.1.2 利用漏洞获取webshell 163
8.2 系统命令执行漏洞 167
8.3 有效的防护方案 169
8.3.1 禁用部分系统函数 169
8.3.2 严格过滤关键字符 169
8.3.3 严格限制允许的参数类型 169
8.4 本章小结 170
第三部分 业务逻辑安全
第9章 业务逻辑安全风险存在的前提 172
9.1 用户管理的基本内容 173
9.2 用户管理涉及的功能 174
9.3 用户管理逻辑的漏洞 175
9.4 本章小结 176
第10章 用户管理功能的实现 177
10.1 客户端保持方式 177
10.1.1 Cookie 178
10.1.2 Session 179
10.1.3 特定应用环境实例 180
10.2 用户基本登录功能实现及安全情况分析 186
10.3 本章小结 189
第11章 用户授权管理及安全分析 190
11.1 用户注册阶段安全情况 191
11.1.1 用户重复注册 191
11.1.2 不校验用户注册数据 192
11.1.3 无法阻止的批量注册 193
11.2 用户登录阶段的安全情况 194
11.2.1 明文传输用户名/密码 194
11.2.2 用户凭证(用户名/密码)可被暴力破解 198
11.2.3 万能密码 199
11.2.4 登录过程中的安全问题及防护手段汇总 202
11.3 密码找回阶段的安全情况 203
11.3.1 验证步骤可跳过 204
11.3.2 平行