第1章 与众不同的Web 1
1.1 本章内容 1
1.2 简介 1
1.3 World Wide Web 2
1.4 Web世界的价值 4
1.5 Web和客户机—服务器 5
1.6 Web应用的一个粗略模型 7
1.6.1 Web服务器 7
1.6.2 Web客户机 8
1.6.3 网络 8
1.7 结论 9
第2章 获取目标的信息 11
2.1 本章内容 11
2.2 简介 11
2.3 攻击1:淘金 11
2.3.1 何时使用这种攻击 12
2.3.2 如何实施这种攻击 12
2.3.3 如何防范这种攻击 18
2.4 攻击2:猜测文件与目录 18
2.4.1 何时使用这种攻击 19
2.4.2 如何实施这种攻击 19
2.4.3 如何防范这种攻击 22
2.5 攻击3:其他人留下的漏洞——样例程序的缺陷 23
2.5.1 何时使用这种攻击 23
2.5.2 如何实施这种攻击 23
2.5.3 如何防范这种攻击 24
第3章 攻击客户机 25
3.1 本章内容 25
3.2 简介 25
3.3 攻击4:绕过对输入选项的限制 26
3.3.1 何时使用这种攻击 27
3.3.2 如何实施这种攻击 27
3.3.3 如何防范这种攻击 30
3.4 攻击5:绕过客户机端的验证 31
3.4.1 何时使用这种攻击 32
3.4.2 如何实施这种攻击 32
3.4.3 如何防范这种攻击 34
第4章 基于状态的攻击 37
4.1 本章内容 37
4.2 简介 37
4.3 攻击6:隐藏域 38
4.3.1 何时使用这种攻击 38
4.3.2 如何实施这种攻击 40
4.4 攻击7:CGI参数 41
4.3.3 如何防范这种攻击 41
4.4.1 何时使用这种攻击 42
4.4.2 如何实施这种攻击 42
4.4.3 如何防范这种攻击 45
4.5 攻击8:破坏cookie 45
4.5.1 何时使用这种攻击 46
4.5.2 如何实施这种攻击 46
4.5.3 如何防范这种攻击 48
4.6 攻击9:URL跳跃 48
4.6.1 何时使用这种攻击 48
4.6.2 如何实施这种攻击 49
4.6.3 如何防范这种攻击 50
4.7 攻击10:会话劫持 51
4.7.1 何时使用这种攻击 52
4.7.2 如何实施这种攻击 52
4.7.3 如何防范这种攻击 54
4.8 参考文献 55
第5章 攻击用户提交的输入数据 57
5.1 本章内容 57
5.2 简介 57
5.3 攻击11:跨站点脚本 57
5.3.2 如何实施这种攻击 59
5.3.1 何时使用这种攻击 59
5.3.3 如何防范这种攻击 63
5.4 攻击12:SQL注入 64
5.4.1 何时使用这种攻击 65
5.4.2 如何实施这种攻击 65
5.4.3 如何防范这种攻击 68
5.5 攻击13:目录遍历 69
5.5.1 何时使用这种攻击 69
5.5.2 如何实施这种攻击 69
5.5.3 如何防范这种攻击 71
6.2 简介 73
6.3 攻击14:缓冲区溢出 73
6.1 本章内容 73
第6章 基于语言的攻击 73
6.3.1 何时使用这种攻击 74
6.3.2 如何实施这种攻击 75
6.3.3 如何防范这种攻击 77
6.4 攻击15:公理化 78
6.4.1 何时使用这种攻击 79
6.4.2 如何实施这种攻击 79
6.4.3 如何防范这种攻击 81
6.5 攻击16:NULL字符攻击 81
6.5.1 何时使用这种攻击 82
6.5.3 如何防范这种攻击 83
6.5.2 如何实施这种攻击 83
第7章 获取目标的信息 85
7.1 本章内容 85
7.2 简介 85
7.3 攻击17:SQL注入II——存储过程 85
7.3.1 何时使用这种攻击 86
7.3.2 如何实施这种攻击 86
7.3.3 如何防范这种攻击 87
7.4 攻击18:命令注入 88
7.4.1 何时使用这种攻击 89
7.5 攻击19:探测服务器 90
7.4.3 如何防范这种攻击 90
7.4.2 如何实施这种攻击 90
7.5.1 何时使用这种攻击 91
7.5.2 如何实施这种攻击 92
7.5.3 如何防范这种攻击 95
7.6 攻击20:拒绝服务 96
7.6.1 何时使用这种攻击 96
7.6.2 如何实施这种攻击 97
7.6.3 如何防范这种攻击 97
7.7 参考文献 97
8.3 攻击21:伪装型加密 99
8.2 简介 99
8.1 本章内容 99
第8章 认证 99
8.3.1 何时使用这种攻击 100
8.3.2 如何实施这种攻击 101
8.3.3 如何防范这种攻击 103
8.4 攻击22:认证破坏 103
8.4.1 何时使用这种攻击 105
8.4.2 如何实施这种攻击 105
8.4.3 如何防范这种攻击 106
8.5 攻击23:跨站点跟踪 107
8.5.2 如何实施这种攻击 109
8.5.1 何时使用这种攻击 109
8.5.3 如何防范这种攻击 110
8.6 攻击24:暴力破解低强度密钥 110
8.6.1 何时使用这种攻击 112
8.6.2 如何实施这种攻击 113
8.6.3 如何防范这种攻击 113
8.7 参考文献 115
第9章 隐私 117
9.1 本章内容 117
9.2 简介 117
9.3 用户代理 118
9.4 原文 120
9.5 cookie 121
9.6 Web Bugs 123
9.7 对剪切板的存取 124
9.8 页面缓存 125
9.9 ActiveX控件 127
9.10 浏览器辅助对象 127
10.3 什么是Web服务 129
10.2 简介 129
10.1 本章内容 129
第10章 Web服务 129
10.4 XML 130
10.5 SOAP 131
10.6 WSDL 132
10.7 UDDI 132
10.8 威胁 133
10.8.1 WSDL扫描攻击 133
10.8.2 参数篡改 134
10.8.3 XPATH注入攻击 134
10.8.4 递归负载攻击 135
10.8.6 外部实体攻击 136
10.8.5 过载攻击 136
附录A 软件产业50年:质量为先 139
A.1 1950—1959年:起源 139
A.2 1960—1969年:远行 140
A.3 1970—1979年:混乱 141
A.4 1980—1989年:重建 142
A.4.1 CASE工具 142
A.4.2 形式方法 143
A.5 1990—1999年:发展 144
A.6 2000—2009年:工程化? 145
附录B 电子花店的bug 149
C.1 TextPad 155
附录C 工具 155
C.2 Nikto 156
C.3 Wikto 159
C.4 Stunnel 164
C.5 BlackWidow 165
C.6 Wget 167
C.7 cURL 169
C.8 Paros 171
C.9 SPIKEProxy 173
C.10 SSLDigger 176
C.11 大脑 177