《黑客攻防技术宝典 Web实战篇》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(英)DafyddStuttard,MarcusPinto著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115210777
  • 页数:495 页
图书介绍:本书是一本探索和研究Web应用程序安全缺陷的实践指南,作者利用大量的实际案例、屏幕快照和示例代码对每一种弱点进行了详细的阐述。本书极其实用和清晰,以网上银行、电子商务等各种各样的Web应用程序为例,详细介绍了探测、研究其中的每一种安全缺陷的细节步骤。

第1章 Web应用程序安全与风险 1

1.1 Web应用程序的发展历程 1

1.1.1 Web应用程序的常见功能 2

1.1.2 Web应用程序的优点 3

1.2 Web应用程序安全 3

1.2.1“本站点是安全的” 3

1.2.2核心安全问题:用户可提交任意输入 5

1.2.3关键问题因素 6

1.2.4新的安全边界 7

1.2.5 Web应用程序安全的未来 8

1.3小结 8

第2章 核心防御机制 9

2.1处理用户访问 9

2.1.1身份验证 10

2.1.2会话管理 10

2.1.3访问控制 11

2.2处理用户输入 12

2.2.1输入的多样性 12

2.2.2输入处理方法 13

2.2.3边界确认 14

2.2.4多步确认与规范化 16

2.3处理攻击者 17

2.3.1处理错误 17

2.3.2维护审计日志 18

2.3.3向管理员发出警报 19

2.3.4应对攻击 19

2.4管理应用程序 20

2.5小结 21

2.6问题 21

第3章 Web应用程序技术 22

3.1 HTTP 22

3.1.1 HTTP请求 22

3.1.2 HTTP响应 23

3.1.3 HTTP方法 24

3.1.4 URL 25

3.1.5 HTTP消息头 26

3.1.6 cookie 27

3.1.7状态码 28

3.1.8 HTTPS 29

3.1.9 HTTP代理 29

3.1.10 HTTP验证 29

3.2 Web功能 30

3.2.1服务器端功能 30

3.2.2客户端功能 32

3.2.3状态与会话 35

3.3编码方案 36

3.3.1 URL编码 36

3.3.2 Unicode编码 36

3.3.3 HTML编码 37

3.3.4 Base64编码 37

3.3.5十六进制编码 38

3.4下一步 38

3.5问题 38

第4章 解析应用程序 39

4.1枚举内容与功能 39

4.1.1 Web抓取 39

4.1.2用户指定的抓取 41

4.1.3发现隐藏的内容 43

4.1.4应用程序页面与功能路径 50

4.1.5发现隐藏的参数 51

4.2分析应用程序 52

4.2.1确定用户输入进入点 52

4.2.2确定服务器端技术 53

4.2.3确定服务器端功能 58

4.2.4解析受攻击面 60

4.3小结 60

4.4问题 61

第5章 避开客户端控件 62

5.1通过客户端传送数据 62

5.1.1隐藏表单字段 62

5.1.2 HTTP cookie 64

5.1.3 URL参数 65

5.1.4 Referer消息头 65

5.1.5模糊数据 66

5.1.6 ASP.NET ViewState 67

5.2收集用户数据:HTML表单 70

5.2.1长度限制 70

5.2.2基于脚本的确认 71

5.2.3禁用的元素 73

5.3收集用户数据:厚客户端组件 74

5.3.1 Java applet 74

5.3.2 ActiveX控件 80

5.3.3 Shockwave Flash对象 84

5.4安全处理客户端数据 87

5.4.1通过客户传送数据 87

5.4.2确认客户生成的数据 88

5.4.3日志与警报 89

5.5小结 89

5.6问题 89

第6章 攻击验证机制 91

6.1验证技术 91

6.2验证机制设计缺陷 92

6.2.1密码保密性不强 92

6.2.2蛮力攻击登录 93

6.2.3详细的失败消息 95

6.2.4证书传输易受攻击 97

