描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111587767
内容简介
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 平行
推荐序
前言
部分 基础知识
第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 平行
前 言
前 言一、为什么要写这本书随着网络的普及,人们的工作、生活已经与网络深度融合。Web系统由于其高度可定制的特点,非常适合承载现有的互联网应用。目前,大量在线应用网站的出现和使用也印证了这一点。我们每个人每天都会打开各种网站搜索自己感兴趣的内容或使用某一个应用,其中每个站点的功能各不相同,业务流程也各自独立,并且站点功能及版本的迭代、更新速度非常快。同时,由于大量Web应用功能及版本的快速更新,也导致各类新型Web安全问题不断出现。尽管Web安全问题的表现形式各异,但深入分析各类安全问题的成因会发现,这些安全问题有一定的共性并能通过相关的网络安全技术来加以防御和解决。
反观Web安全的学习过程,由于Web安全攻防涉及的技术、工具繁多,安全问题也表现出各种复杂的形式,学习者很容易被这些表象混淆,进入“只见树木不见森林”的误区,无法快速成长。因此,本书作者基于多年的安全研究、教学、工程实践经验,以帮助读者建立知识体系为目标,通过原理、方法、代码、实践的层层深入,使读者充分理解Web安全问题的成因、危害、关联,进而有效地保护Web系统,抵御攻击。
二、本书的主要内容本书试图整理出Web安全防护知识的体系,因此对每一类Web安全问题,都对从原理到攻防技术的演进过程加以详细的讲解。在针对安全问题的分析方面,本书从基础的漏洞环境入手,可排除不同业务环境的干扰,更聚焦于安全问题本身。这种方式有利于帮助读者在掌握每种Web安全问题的解决方案的同时,对整个Web安全防护体系建立清晰的认知。
本书主要内容共分为5部分,各部分内容如下。
部分(包括第1章):Web应用概念庞大、涉及的协议广泛,因此,此部分没有系统地介绍所有的基础内容,而是抽取了与Web安全关系密切的协议等方面的基础知识。这些知识对后续理解Web攻防技术极为关键。
第二部分(包括第2~8章):重点讲解Web应用中的基础漏洞,从用户端到服务器端依次开展分析。首先从主要攻击用户的跨站请求攻击入手,之后了解Web应用中的请求伪造攻击、针对Web应用于数据库交互产生的SQL注入攻击。再针对可直接上传各类危险文件的上传漏洞进行分析,并说明上传漏洞中常用的木马的基本原理。后对服务器端的危险应用功能(文件包含、命令执行漏洞)进行分析。此部分重点讲解上述基本漏洞的原理及攻防技术对抗方法,并针对每个漏洞的测试及防护方法的技术演进思路进行整理。
第三部分(包括第9~15章):重点讲解Web应用的业务逻辑层面的基础安全问题。Web应用基于用户管理机制来提供个性化的服务,用户的身份认证则成为安全开展Web应用的基础功能。此部分从用户的未登录状态入手,讲解用户注册行为中潜在的安全隐患。然后对用户登录过程中的安全问题进行整理,并对常见的用户身份识别技术进行原理说明。后对用户登录后的基本功能及用户权限处理方式进行讲解。
第四部分(包括第16~19章):主要讲解在实际Web站点上线之后的基础防护方式,并从Web整体应用的视角展示攻防对抗过程中的技术细节。重点针对Web服务潜在的基础信息泄漏方及对应处理方法进行总结。后提供可解决大部分问题的简单防护方案,这对安全运维有较大的用途。
第五部分(包括第20~23章):在前几部分的基础上总结Web安全防护体系建设的基本方法。本部分先从Web安全中常见的防护类设备入手,分析各类安全防护设备的特点及适用范围。之后,对目前业界权威的安全开发体系进行基本介绍,并对安全服务中的渗透测试的主要流程进行说明。后以实例的形式展示如何进行快速的代码审计。
以上每个部分的知识均为递进关系。部分和第二部分帮助读者了解Web应用中各类漏洞的原理及测试方式、防护手段等。第三部分和第四部分让读者了解业务层面和整体安全的防护方法。第五部分则从整体层间构建有效防护体系的思路。后可综合掌握Web安全防护的整体内容,这也是本书希望读者获得的阅读效果。
三、本书的读者对象本书适合所有对Web安全感兴趣的初学者以及从事安全行业的相关人员,主要包括以下几类读者:
信息安全及相关专业本科生本书以基本的漏洞为例,循序渐进地梳理攻防对抗方式及各类漏洞的危害。信息安全及相关专业学生可根据这些内容快速入门,并以此作为基础来探索信息安全更前沿的领域。
安全运维人员本书提供了大量漏洞利用特征及有效的安全运维方式,可供安全运维人员在实际工作中快速发现系统安全状况,并对安全漏洞进行基本的处理。
安全开发人员本书列举了各种漏洞的原理分析及防护方式,可帮助开发人员在Web系统的开发过程中对漏洞进行规避,进而从根源上避免Web漏洞的出现。
安全服务人员安全服务人员重点关注如何快速发现目标Web系统的安全隐患并针对问题提出处理建议。此类读者建议重点阅读本书前三部分以及后一部分的后两章,可为安全服务的工作开展提供更全面的技术支持。
攻防技术爱好者对于攻防技术爱好者来说,本书提供了体系化的Web安全基础原理,可有效丰富个人的知识储备体系。
四、如何阅读这本书本书虽然篇
反观Web安全的学习过程,由于Web安全攻防涉及的技术、工具繁多,安全问题也表现出各种复杂的形式,学习者很容易被这些表象混淆,进入“只见树木不见森林”的误区,无法快速成长。因此,本书作者基于多年的安全研究、教学、工程实践经验,以帮助读者建立知识体系为目标,通过原理、方法、代码、实践的层层深入,使读者充分理解Web安全问题的成因、危害、关联,进而有效地保护Web系统,抵御攻击。
二、本书的主要内容本书试图整理出Web安全防护知识的体系,因此对每一类Web安全问题,都对从原理到攻防技术的演进过程加以详细的讲解。在针对安全问题的分析方面,本书从基础的漏洞环境入手,可排除不同业务环境的干扰,更聚焦于安全问题本身。这种方式有利于帮助读者在掌握每种Web安全问题的解决方案的同时,对整个Web安全防护体系建立清晰的认知。
本书主要内容共分为5部分,各部分内容如下。
部分(包括第1章):Web应用概念庞大、涉及的协议广泛,因此,此部分没有系统地介绍所有的基础内容,而是抽取了与Web安全关系密切的协议等方面的基础知识。这些知识对后续理解Web攻防技术极为关键。
第二部分(包括第2~8章):重点讲解Web应用中的基础漏洞,从用户端到服务器端依次开展分析。首先从主要攻击用户的跨站请求攻击入手,之后了解Web应用中的请求伪造攻击、针对Web应用于数据库交互产生的SQL注入攻击。再针对可直接上传各类危险文件的上传漏洞进行分析,并说明上传漏洞中常用的木马的基本原理。后对服务器端的危险应用功能(文件包含、命令执行漏洞)进行分析。此部分重点讲解上述基本漏洞的原理及攻防技术对抗方法,并针对每个漏洞的测试及防护方法的技术演进思路进行整理。
第三部分(包括第9~15章):重点讲解Web应用的业务逻辑层面的基础安全问题。Web应用基于用户管理机制来提供个性化的服务,用户的身份认证则成为安全开展Web应用的基础功能。此部分从用户的未登录状态入手,讲解用户注册行为中潜在的安全隐患。然后对用户登录过程中的安全问题进行整理,并对常见的用户身份识别技术进行原理说明。后对用户登录后的基本功能及用户权限处理方式进行讲解。
第四部分(包括第16~19章):主要讲解在实际Web站点上线之后的基础防护方式,并从Web整体应用的视角展示攻防对抗过程中的技术细节。重点针对Web服务潜在的基础信息泄漏方及对应处理方法进行总结。后提供可解决大部分问题的简单防护方案,这对安全运维有较大的用途。
第五部分(包括第20~23章):在前几部分的基础上总结Web安全防护体系建设的基本方法。本部分先从Web安全中常见的防护类设备入手,分析各类安全防护设备的特点及适用范围。之后,对目前业界权威的安全开发体系进行基本介绍,并对安全服务中的渗透测试的主要流程进行说明。后以实例的形式展示如何进行快速的代码审计。
以上每个部分的知识均为递进关系。部分和第二部分帮助读者了解Web应用中各类漏洞的原理及测试方式、防护手段等。第三部分和第四部分让读者了解业务层面和整体安全的防护方法。第五部分则从整体层间构建有效防护体系的思路。后可综合掌握Web安全防护的整体内容,这也是本书希望读者获得的阅读效果。
三、本书的读者对象本书适合所有对Web安全感兴趣的初学者以及从事安全行业的相关人员,主要包括以下几类读者:
信息安全及相关专业本科生本书以基本的漏洞为例,循序渐进地梳理攻防对抗方式及各类漏洞的危害。信息安全及相关专业学生可根据这些内容快速入门,并以此作为基础来探索信息安全更前沿的领域。
安全运维人员本书提供了大量漏洞利用特征及有效的安全运维方式,可供安全运维人员在实际工作中快速发现系统安全状况,并对安全漏洞进行基本的处理。
安全开发人员本书列举了各种漏洞的原理分析及防护方式,可帮助开发人员在Web系统的开发过程中对漏洞进行规避,进而从根源上避免Web漏洞的出现。
安全服务人员安全服务人员重点关注如何快速发现目标Web系统的安全隐患并针对问题提出处理建议。此类读者建议重点阅读本书前三部分以及后一部分的后两章,可为安全服务的工作开展提供更全面的技术支持。
攻防技术爱好者对于攻防技术爱好者来说,本书提供了体系化的Web安全基础原理,可有效丰富个人的知识储备体系。
四、如何阅读这本书本书虽然篇
评论
还没有评论。