第1章 什么是Web安全 1
1.1 Web安全的发展历程 2
1.1.1 Web安全概念的提出与发展 2
1.1.2 中国Web安全的发展历程 3
1.1.3 当前Web安全的发展现状 5
1.2 Web应用程序中存在的风险及预防 9
1.2.1 Web应用程序的安全套接层(SSL)应用 9
1.2.2 Web应用程序安全的核心问题 12
1.2.3 Web应用程序中存在的安全风险 16
1.2.4 Web应用程序安全的预防及发展趋势 18
1.3 小结 21
技巧与问答 22
第2章 Web应用程序的安全剖析 23
2.1 Web应用程序使用的通信协议——HTTP协议 24
2.1.1 什么是超文本传输协议HTTP 24
2.1.2 统一资源定位器——URL 25
2.1.3 HTTP请求 25
2.1.4 HTTP响应 28
2.1.5 HTTP消息报头 31
2.1.6 利用Telnet观察HTTP协议的通信过程 35
2.1.7 HTTP协议相关技术补充 37
2.2 Web功能及使用技术 39
2.2.1 Web服务器端功能 39
2.2.2 Web客户端功能 45
2.2.3 会话与状态 49
2.3 Web应用程序的内容与功能 49
2.3.1 抓取站点内容——网络爬虫介绍 49
2.3.2 Wireshark抓包步骤详解 51
2.3.3 Web应用程序的传递参数解析 54
2.4 小结 56
技巧与问答 56
第3章 对Web应用程序入侵及防范技术 60
3.1 轻而易举实现的Web攻击——Metasploit攻击 61
3.1.1 Metasploit环境的搭建与安装 61
3.1.2 Metasploit使用教程详解 65
3.2 让用户自动上钩的Web攻击——欺骗攻击 67
3.2.1 常见的欺骗攻击解析 67
3.2.2 经典欺骗攻击解析——网络钓鱼攻击 72
3.2.3 网络钓鱼攻击技术详解 73
3.2.4 网络钓鱼攻击的日常防范 74
3.3 Web攻击的“隐形外衣”——日志逃避 75
3.4 应用于Web应用程序的防范技术 77
3.4.1 适用于任何应用程序的防范技术 77
3.4.2 应用于IIS的防范技术 78
3.4.3 应用于Apache的防范技术 82
3.4.4 应用于PHP的防范技术 85
3.5 小结 89
技巧与问答 89
第4章 利用验证机制漏洞入侵Web及防范技术 92
4.1 Web验证机制实现技术——SSL身份验证 93
4.1.1 SSL身份验证产生背景 93
4.1.2 SSL身份验证协议安全机制 93
4.1.3 利用非对称密钥算法保证密钥本身的安全 96
4.1.4 利用PKI保证公钥的真实性 96
4.1.5 SSL验证协议工作过程 97
4.1.6 Web应用程序应用SSL验证机制 100
4.2 Web验证机制存在的漏洞 101
4.2.1 用户名和密码可以进行预测 101
4.2.2 重置密码和忘记密码漏洞 102
4.2.3 对验证登录的暴力破解攻击 106
4.2.4 对用户密码强度不进行控制 106
4.2.5 对网络安全证书进行攻击 109
4.3 对验证机制漏洞进行防范 111
4.3.1 设置安全可靠的证书 112
4.3.2 对密码重置和忘记密码功能进行控制 113
4.3.3 对密码设置强度进行控制 114
4.3.4 采用多重安全机制实现多因素验证 116
4.4 小结 118
技巧与问答 118
第5章 利用访问控制漏洞入侵Web及防范技术 121
5.1 访问控制模型有哪些 122
5.1.1 自主访问控制模型 124
5.1.2 强制访问控制模型 125
5.1.3 基于角色的访问控制模型 128
5.1.4 基于任务的访问控制模型 130
5.1.5 基于对象的访问控制模型 132
5.1.6 信息流模型 133
5.2 如何实现访问控制机制 134
5.2.1 访问控制的实现机制 134
5.2.2 访问控制表 134
5.2.3 访问控制矩阵 135
5.2.4 访问控制能力列表 135
5.2.5 访问控制标签列表 136
5.2.6 访问控制实现的具体类别 137
5.3 访问控制的授权与审计 137
5.3.1 授权行为 137
5.3.2 信任模型 138
5.3.3 信任管理系统 140
5.3.4 审计跟踪概述 141
5.3.5 审计内容 141
5.4 对访问控制的攻击方法 142
5.4.1 使用其他账户访问应用程序 142
5.4.2 直接访问服务器API端方法的请求 143
5.4.3 URL直接访问Web程序中的静态资源 143
5.4.4 利用HTTP平台级控制的漏洞进行入侵 143
5.5 对访问控制进行安全防范 144
5.5.1 制定安全策略 144
5.5.2 安全级别与访问控制 146
5.6 小结 147
技巧与问答 148
第6章 利用会话管理漏洞入侵Web及防范技术 150
6.1 Web应用程序会话状态 151
6.2 生成会话令牌过程中的漏洞 155
6.2.1 结构化令牌的组成存在漏洞 155
6.2.2 令牌含义的可预测性 156
6.2.3 对令牌的算法存在漏洞 158
6.3 处理会话令牌过程中的漏洞 163
6.3.1 日志记录导致的令牌泄露 163
6.3.2 网络传送导致的令牌泄露 164
6.3.3 会话管理机制存在各种漏洞 167
6.3.4 不能提供有效会话终止功能 167
6.3.5 向应用程序客户端用户发动攻击 169
6.4 对会话管理进行安全防范 169
6.4.1 设置最有效的令牌生成机制 170
6.4.2 保障令牌使用过程中的安全 171
6.4.3 使用日志、监控等辅助功能 173
6.5 小结 173
技巧与问答 174
第7章 利用编程方式进行Web入侵及防范技术 178
7.1 什么是木马 179
7.1.1 木马的工作原理 179
7.1.2 木马的发展演变 179
7.1.3 木马的组成与分类 180
7.2 木马编写的两种实现方法 182
7.2.1 基于ICMP的木马编写步骤详解 182
7.2.2 基于Delphi的木马编写步骤详解 185
7.3 常见的木马伪装方式 190
7.3.1 解析木马的伪装方式 190
7.3.2 CHM木马伪装方式 191
7.3.3 EXE捆绑机伪装方式 195
7.3.4 自解压捆绑木马伪装方式 199
7.4 Web安全双刃剑——计算机扫描技术 201
7.4.1 实现文件目录扫描的方法 201
7.4.2 实现进程扫描的方法 203
7.4.3 实现主机的端口状态扫描的方法 204
7.5 使用木马清除软件进行安全防范 205
7.5.1 在“Windows进程管理器”中管理进程 205
7.5.2 使用“木马清道夫”清除木马 207
7.5.3 使用“木马清除专家”清除木马 210
7.6 小结 213
技巧与问答 213
第8章 数据存储区的入侵及防范技术 217
8.1 什么是SQL注入攻击 218
8.1.1 实现SQL注入攻击的基本条件 219
8.1.2 注入攻击的突破口——寻找攻击入口 222
8.1.3 决定提交变量参数——SQL注入点类型 223
8.1.4 决定注入攻击方式——目标数据库类型 224
8.2 常见的注入工具 226
8.2.1 Domain(明小子)注入工具使用详解 226
8.2.2 NBSI注入工具使用详解 229
8.2.3 啊D注入工具使用详解 231
8.3 XPath注入攻击 233
8.3.1 什么是XPath 233
8.3.2 保存用户信息的XML 235
8.3.3 实现XPath注入的JAVA登录验证源代码 236
8.3.4 简单模拟攻击 237
8.4 LDAP注入攻击 237
8.4.1 LDAP注入攻击介绍 237
8.4.2 LDAP注入攻击中的AND注入 238
8.4.3 LDAP注入攻击中的OR注入 239
8.5 mongodb注入攻击 239
8.5.1 什么是mongodb注入 239
8.5.2 注入攻击步骤详解 241
8.5.3 注入攻击经典案例解析 245
8.6 SQL注入攻击的防范 247
8.7 小结 249
技巧与问答 249
第9章 数据库入侵及防范技术 251
9.1 Web数据库漏洞类型 252
9.1.1 脚本漏洞的头号撒手锏——数据库下载漏洞 252
9.1.2 瞬杀——暴库漏洞 253
9.2 什么是数据库技术 254
9.2.1 动态服务器页面与ActivteX数据对象介绍 254
9.2.2 存取数据库的实现——ADO对象 256
9.2.3 如何通过编程实现数据库连接 257
9.3 数据库下载漏洞的攻击详解 258
9.3.1 Web网站的搭建步骤 258
9.3.2 数据库下载漏洞的攻击流程 260
9.3.3 Web网站数据库的下载流程 263
9.3.4 数据库下载漏洞的防范技术 264
9.4 暴库漏洞的攻击详解 266
9.4.1 conn.asp暴库法介绍 266
9.4.2 暴库漏洞——%5c暴库法 267
9.4.3 暴库攻击的防范技术 273
9.5 小结 274
技巧与问答 275
第10章 利用C00kies攻击及防范技术 278
10.1 Cookies技术详解 279
10.1.1 Cookies基础知识 279
10.1.2 Cookies高级知识 281
10.1.3 Cookies最佳实践 283
10.2 Cookies欺骗攻击 290
10.2.1 Cookies信息存在的漏洞 290
10.2.2 搜索目标计算机中的Cookies信息——IECookiesView工具 292
10.2.3 如何利用Cookies欺骗入侵网站 293
10.3 案例详解——Cookies欺骗入侵网站 296
10.4 如何利用Cookies欺骗实现上传病毒文件 299
10.4.1 “L-Blog中的Cookies欺骗漏洞分析 299
10.4.2 防范Cookies欺骗技术详解 303
10.5 Cookies欺骗的防范措施与技术 303
10.5.1 删除Cookies记录 303
10.5.2 更改Cookies文件的保存位置 305
10.6 小结 306
技巧与问答 306
第11章 利用文件上传漏洞的攻击及防范技术 309
11.1 什么是文件上传漏洞 310
11.1.1 文件上传漏洞的基本原理 310
11.1.2 如何实现文件上传漏洞攻击 311
11.1.3 如何实现绕过文件上传检查功能 313
11.2 文件上传功能中存在的漏洞 313
11.2.1 IIS文件解析问题 313
11.2.2 Apache文件解析问题 314
11.2.3 PHP CGI路径解析问题 315
11.2.4 如何利用上传文件实现“钓鱼” 315
11.3 上传漏洞与目录遍历攻击 316
11.3.1 文件上传漏洞 317
11.3.2 文件下载漏洞(目录遍历攻击) 319
11.4 文件上传漏洞防御 320
11.4.1 系统开发阶段的防御 321
11.4.2 系统运行阶段的防御 321
11.4.3 安全设备的防御 321
11.5 小结 322
技巧与问答 322
第12章 实现XSS(跨站脚本攻击)及防范技术 326
12.1 XSS攻击的3种类型 327
12.1.1 什么是反射型XSS攻击 328
12.1.2 什么是存储型XSS攻击 328
12.1.3 基于DOM的XSS攻击 330
12.2 XSS攻击实例详解 331
12.2.1 XSS攻击的主要途径 331
12.2.2 XSS攻击传送机制类型 332
12.2.3 XSS跨站脚本攻击过程 334
12.3 XSS漏洞利用 337
12.3.1 窃取Cookies 337
12.3.2 渗透路由器 338
12.3.3 读取本地文件 339
12.3.4 Hacking Home Page 339
12.3.5 跨站中的“溢出攻击” 340
12.3.6 XSS Worm 340
12.3.7 DDOS攻击 340
12.4 实现XSS防范技术 341
12.4.1 XSS漏洞的查找与检测 341
12.4.2 HttpOnly防止劫取Cookies 343
12.4.3 输入检查 344
12.4.4 输出检查 344
12.4.5 处理富文体 346
12.4.6 防御DOM Based XSS 346
12.4.7 网站如何应对XSS攻击 347
12.5 小结 348
技巧与问答 348
第13章 攻击Web服务器及防范技术 351
13.1 Web服务器面临的攻击 352
13.1.1 缓冲区溢出 352
13.1.2 目录遍历 353
13.1.3 脚本权限 353
13.1.4 目录浏览 354
13.1.5 默认示例 355
13.1.6 其他服务 355
13.2 Web服务器隐藏漏洞 355
13.2.1 Web服务器常见的8种安全漏洞 356
13.2.2 IIS 5.x/6.0/7.0解析漏洞 357
13.2.3 IIS 8服务器上的隐藏漏洞 358
13.2.4 Nginx服务器畸形解析漏洞 359
13.2.5 Apache解析漏洞 360
13.2.6 Web服务器其他漏洞 361
13.3 Web服务器常用防护工具 362
13.3.1 第三方安全产品 362
13.3.2 Web服务器漏洞扫描工具 363
13.4 Web服务器安全措施 366
13.4.1 Web服务器安全机制 367
13.4.2 Web服务器维护人员守则 367
13.4.3 Web服务器的加固 368
13.4.4 保护公开Web服务器 368
13.4.5 保护Web服务器的6点计划及其他细节 371
13.5 企业级Web服务器安全主动防御措施 374
13.5.1 在编写代码时就要进行漏洞测试 374
13.5.2 对Web服务器进行持续的监控 375
13.5.3 设置蜜罐——将攻击者引向错误的方向 375
13.5.4 专人对Web服务器的安全性进行测试 376
13.6 小结 376
技巧与问答 377
第14章 Web入侵及防范技术 379
14.1 Web入侵技术 380
14.1.1 SQL注入漏洞的入侵 380
14.1.2 ASP上传漏洞技术 381
14.1.3 网站旁注入侵技术 381
14.1.4 提交一句话木马的入侵方式 381
14.1.5 论坛漏洞利用入侵方式 381
14.1.6 Google HACKing技术 382
14.1.7 Web入侵实例 383
14.2 利用手动的方式来防范基于Web的入侵 383
14.2.1 安装补丁/安装杀毒软件 383
14.2.2 设置端口的安全保护功能 384
14.2.3 目录的安全设置 384
14.2.4 IIS控制账号的权限分配 385
14.2.5 注入漏洞的修补以及上传文件类型的限制 385
14.2.6 SQL权限的安全设置 385
14.3 安全软件防御Web攻击——入侵检测技术 387
14.3.1 入侵检测概述 387
14.3.2 入侵检测的信息来源 387
14.4 入侵检测系统详解 388
14.4.1 基于主机的入侵检测系统 388
14.4.2 基于网络的入侵检测系统 390
14.4.3 基于漏洞的入侵检测系统 392
14.5 萨客嘶入侵检测系统 396
14.6 入侵防御系统架构的设计和测试结果 400
14.6.1 防火墙及其局限性 400
14.6.2 入侵检测系统及其局限性 401
14.6.3 防火墙与入侵检测联动防御系统设计 401
14.7 小结 401
技巧与问答 402
第15章 Web框架安全 404
15.1 现代Web框架的安全薄弱点 405
15.1.1 代码调度 405
15.1.2 统一化逻辑处理 406
15.1.3 常见代码高度封装 407
15.1.4 脚手架功能 409
15.2 Web框架与CSRF防御 410
15.2.1 CSRF攻击原理详解 410
15.2.2 CSRF的防御策略 412
15.2.3 CSRF实例——Java代码实现 414
15.2.4 如何选择合适的CSRF防御方法 417
15.3 Web框架与模板引擎 418
15.3.1 什么是模板引擎 419
15.3.2 针对现代Web框架的新型命令执行——模板引擎注入 420
15.3.3 模板注入之方法论 421
15.3.4 如何利用模板引擎漏洞 423
15.4 WebService安全框架 424
15.4.1 生存期 424
15.4.2 异步调用 425
15.4.3 缓存 425
15.4.4 保持状态 426
15.4.5 SoapHeader 426
15.4.6 异常 428
15.5 Web框架自身安全 429
15.5.1 Web框架安全的功能 430
15.5.2 Web框架安全实现 430
15.6 小结 433
技巧与问答 434
第16章 时下最新技术安全解析——HTML5安全 436
16.1 HTML5基础详解 437
16.1.1 什么是HTML5 437
16.1.2 HTML5新特性 437
16.1.3 HTML5安全性分析 439
16.2 HTML5安全风险详解 440
16.2.1 CORS攻击详解 440
16.2.2 WebStorage攻击详解 444
16.2.3 WebSQL攻击详解 446
16.2.4 WebWorker攻击详解 448
16.2.5 WebSocket攻击详解 449
16.2.6 劫持攻击详解 451
16.2.7 API攻击详解 454
16.2.8 新标签攻击详解 455
16.3 HTML5对安全的改进 456
16.3.1 iframe少箱 456
16.3.2 CSP内容安全策略 456
16.3.3 XSS过滤器 457
16.4 讨论:HTML5能否替代Flash增强Web安全性 457
16.5 小结 461
技巧与问答 461
第17章 Web安全新领域——Wi-Fi安全攻防 465
17.1 Wi-Fi基础知识简介 466
17.1.1 Wi-Fi的通信原理 466
17.1.2 Wi-Fi的主要功能 466
17.1.3 Wi-Fi的优势 468
17.1.4 Wi-Fi与蓝牙互补 469
17.2 智能手机Wi-Fi连接 470
17.2.1 Android手机Wi-Fi连接 470
17.2.2 iPhone手机Wi-Fi连接 471
17.3 Wi-Fi密码破解及防范 472
17.3.1 使用软件破解Wi-Fi密码及防范措施 472
17.3.2 使用抓包工具破解Wi-Fi密码 477
17.4 Wi-Fi攻击方式 479
17.4.1 Wi-Fi攻击之一——钓鱼陷阱 480
17.4.2 Wi-Fi攻击之二——陷阱接入点 480
17.4.3 Wi-Fi攻击之三——攻击无线路由器 480
17.4.4 Wi-Fi攻击之四——内网监听 480
17.4.5 Wi-Fi攻击之五——劫机 481
17.5 Wi-Fi安全防范措施 481
17.5.1 日常使用五大安全建议 482
17.5.2 Wi-Fi安全设置 482
17.6 小结 483
技巧与问答 483
第18章 企业Web应用安全计划——全计划 487
18.1 开发的设计和需求阶段——威胁建模解析 488
18.1.1 什么是威胁建模 488
18.1.2 为什么使用威胁建模 489
18.1.3 威胁建模——主要概念 490
18.1.4 Web应用程序安全框架 491
18.1.5 威胁建模——构建方法 492
18.2 应用最关键部位——代码评审 493
18.2.1 代码评审的必要性 493
18.2.2 高效代码审查的10个经验 494
18.2.3 高效代码审查实用工具——Bitbucket 496
18.3 企业网络安全防护案例——Web安全解决方案 502
18.3.1 企业Web安全挑战 502
18.3.2 企业Web安全解决方案 503
18.3.3 专业网络安全防护方案优势 503
18.4 构建企业Web安全的5种防护 505
18.4.1 每一层都可能存在安全漏洞 505
18.4.2 利用IPS构建一个立体的Web防护网 506
18.4.3 选购IPS时要选品牌、看技术实力 506
18.4.4 选购IPS时需要关注其涉及的层面 507
18.4.5 根据Web服务器的规模选择不同规格的产品 507
18.5 “互联网安全+”企业如何选择Web应用防火墙 508
18.5.1 使用Web应用防火墙的必要性 508
18.5.2 如何选择合适的Web应用防火墙 509
18.6 小结 510
技巧与问答 510