6.2.5密码修改功能 98

6.2.6忘记密码功能 99

6.2.7“记住我”功能 101

6.2.8用户伪装功能 102

6.2.9证书确认不完善 104

6.2.10非唯一性用户名 104

6.2.11可预测的用户名 105

6.2.12可预测的初始密码 105

6.2.13证书分配不安全 106

6.3验证机制执行缺陷 107

6.3.1故障开放登录机制 107

6.3.2多阶段登录机制中的缺陷 108

6.3.3不安全的证书存储 110

6.4保障验证机制的安全 111

6.4.1使用可靠的证书 111

6.4.2安全处理证书 111

6.4.3正确确认证书 112

6.4.4防止信息泄露 113

6.4.5防止蛮力攻击 114

6.4.6防止滥用密码修改功能 116

6.4.7防止滥用账户恢复功能 116

6.4.8日志、监控与通知 117

6.5小结 117

6.6问题 118

第7章 攻击会话管理 119

7.1状态要求 119

7.2会话令牌生成过程中的薄弱环节 122

7.2.1令牌有一定含义 122

7.2.2令牌可预测 124

7.3会话令牌处理中的薄弱环节 130

7.3.1在网络上泄露令牌 130

7.3.2在日志中泄露令牌 133

7.3.3令牌-会话映射易受攻击 135

7.3.4会话终止易受攻击 136

7.3.5客户暴露在令牌劫持风险之中 137

7.3.6宽泛的cookie范围 138

7.4保障会话管理的安全 140

7.4.1生成强大的令牌 140

7.4.2在整个生命周期保障令牌的安全 142

7.4.3日志、监控与警报 144

7.5小结 145

7.6问题 145

第8章 攻击访问控制 147

8.1常见漏洞 147

8.1.1完全不受保护的功能 148

8.1.2基于标识符的功能 149

8.1.3多阶段功能 150

8.1.4静态文件 150

8.1.5访问控制方法不安全 151

8.2攻击访问控制 151

8.3保障访问控制的安全 154

8.4小结 158

8.5问题 158

第9章 代码注入 159

9.1注入解释型语言 159

9.2注入SQL 160

9.2.1利用一个基本的漏洞 161

9.2.2避开登录 163

9.2.3查明SQL注入漏洞 164

9.2.4注入不同的语句类型 166

9.2.5 UNION操作符 168

9.2.6“指纹识别”数据库 172

9.2.7提取有用的数据 172

9.2.8 利用ODBC错误消息(仅适用于MS-SQL) 177

9.2.9避开过滤 180

9.2.10二阶SQL注入 183

9.2.11高级利用 184

9.2.12 SQL注入之外:扩大数据库攻击范围 193

9.2.13 SQL语法与错误参考 195

9.2.14防止SQL注入 200

9.3注入操作系统命令 202

9.3.1例1:通过Perl注入 203

9.3.2例2:通过ASP注入 204

9.3.3查找OS命令注入漏洞 205

9.3.4防止OS命令注入 207

9.4注入Web脚本语言 208

9.4.1动态执行漏洞 208

9.4.2文件包含漏洞 210

9.4.3防止脚本注入漏洞 211

9.5注入SOAP 212

9.5.1查找并利用SOAP注入 213

9.5.2防止SOAP注入 214

9.6注入XPath 214

9.6.1破坏应用程序逻辑 215

9.6.2谨慎XPath注入 216

9.6.3盲目XPath注入 216

9.6.4查找XPath注入漏洞 217

9.6.5防止XPath注入 218

9.7注入SMTP 218

9.7.1操纵电子邮件消息头 218

9.7.2 SMTP命令注入 219

9.7.3查找SMTP注入漏洞 221

9.7.4防止SMTP注入 222

9.8注入LDAP 222

9.8.1注入查询属性 223

9.8.2修改查询过滤器 224

9.8.3查找LDAP注入漏洞 224

