第一部分 电子商务的天地 8
第1章 Web语言:21世纪的巴比伦 8
引言 8
目录 8
Web语言 9
HTML 9
动态HTML(DHTML) 11
XML 11
Perl 13
XHTML 13
PHP 16
ColdFusion 18
ASP 20
CGI 25
Java 28
小结 38
Web服务器 39
Apache 39
引言 39
第2章 Web和数据库服务器 39
Microsoft IIS 44
数据库服务器 51
Microsoft SQL Server 52
Oracle 58
小结 66
第3章 购物车和支付网关 67
引言 67
商店的演变 68
电子购物 70
购物车系统 71
电子购物车的功能和存在时间 71
收集、分析和比较所选商品 72
留意总成本 72
改变主意 72
处理购买 72
购物车应用程序的实现 73
产品目录 74
会话管理 74
DCShop购物车 75
Carello购物车 75
数据库接口连接 75
拙劣实现的购物车示例 75
与支付网关的集成 75
Hassan Consulting的购物车 76
Cart32和其他几种购物车 76
处理付款 76
确定订单 76
克服信用卡欺骗的新方法 77
付款处理系统概述 77
执行订单和生成发票 77
验证和欺骗保护 77
付款方式 77
订单确认页面 79
支付网关接口 79
交易数据库接口 80
与支付网关接口——一个示例 80
存储用户简介 83
临时信息 83
SSL 83
集成 83
付款系统实现问题 83
购物车和支付网关的低效集成造成的安全漏洞 84
PayPal——使个人接受电子付款 84
小结 85
第4章 HTTP和HTTPS:用于破解的协议 86
引言 86
Web协议 86
HTTP 87
HTTPS(建立在SSL技术之上的HTTP) 93
小结 96
第5章 URL:Web黑客之剑 97
引言 97
URL结构 98
Web黑客哲学 99
URL和参数传递 100
URL编码 101
元字符 102
在URL串中指定特殊字符 103
元字符和输入验证 103
Unicode编码 104
Acme Art公司,破解 104
滥用URL编码 105
Unicode编码和红色代码的Shell代码 105
Unicode的漏洞 106
双解码或者多余解码漏洞 107
HTML表单 109
剖析HTML表单 110
输入元素 111
通过GET和POST的参数传递 112
小结 117
第二部分 解读URL 121
第6章 Web的工作原理 121
引言 121
Web应用程序的组成部分 121
前端Web服务器 123
Web应用程序执行环境 124
数据库服务器 124
本地应用程序处理环境 125
编写组件 125
Web服务器API和插件程序 126
URL映射和内部代理 126
使用后端应用程序服务器代理 126
示例 127
与数据库的连接 130
最巧妙的破解 130
使用本地数据库API 132
示例 132
使用ODBC 133
使用JDBC 134
专用Web应用程序服务器 134
从URL中识别Web应用程序组件 134
技术识别基础 135
示例 136
更多示例 138
技术识别的高级技巧 140
示例 140
识别数据库服务器 141
小结 144
规则2:防止错误信息发往浏览器 144
对策 144
规则1:使HTTP报头中的信息泄露减到最少 144
第7章 体会言外之意 145
引言 145
通过HTML的信息泄露 146
浏览器不会显示的内容 146
Netscape Navigator—View | Page Source 146
Internet Explorer—查看|源文件 148
应寻找的线索 149
HTML注释 149
修改历史 150
开发者或作者的详细情况 150
对应用程序其他区域的交叉引用 150
提示和占位符 150
Web应用程序服务器插入的注释 151
添加注释标签使其不起作用的老代码 152
内部和外部超链接 152
UBE、UCE、垃圾邮件和广告邮件 153
电子邮件地址和用户名 153
关键字和Meta标签 154
隐藏字段 154
客户端脚本 155
自动源代码过滤技术 156
使用wget 156
使用grep 159
Sam Spade、Black Widow和Teleport Pro 160
小结 161
HTML和站点链接分析 162
第8章 站点链接分析 162
引言 162
站点链接分析方法论 163
第一步:爬行Web站点 164
人工爬行站点 164
HTTP响应报头详解 164
一些用于站点链接分析的常用工具 165
第一步结束 168
爬行程序和重定向 169
第二步:在应用程序结构中创建逻辑组 170
第二步结束 172
第三步:分析每种Web资源 173
1.扩展名分析 173
2.URL路径分析 174
3.会话分析 174
4.表单确定 175
5.Applet和对象识别 175
6.客户端脚本评价 176
7.注释和电子邮件地址分析 176
第三步结束 176
第四步:编制Web资源目录 177
小结 178
第三部分 他们是如何做到的? 181
第9章 计算机涂改 181
引言 181
涂改Acme旅游公司的Web站点 181
映射目标网络 184
反向访问代理服务器 185
暴力破解HTTP身份验证 188
目录浏览 191
上传涂改过的页面 194
哪里出差错了呢? 197
HTTP暴力破解工具 198
Brutus 198
WebCracker4.0 199
关闭反向代理 201
针对Acme旅游公司攻击的对策 201
采用更强有力的HTTP身份验证密码 202
关闭目录浏览 202
小结 203
第10章 电子商店盗窃行为 204
引言 204
构建电子商店 205
数据库 206
收款台 206
放在一起 206
商店前端 206
购物车 206
电子商店的发展 207
抢劫Acme Fashions公司 208
建立Acme的电子商店 208
找出问题 209
避开客户端验证 215
使用搜索引擎寻找隐藏字段 215
修改后的系统面临一个新的问题 220
彻底修改www.acme-fashions.com 220
事后的调查分析和进一步的对策 225
带有远程命令执行的购物车 225
小结 226
第11章 数据库访问 228
引言 228
直接的SQL攻击 228
一个二手汽车经销商被入侵 230
输入验证 231
小结 236
对策 236
第12章 Java:远程命令执行 237
引言 237
Java驱动的技术 238
Java应用程序服务器的体系结构 239
攻击Java Web服务器 240
识别Java应用程序服务器的漏洞 241
示例:在线商店交易门户 241
调用FileServlet 244
加固Java Web服务器 252
对策 252
其他概念上的应对措施 253
小结 254
第13章 假冒 255
引言 255
会话劫持:被盗的身份和未按时赴约的约会 255
5月5日,7:00—Alice的住所 255
8:30—Alice的工作场所 256
10:00—Bob的办公室 257
11:00—Bob的办公室 260
12:30—Alice的办公室 262
会话劫持 264
21:30—Bertolini意大利餐馆 264
会话劫持攻击的事后处理 265
应用程序状态图 265
HTTP协议和会话跟踪 266
无状态应用程序与有状态应用程序 268
在Unix平台上使用Netscape浏览器控制Cookie 268
Cookie和隐藏字段 270
Cookie 270
隐藏字段 270
实现会话和状态跟踪 270
会话标识符应该惟一 271
会话标识符应该不可猜测 271
会话标识符应该是独立的 271
会话标识符应该与客户端连接进行映射 271
小结 272
引言 273
示例 273
第14章 缓冲区溢出:动态方式 273
缓冲区溢出 274
缓冲区溢出:最简单的形式 275
缓冲区溢出:示例 279
善后的对策 283
小结 284
引言 287
Netcat 287
第15章 Web攻击:自动化工具 287
第四部分 高级Web技巧 287
Whisker 289
暴力破解 290
Brutus 292
Achilles 296
Cookie Pal 298
Teleport Pro 307
安全性建议 308
小结 308
2000年1月26日 309
红色代码蠕虫 309
2001年6月18日:首次攻击 309
第16章 蠕虫 309
引言 309
2001年7月12日 310
2001年7月19日 311
2001年8月4日 312
尼姆达蠕虫 313
防止蠕虫的发展 314
反抗和回应 314
小结 315
IDS基本知识 316
第17章 击败IDS 316
引言 316
网络IDS 317
基于主机的IDS 317
IDS的准确性 317
通过IDS 318
安全的入侵——通过SSL入侵 318
示例 319
通过SSL将攻击管道化 320
通过SSL进行入侵检测 321
探测SSL传输 322
多形态URL 324
十六进制编码法 326
非法Unicode/冗余编码法 326
添加虚假路径 327
插入斜线-点-斜线字符串 327
使用非标准的路径分隔符 327
使用多个斜线 328
混合使用多种技术 328
产生误报攻击 328
漏洞检查器中的IDS躲避 329
潜在的对策 330
SSL破译 330
URL解码 330
小结 331
附录A Web和数据库端口列表 332
附录B HTTP/1.1和HTTP/1.0的方法与字段定义 334
附录C 远程命令执行欺骗表 337
附录D 源代码、文件和目录泄漏欺骗表 338
附录E 资源和链接 343
附录F Web相关工具 344