9.8.4防止LDAP注入 225

9.9小结 225

9.10问题 225

第10章 利用路径遍历 227

10.1常见漏洞 227

10.2查找并利用路径遍历漏洞 228

10.2.1确定攻击目标 228

10.2.2探查路径遍历漏洞 229

10.2.3避开遍历攻击障碍 231

10.2.4利用遍历漏洞 234

10.3防止路径遍历漏洞 234

10.4小结 235

10.5问题 236

第11章 攻击应用程序逻辑 237

11.1逻辑缺陷的本质 237

11.2现实中的逻辑缺陷 238

11.2.1例1:欺骗密码修改功能 238

11.2.2例2:直接结算 239

11.2.3例3:修改保险单 240

11.2.4例4:入侵银行 241

11.2.5例5:擦除审计追踪 243

11.2.6例6:规避交易限制 244

11.2.7例7:获得大幅折扣 245

11.2.8例8:避免转义 245

11.2.9例9:滥用搜索功能 247

11.2.10例10:利用调试消息 248

11.2.11例11:与登录机制竞赛 249

11.3避免逻辑缺陷 250

11.4小结 251

11.5问题 252

第12章 攻击其他用户 253

12.1跨站点脚本 254

12.1.1反射型XSS漏洞 254

12.1.2保存型XSS漏洞 259

12.1.3基于DOM的XSS漏洞 261

12.1.4现实世界中的XSS攻击 262

12.1.5链接XSS与其他攻击 264

12.1.6 XSS攻击有效载荷 265

12.1.7 XSS攻击的传送机制 270

12.1.8查找并利用XSS漏洞 271

12.1.9 HttpOnly cookie与跨站点追踪 285

12.1.10防止XSS攻击 287

12.2重定向攻击 290

12.2.1查找并利用重定向漏洞 291

12.2.2防止重定向漏洞 294

12.3 HTTP消息头注入 294

12.3.1利用消息头注入漏洞 295

12.3.2防止消息头注入漏洞 297

12.4框架注入 298

12.4.1利用框架注入 298

12.4.2防止框架注入 299

12.5请求伪造 299

12.5.1本站点请求伪造 299

12.5.2跨站点请求伪造 301

12.6 JSON劫持 303

12.6.1 JSON 303

12.6.2攻击JSON 304

12.6.3查找JSON劫持漏洞 305

12.6.4防止JSON劫持 306

12.7会话固定 306

12.7.1查找并利用会话固定漏洞 308

12.7.2防止会话固定漏洞 309

12.8攻击ActiveX控件 309

12.8.1查找ActiveX漏洞 310

12.8.2防止ActiveX漏洞 312

12.9本地隐私攻击 312

12.9.1持久性cookie 312

12.9.2缓存Web内容 312

12.9.3浏览历史记录 313

12.9.4自动完成 313

12.9.5防止本地隐私攻击 314

12.10高级利用技巧 314

12.10.1利用Aj ax 314

12.10.2反DNS Pinning 317

12.10.3浏览器利用框架 319

12.11小结 320

12.12问题 321

第13章 定制攻击自动化 322

13.1应用定制自动化攻击 322

13.2枚举有效的标识符 323

13.2.1基本步骤 323

13.2.2探测“触点” 324

13.2.3编写攻击脚本 325

13.2.4 JAttack 326

13.3获取有用的数据 331

13.4常见漏洞模糊测试 334

13.5整合全部功能:Burp Intruder 337

13.6小结 344

13.7问题 345

第14章 利用信息泄露 346

14.1利用错误消息 346

14.1.1错误消息脚本 346

14.1.2栈追踪 347

14.1.3详尽的调试消息 348

14.1.4服务器与数据库消息 349

14.1.5使用公共信息 350

14.1.6制造详尽的错误消息 351

14.2收集公布的信息 351

14.3使用推论 352

14.4防止信息泄露 353

14.4.1使用常规错误消息 353

14.4.2保护敏感信息 354

14.4.3尽量减少客户端信息泄露 354

14.5小结 354

14.6问题 355

第15章 攻击编译型应用程序 357

15.1缓冲区溢出漏洞 357

15.1.1栈溢出 358

15.1.2堆溢出 358

15.1.3“一位偏移”漏洞 359

15.1.4查找缓冲区溢出漏洞 361

15.2整数漏洞 362

15.2.1整数溢出 362

15.2.2符号错误 363

15.2.3查找整数漏洞 363

15.3格式化字符串漏洞 364

15.4小结 365

15.5问题 366

第16章 攻击应用程序架构 367

16.1分层架构 367

16.1.1攻击分层架构 368

16.1.2保障分层架构的安全 370

16.2共享主机与应用程序服务提供商 371

16.2.1虚拟主机 372

16.2.2共享的应用程序服务 372

16.2.3攻击共享环境 373

16.2.4保障共享环境的安全 376

16.3小结 378

16.4问题 378

第17章 攻击Web服务器 379

17.1 Web服务器配置缺陷 379

17.1.1默认证书 379

17.1.2默认内容 380

17.1.3目录列表 383

17.1.4危险的HTTP方法 384

17.1.5 Web服务器作为代理服务器 385

17.1.6虚拟主机配置缺陷 387

17.1.7保障Web服务器配置的安全 387

17.2 Web服务器软件漏洞 388

17.2.1缓冲区溢出漏洞 388

17.2.2路径遍历漏洞 389

17.2.3编码与规范化漏洞 389

17.2.4查找Web服务器漏洞 391

17.2.5保障Web服务器软件的安全 392

17.3小结 393

17.4问题 393

第18章 查找源代码中的漏洞 394

18.1代码审查方法 394

18.1.1“黑盒”测试与“白盒”测试 394

18.1.2代码审查方法 395

18.2常见漏洞签名 396

18.2.1跨站点脚本 396

18.2.2 SQL注入 397

18.2.3路径遍历 397

18.2.4任意重定向 398

18.2.5 OS命令注入 399

18.2.6后门密码 399

18.2.7本地代码漏洞 399

18.2.8源代码注释 401

18.3 Java平台 401

18.3.1确定用户提交的数据 401

18.3.2会话交互 402

18.3.3潜在危险的API 402

18.3.4配置Java环境 405

18.4 ASP.NET 406

18.4.1确定用户提交的数据 406

18.4.2会话交互 407

18.4.3潜在危险的API 407

18.4.4配置ASP.NET环境 410

18.5 PHP 410

18.5.1确定用户提交的数据 411

18.5.2会话交互 412

18.5.3潜在危险的API 412

18.5.4配置PHP环境 416

18.6 Perl 418

18.6.1确定用户提交的数据 418

18.6.2会话交互 418

18.6.3潜在危险的API 419

18.6.4配置 Perl环境 420

18.7 JavaScript 421

18.8数据库代码组件 421

18.8.1 SQL注入 422

18.8.2调用危险的函数 422

18.9代码浏览工具 423

18.10小结 424

18.11问题 424

第19章 Web应用程序黑客工具包 426

19.1 Web浏览器 426

19.1.1 Intemet Explorer 426

19.1.2 Firefox 427

19.1.3 Opera 428

19.2集成测试套件 429

19.2.1工作原理 429

19.2.2特性比较 439

19.2.3拦截代理服务器替代工具 443

19.3漏洞扫描器 445

19.3.1扫描器探测到的漏洞 445

19.3.2扫描器的内在限制 447

19.3.3扫描器面临的技术挑战 448

19.3.4当前产品 449

19.3.5使用漏洞扫描器 451

19.4其他工具 451

19.4.1 Nikto 451

19.4.2 Hydra 452

19.4.3定制脚本 452

19.5小结 454

第20章 Web应用程序渗透测试方法论 456