黑客攻防技术宝典Web实战篇第2版pdf扫描版
分享到:
黑客攻防技术宝典Web实战篇第2版是探索和研究Web应用程序安全漏洞的实践指南。作者利用大量的实际案例和示例代码,详细介绍了各类Web应用程序的弱点,并深入阐述了如何针对Web应用程序进行具体的渗透测试。本书从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,最后总结书中涵盖的主题。每章后还附有习题,便于读者巩固所学内容。
第2版新增了Web应用程序安全领域近年来的发展变化新情况,并以尝试访问的链接形式提供了几百个互动式“漏洞实验室”,便于读者迅速掌握各种攻防知识与技能。适合各层次计算机安全人士和Web开发与管理领域的技术人员阅读。本书由斯图塔德、平托著。有需要的朋友欢迎来3322软件站免费下载。
ISBN:9787115283924
版次:1
商品编码:11020022
包装:平装
丛书名: 图灵程序设计丛书.网络安全系列
开本:16开
出版时间:2012-07-01
用纸:胶版纸
页数:626
——Jason Haddix,惠普公司渗透测试总监
“如果你对Web应用程序安全感兴趣,我强烈推荐本书,它实为Web安全人士必读之作。”
——Robert Wesley McGrew,McGrew安全公司研究人员
“第1版本来就是Web安全领域的扛鼎之作,第2版可谓经典之上的完善,*值得拥有!”
——Daniel Miessler,安全顾问
1.1 Web应用程序的发展历程 1
1.1.1 Web应用程序的常见功能 3
1.1.2 Web应用程序的优点 4
1.2 Web应用程序安全 4
1.2.1 “本站点是安全的” 5
1.2.2 核心安全问题:用户可提交任意输入 6
1.2.3 关键问题因素 7
1.2.4 新的安全边界 8
1.2.5 Web应用程序安全的未来 10
1.3 小结 10
第2章 核心防御机制 12
2.1 处理用户访问 12
2.1.1 身份验证 13
2.1.2 会话管理 13
2.1.3 访问控制 14
2.2 处理用户输入 15
2.2.1 输入的多样性 15
2.2.2 输入处理方法 16
2.2.3 边界确认 18
2.2.4 多步确认与规范化 20
2.3 处理攻击者 21
2.3.1 处理错误 21
2.3.2 维护审计日志 22
2.3.3 向管理员发出警报 23
2.3.4 应对攻击 24
2.4 管理应用程序 25
2.5 小结 26
2.6 问题 26
第3章 Web应用程序技术 27
3.1 HTTP 27
3.1.1 HTTP请求 27
3.1.2 HTTP响应 28
3.1.3 HTTP方法 29
3.1.4 URL 30
3.1.5 REST 31
3.1.6 HTTP消息头 31
3.1.7 cookie 33
3.1.8 状态码 33
3.1.9 HTTPS 34
3.1.10 HTTP代理 35
3.1.11 HTTP身份验证 35
3.2 Web功能 36
3.2.1 服务器端功能 36
3.2.2 客户端功能 40
3.2.3 状态与会话 46
3.3 编码方案 47
3.3.1 URL编码 47
3.3.2 Unicode编码 48
3.3.3 HTML编码 48
3.3.4 Base64编码 49
3.3.5 十六进制编码 49
3.3.6 远程和序列化框架 49
3.4 下一步 50
3.5 问题 50
第4章 解析应用程序 51
4.1 枚举内容与功能 51
4.1.1 Web抓取 51
4.1.2 用户指定的抓取 54
4.1.3 发现隐藏的内容 56
4.1.4 应用程序页面与功能路径 67
4.1.5 发现隐藏的参数 69
4.2 分析应用程序 69
4.2.1 确定用户输入入口点 70
4.2.2 确定服务器端技术 72
4.2.3 确定服务器端功能 76
4.2.4 解析受攻击面 79
4.2.5 解析Extreme Internet Shopping应用程序 80
4.3 小结 81
4.4 问题 82
第5章 避开客户端控件 83
5.1 通过客户端传送数据 83
5.1.1 隐藏表单字段 84
5.1.2 HTTP cookie 86
5.1.3 URL参数 86
5.1.4 Referer消息头 86
5.1.5 模糊数据 88
5.1.6 ASP.NET ViewState 89
5.2 收集用户数据:HTML表单 91
5.2.1 长度限制 91
5.2.2 基于脚本的确认 93
5.2.3 禁用的元素 94
5.3 收集用户数据:浏览器扩展 95
5.3.1 常见的浏览器扩展技术 96
5.3.2 攻击浏览器扩展的方法 97
5.3.3 拦截浏览器扩展的流量 97
5.3.4 反编译浏览器扩展 100
5.3.5 附加调试器 109
5.3.6 本地客户端组件 111
5.4 安全处理客户端数据 112
5.4.1 通过客户端传送数据 112
5.4.2 确认客户端生成的数据 112
5.4.3 日志与警报 113
5.5 小结 114
5.6 问题 114
第6章 攻击验证机制 115
6.1 验证技术 115
6.2 验证机制设计缺陷 116
6.2.1 密码保密性不强 116
6.2.2 蛮力攻击登录 117
6.2.3 详细的失败消息 120
6.2.4 证书传输易受攻击 122
6.2.5 密码修改功能 124
6.2.6 忘记密码功能 125
6.2.7 “记住我”功能 127
6.2.8 用户伪装功能 129
6.2.9 证书确认不完善 131
6.2.10 非唯一性用户名 131
6.2.11 可预测的用户名 132
6.2.12 可预测的初始密码 133
6.2.13 证书分配不安全 133
6.3 验证机制执行缺陷 134
6.3.1 故障开放登录机制 134
6.3.2 多阶段登录机制中的缺陷 135
6.3.3 不安全的证书存储 138
6.4 保障验证机制的安全 139
6.4.1 使用可靠的证书 140
6.4.2 安全处理证书 140
6.4.3 正确确认证书 141
6.4.4 防止信息泄露 142
6.4.5 防止蛮力攻击 143
6.4.6 防止滥用密码修改功能 144
6.4.7 防止滥用账户恢复功能 145
6.4.8 日志、监控与通知 146
6.5 小结 146
6.6 问题 147
第7章 攻击会话管理 148
7.1 状态要求 148
7.2 会话令牌生成过程中的薄弱环节 151
7.2.1 令牌有一定含义 152
7.2.2 令牌可预测 153
7.2.3 加密令牌 162
7.3 会话令牌处理中的薄弱环节 170
7.3.1 在网络上泄露令牌 170
7.3.2 在日志中泄露令牌 173
7.3.3 令牌—会话映射易受攻击 175
7.3.4 会话终止易受攻击 176
7.3.5 客户端暴露在令牌劫持风险之中 177
7.3.6 宽泛的cookie范围 178
7.4 保障会话管理的安全 180
7.4.1 生成强大的令牌 181
7.4.2 在整个生命周期保障令牌的安全 182
7.4.3 日志、监控与警报 184
7.5 小结 185
7.6 问题 185
第8章 攻击访问控制 187
8.1 常见漏洞 187
8.1.1 完全不受保护的功能 188
8.1.2 基于标识符的功能 190
8.1.3 多阶段功能 191
8.1.4 静态文件 191
8.1.5 平台配置错误 192
8.1.6 访问控制方法不安全 192
8.2 攻击访问控制 193
8.2.1 使用不同用户账户进行测试 194
8.2.2 测试多阶段过程 197
8.2.3 通过有限访问权限进行测试 199
8.2.4 测试“直接访问方法” 201
8.2.5 测试对静态资源的控制 202
8.2.6 测试对HTTP方法实施的限制 202
8.3 保障访问控制的安全 203
8.4 小结 206
8.5 问题 207
第9章 攻击数据存储区 208
9.1 注入解释型语言 208
9.2 注入SQL 210
9.2.1 利用一个基本的漏洞 211
9.2.2 注入不同的语句类型 213
9.2.3 查明SQL注入漏洞 216
9.2.4 “指纹”识别数据库 219
9.2.5 UNION操作符 220
9.2.6 提取有用的数据 224
9.2.7 使用UNION提取数据 224
9.2.8 避开过滤 226
9.2.9 二阶SQL注入 227
9.2.10 高级利用 229
9.2.11 SQL注入之外:扩大数据库攻击范围 236
9.2.12 使用SQL注入工具 238
9.2.13 SQL语法与错误参考 241
9.2.14 防止SQL注入 246
9.3 注入NoSQL 249
9.4 注入XPath 250
9.4.1 破坏应用程序逻辑 251
9.4.2 谨慎XPath注入 252
9.4.3 盲目XPath注入 252
9.4.4 查找XPath注入漏洞 253
9.4.5 防止XPath注入 254
9.5 注入LDAP 254
9.5.1 利用LDAP注入 255
9.5.2 查找LDAP注入漏洞 257
9.5.3 防止LDAP注入 258
9.6 小结 258
9.7 问题 258
第10章 测试后端组件 260
10.1 注入操作系统命令 260
10.1.1 例1:通过Perl注入 261
10.1.2 例2:通过ASP注入 262
10.1.3 通过动态执行注入 264
10.1.4 查找OS命令注入漏洞 264
10.1.5 查找动态执行漏洞 267
10.1.6 防止OS命令注入 268
10.1.7 防止脚本注入漏洞 268
10.2 操作文件路径 268
10.2.1 路径遍历漏洞 269
10.2.2 文件包含漏洞 278
10.3 注入XML解释器 279
10.3.1 注入XML外部实体 279
10.3.2 注入SOAP 281
10.3.3 查找并利用SOAP注入 283
10.3.4 防止SOAP注入 284
10.4 注入后端HTTP请求 284
10.4.1 服务器端HTTP重定向 285
10.4.2 HTTP参数注入 287
10.5 注入电子邮件 290
10.5.1 操纵电子邮件标头 290
10.5.2 SMTP命令注入 291
10.5.3 查找SMTP注入漏洞 292
10.5.4 防止SMTP注入 293
10.6 小结 294
10.7 问题 294
第11章 攻击应用程序逻辑 296
11.1 逻辑缺陷的本质 296
11.2 现实中的逻辑缺陷 297
11.2.1 例1:征求提示 297
11.2.2 例2:欺骗密码修改功能 298
11.2.3 例3:直接结算 299
11.2.4 例4:修改保险单 300
11.2.5 例5:入侵银行 302
11.2.6 例6:规避交易限制 303
11.2.7 例7:获得大幅折扣 305
11.2.8 例8:避免转义 305
11.2.9 例9:避开输入确认 306
11.2.10 例10:滥用搜索功能 308
11.2.11 例11:利用调试消息 310
11.2.12 例12:与登录机制竞赛 311
11.3 避免逻辑缺陷 312
11.4 小结 313
11.5 问题 314
......
第12章 攻击其他用户 315
第13章 攻击用户:其他技巧 366
第14章 定制攻击自动化 419
第15章 利用信息泄露 453
第16章 攻击本地编译型应用程序 466
第17章 攻击应用程序架构 477
第18章 攻击Web服务器 493
第19章 查找源代码中的漏洞 517
第20章 Web应用程序黑客工具包 550
第21章 Web应用程序渗透测试方法论 582
21.1 解析应用程序内容 584
21.1.1 搜索可见的内容 584
21.1.2 浏览公共资源 585
21.1.3 发现隐藏的内容 586
21.1.4 查找默认的内容 586
21.1.5 枚举标识符指定的功能 586
21.1.6 调试参数 587
21.2 分析应用程序 587
21.2.1 确定功能 587
21.2.2 确定数据进入点 587
21.2.3 确定所使用的技术 588
21.2.4 解析受攻击面 588
21.3 测试客户端控件 588
21.3.1 通过客户端传送数据 589
21.3.2 客户端输入控件 589
21.3.3 测试浏览器扩展组件 590
21.4 测试验证机制 592
21.4.1 了解验证机制 592
21.4.2 测试密码强度 593
21.4.3 测试用户名枚举 593
21.4.4 测试密码猜测的适应性 593
21.4.5 测试账户恢复功能 594
21.4.6 测试“记住我”功能 594
21.4.7 测试伪装功能 594
21.4.8 测试用户名唯一性 595
21.4.9 测试证书的可预测性 595
21.4.10 检测不安全的证书传输 595
21.4.11 检测不安全的证书分配 596
21.4.12 测试不安全的存储 596
21.4.13 测试逻辑缺陷 596
21.4.14 利用漏洞获取未授权访问 597
21.5 测试会话管理机制 598
21.5.1 了解会话管理机制 598
21.5.2 测试令牌的含义 599
21.5.3 测试令牌的可预测性 599
21.5.4 检查不安全的令牌传输 600
21.5.5 检查在日志中泄露的令牌 600
21.5.6 测试令牌?会话映射 601
21.5.7 测试会话终止 601
21.5.8 测试会话固定 602
21.5.9 检查CSRF 602
21.5.10 检查cookie范围 602
21.6 测试访问控件 603
21.6.1 了解访问控制要求 603
21.6.2 使用多个账户测试 604
21.6.3 使用有限的权限测试 604
21.6.4 测试不安全的访问控制方法 605
21.7 测试基于输入的漏洞 605
21.7.1 模糊测试所有请求参数 605
21.7.2 测试SQL注入 607
21.7.3 测试XSS和其他响应注入 609
21.7.4 测试OS命令注入 611
21.7.5 测试路径遍历 612
21.7.6 测试脚本注入 613
21.7.7 测试文件包含 613
21.8 测试特殊功能方面的输入漏洞 613
21.8.1 测试SMTP注入 614
21.8.2 测试本地代码漏洞 614
21.8.3 测试SOAP注入 616
21.8.4 测试LDAP注入 616
21.8.5 测试XPath注入 617
21.8.6 测试后端请求注入 617
21.8.7 测试XXE注入 617
21.9 测试逻辑缺陷 618
21.9.1 确定关键的受攻击面 618
21.9.2 测试多阶段过程 618
21.9.3 测试不完整的输入 619
21.9.4 测试信任边界 619
21.9.5 测试交易逻辑 619
21.10 测试共享主机漏洞 620
21.10.1 测试共享基础架构之间的隔离 620
21.10.2 测试使用ASP主机的应用程序之间的隔离 620
21.11 测试Web服务器漏洞 621
21.11.1 测试默认证书 621
21.11.2 测试默认内容 621
21.11.3 测试危险的HTTP方法 622
21.11.4 测试代理功能 622
21.11.5 测试虚拟主机配置不当 622
21.11.6 测试Web服务器软件漏洞 622
21.11.7 测试Web应用程序防火墙 623
21.12 其他检查 623
21.12.1 测试基于DOM的攻击 624
21.12.2 测试本地隐私漏洞 624
21.12.3 测试脆弱的SSL加密算法 625
21.12.4 检查同源策略配置 625
21.13 检查信息泄露 625
从第1版的读者反响来看,大多数读者认为本书内容较深,不太适合初学者学习。诚然,两位作者都是Web安全领域的资深专家,本书更是他们多年职业生涯的智慧结晶。因此,建议读者更多关注书中介绍的基本理论及作者考虑问题的角度,而不是具体的渗透测试方法。
应一些读者的要求,我们推出了书中问题答案的中文版,感兴趣的读者可以访问译者的博客(http://blog.sina.com.cn/s/blog_545eb7860101379s.html)或图灵社区本书页面(http://www.ituring.com.cn/book/885)。
由于本书涉及内容非常广泛,加之译者水平所限,书中难免存在疏漏甚至错误,译者在此恳请读者谅解并指正。
最后,向朱巍、刘美英等诸位编辑表示感谢,谢谢你们的无私帮助。还要感谢我的家人,感谢你们的默默支持。
石华耀
2012年5月20日
web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。可靠的信誉也非常重要,没人愿意与不安全的web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前web应用程序安全状况的可靠信息不可小视。
本章简要介绍web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。最后讨论Web应用程序安全方面的最新发展趋势,并预测其未来的发展方向。
1.1 Web应用程序的发展历程
在因特网发展的早期阶段,万维网(world.wideweb)仅由w曲站点构成,这些站点基本上是包含静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档,如图1-1所示。这种相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。创建一个w曲站点所带来的安全威胁主要与web服务器软件的(诸多)漏洞有关。攻击者入侵web站点并不能获取任何敏感信息,因为服务器上保存的信息可以公开查看。所以攻击者往往会修改服务器上的文件,以歪曲Web站点的内容.或者利用服务器的存储容量和带宽传播“非法软件”。
如今的万维网与早期的万维网已经完全不同,Web上的大多数站点实际上是应用程序(见图1.2)。它们功能强大,在服务器和浏览器之间进行双向信息传送。它们支持注册与登录、金融交易、搜索以及用户创作的内容。用户获取的内容以动态形式生成,并且往往能够满足每个用户的特殊需求。它们处理的许多信息属于私密和高度敏感的信息。因此,安全问题至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝使用这个web应用程序。
黑客攻防技术宝典Web实战篇第2版禁用于商业用途!如果您喜欢《黑客攻防技术宝典Web实战篇第2版》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
第2版新增了Web应用程序安全领域近年来的发展变化新情况,并以尝试访问的链接形式提供了几百个互动式“漏洞实验室”,便于读者迅速掌握各种攻防知识与技能。适合各层次计算机安全人士和Web开发与管理领域的技术人员阅读。本书由斯图塔德、平托著。有需要的朋友欢迎来3322软件站免费下载。
黑客攻防技术宝典Web实战篇第2版简介:
出版社: 人民邮电出版社ISBN:9787115283924
版次:1
商品编码:11020022
包装:平装
丛书名: 图灵程序设计丛书.网络安全系列
开本:16开
出版时间:2012-07-01
用纸:胶版纸
页数:626
黑客攻防技术宝典Web实战篇第2版作者简介:
Dafydd Stuttard 世界知名安全顾问、作家、软件开发人士。牛津大学博士,MDSec公司联合创始人,尤其擅长Web应用程序和编译软件的渗透测试。Dafydd以网名PortSwigger蜚声安全界,是众所周知的Web应用程序集成攻击平台Burp.Suite的开发者。Marcus.Pinto资深渗透测试专家,剑桥大学硕士,MDSec公司联合创始人。Marcus为全球金融、政府、电信、博彩、零售等行业*组织和机构提供Web应用程序渗透测试和安全防御的咨询与培训。黑客攻防技术宝典Web实战篇第2版媒体评论:
“关于黑客攻防技术,没有一本书能比这本书讲解得更为透彻和全面!”——Jason Haddix,惠普公司渗透测试总监
“如果你对Web应用程序安全感兴趣,我强烈推荐本书,它实为Web安全人士必读之作。”
——Robert Wesley McGrew,McGrew安全公司研究人员
“第1版本来就是Web安全领域的扛鼎之作,第2版可谓经典之上的完善,*值得拥有!”
——Daniel Miessler,安全顾问
黑客攻防技术宝典Web实战篇第2版 目录:
第1章 Web应用程序安全与风险 11.1 Web应用程序的发展历程 1
1.1.1 Web应用程序的常见功能 3
1.1.2 Web应用程序的优点 4
1.2 Web应用程序安全 4
1.2.1 “本站点是安全的” 5
1.2.2 核心安全问题:用户可提交任意输入 6
1.2.3 关键问题因素 7
1.2.4 新的安全边界 8
1.2.5 Web应用程序安全的未来 10
1.3 小结 10
第2章 核心防御机制 12
2.1 处理用户访问 12
2.1.1 身份验证 13
2.1.2 会话管理 13
2.1.3 访问控制 14
2.2 处理用户输入 15
2.2.1 输入的多样性 15
2.2.2 输入处理方法 16
2.2.3 边界确认 18
2.2.4 多步确认与规范化 20
2.3 处理攻击者 21
2.3.1 处理错误 21
2.3.2 维护审计日志 22
2.3.3 向管理员发出警报 23
2.3.4 应对攻击 24
2.4 管理应用程序 25
2.5 小结 26
2.6 问题 26
第3章 Web应用程序技术 27
3.1 HTTP 27
3.1.1 HTTP请求 27
3.1.2 HTTP响应 28
3.1.3 HTTP方法 29
3.1.4 URL 30
3.1.5 REST 31
3.1.6 HTTP消息头 31
3.1.7 cookie 33
3.1.8 状态码 33
3.1.9 HTTPS 34
3.1.10 HTTP代理 35
3.1.11 HTTP身份验证 35
3.2 Web功能 36
3.2.1 服务器端功能 36
3.2.2 客户端功能 40
3.2.3 状态与会话 46
3.3 编码方案 47
3.3.1 URL编码 47
3.3.2 Unicode编码 48
3.3.3 HTML编码 48
3.3.4 Base64编码 49
3.3.5 十六进制编码 49
3.3.6 远程和序列化框架 49
3.4 下一步 50
3.5 问题 50
第4章 解析应用程序 51
4.1 枚举内容与功能 51
4.1.1 Web抓取 51
4.1.2 用户指定的抓取 54
4.1.3 发现隐藏的内容 56
4.1.4 应用程序页面与功能路径 67
4.1.5 发现隐藏的参数 69
4.2 分析应用程序 69
4.2.1 确定用户输入入口点 70
4.2.2 确定服务器端技术 72
4.2.3 确定服务器端功能 76
4.2.4 解析受攻击面 79
4.2.5 解析Extreme Internet Shopping应用程序 80
4.3 小结 81
4.4 问题 82
第5章 避开客户端控件 83
5.1 通过客户端传送数据 83
5.1.1 隐藏表单字段 84
5.1.2 HTTP cookie 86
5.1.3 URL参数 86
5.1.4 Referer消息头 86
5.1.5 模糊数据 88
5.1.6 ASP.NET ViewState 89
5.2 收集用户数据:HTML表单 91
5.2.1 长度限制 91
5.2.2 基于脚本的确认 93
5.2.3 禁用的元素 94
5.3 收集用户数据:浏览器扩展 95
5.3.1 常见的浏览器扩展技术 96
5.3.2 攻击浏览器扩展的方法 97
5.3.3 拦截浏览器扩展的流量 97
5.3.4 反编译浏览器扩展 100
5.3.5 附加调试器 109
5.3.6 本地客户端组件 111
5.4 安全处理客户端数据 112
5.4.1 通过客户端传送数据 112
5.4.2 确认客户端生成的数据 112
5.4.3 日志与警报 113
5.5 小结 114
5.6 问题 114
第6章 攻击验证机制 115
6.1 验证技术 115
6.2 验证机制设计缺陷 116
6.2.1 密码保密性不强 116
6.2.2 蛮力攻击登录 117
6.2.3 详细的失败消息 120
6.2.4 证书传输易受攻击 122
6.2.5 密码修改功能 124
6.2.6 忘记密码功能 125
6.2.7 “记住我”功能 127
6.2.8 用户伪装功能 129
6.2.9 证书确认不完善 131
6.2.10 非唯一性用户名 131
6.2.11 可预测的用户名 132
6.2.12 可预测的初始密码 133
6.2.13 证书分配不安全 133
6.3 验证机制执行缺陷 134
6.3.1 故障开放登录机制 134
6.3.2 多阶段登录机制中的缺陷 135
6.3.3 不安全的证书存储 138
6.4 保障验证机制的安全 139
6.4.1 使用可靠的证书 140
6.4.2 安全处理证书 140
6.4.3 正确确认证书 141
6.4.4 防止信息泄露 142
6.4.5 防止蛮力攻击 143
6.4.6 防止滥用密码修改功能 144
6.4.7 防止滥用账户恢复功能 145
6.4.8 日志、监控与通知 146
6.5 小结 146
6.6 问题 147
第7章 攻击会话管理 148
7.1 状态要求 148
7.2 会话令牌生成过程中的薄弱环节 151
7.2.1 令牌有一定含义 152
7.2.2 令牌可预测 153
7.2.3 加密令牌 162
7.3 会话令牌处理中的薄弱环节 170
7.3.1 在网络上泄露令牌 170
7.3.2 在日志中泄露令牌 173
7.3.3 令牌—会话映射易受攻击 175
7.3.4 会话终止易受攻击 176
7.3.5 客户端暴露在令牌劫持风险之中 177
7.3.6 宽泛的cookie范围 178
7.4 保障会话管理的安全 180
7.4.1 生成强大的令牌 181
7.4.2 在整个生命周期保障令牌的安全 182
7.4.3 日志、监控与警报 184
7.5 小结 185
7.6 问题 185
第8章 攻击访问控制 187
8.1 常见漏洞 187
8.1.1 完全不受保护的功能 188
8.1.2 基于标识符的功能 190
8.1.3 多阶段功能 191
8.1.4 静态文件 191
8.1.5 平台配置错误 192
8.1.6 访问控制方法不安全 192
8.2 攻击访问控制 193
8.2.1 使用不同用户账户进行测试 194
8.2.2 测试多阶段过程 197
8.2.3 通过有限访问权限进行测试 199
8.2.4 测试“直接访问方法” 201
8.2.5 测试对静态资源的控制 202
8.2.6 测试对HTTP方法实施的限制 202
8.3 保障访问控制的安全 203
8.4 小结 206
8.5 问题 207
第9章 攻击数据存储区 208
9.1 注入解释型语言 208
9.2 注入SQL 210
9.2.1 利用一个基本的漏洞 211
9.2.2 注入不同的语句类型 213
9.2.3 查明SQL注入漏洞 216
9.2.4 “指纹”识别数据库 219
9.2.5 UNION操作符 220
9.2.6 提取有用的数据 224
9.2.7 使用UNION提取数据 224
9.2.8 避开过滤 226
9.2.9 二阶SQL注入 227
9.2.10 高级利用 229
9.2.11 SQL注入之外:扩大数据库攻击范围 236
9.2.12 使用SQL注入工具 238
9.2.13 SQL语法与错误参考 241
9.2.14 防止SQL注入 246
9.3 注入NoSQL 249
9.4 注入XPath 250
9.4.1 破坏应用程序逻辑 251
9.4.2 谨慎XPath注入 252
9.4.3 盲目XPath注入 252
9.4.4 查找XPath注入漏洞 253
9.4.5 防止XPath注入 254
9.5 注入LDAP 254
9.5.1 利用LDAP注入 255
9.5.2 查找LDAP注入漏洞 257
9.5.3 防止LDAP注入 258
9.6 小结 258
9.7 问题 258
第10章 测试后端组件 260
10.1 注入操作系统命令 260
10.1.1 例1:通过Perl注入 261
10.1.2 例2:通过ASP注入 262
10.1.3 通过动态执行注入 264
10.1.4 查找OS命令注入漏洞 264
10.1.5 查找动态执行漏洞 267
10.1.6 防止OS命令注入 268
10.1.7 防止脚本注入漏洞 268
10.2 操作文件路径 268
10.2.1 路径遍历漏洞 269
10.2.2 文件包含漏洞 278
10.3 注入XML解释器 279
10.3.1 注入XML外部实体 279
10.3.2 注入SOAP 281
10.3.3 查找并利用SOAP注入 283
10.3.4 防止SOAP注入 284
10.4 注入后端HTTP请求 284
10.4.1 服务器端HTTP重定向 285
10.4.2 HTTP参数注入 287
10.5 注入电子邮件 290
10.5.1 操纵电子邮件标头 290
10.5.2 SMTP命令注入 291
10.5.3 查找SMTP注入漏洞 292
10.5.4 防止SMTP注入 293
10.6 小结 294
10.7 问题 294
第11章 攻击应用程序逻辑 296
11.1 逻辑缺陷的本质 296
11.2 现实中的逻辑缺陷 297
11.2.1 例1:征求提示 297
11.2.2 例2:欺骗密码修改功能 298
11.2.3 例3:直接结算 299
11.2.4 例4:修改保险单 300
11.2.5 例5:入侵银行 302
11.2.6 例6:规避交易限制 303
11.2.7 例7:获得大幅折扣 305
11.2.8 例8:避免转义 305
11.2.9 例9:避开输入确认 306
11.2.10 例10:滥用搜索功能 308
11.2.11 例11:利用调试消息 310
11.2.12 例12:与登录机制竞赛 311
11.3 避免逻辑缺陷 312
11.4 小结 313
11.5 问题 314
......
第12章 攻击其他用户 315
第13章 攻击用户:其他技巧 366
第14章 定制攻击自动化 419
第15章 利用信息泄露 453
第16章 攻击本地编译型应用程序 466
第17章 攻击应用程序架构 477
第18章 攻击Web服务器 493
第19章 查找源代码中的漏洞 517
第20章 Web应用程序黑客工具包 550
第21章 Web应用程序渗透测试方法论 582
21.1 解析应用程序内容 584
21.1.1 搜索可见的内容 584
21.1.2 浏览公共资源 585
21.1.3 发现隐藏的内容 586
21.1.4 查找默认的内容 586
21.1.5 枚举标识符指定的功能 586
21.1.6 调试参数 587
21.2 分析应用程序 587
21.2.1 确定功能 587
21.2.2 确定数据进入点 587
21.2.3 确定所使用的技术 588
21.2.4 解析受攻击面 588
21.3 测试客户端控件 588
21.3.1 通过客户端传送数据 589
21.3.2 客户端输入控件 589
21.3.3 测试浏览器扩展组件 590
21.4 测试验证机制 592
21.4.1 了解验证机制 592
21.4.2 测试密码强度 593
21.4.3 测试用户名枚举 593
21.4.4 测试密码猜测的适应性 593
21.4.5 测试账户恢复功能 594
21.4.6 测试“记住我”功能 594
21.4.7 测试伪装功能 594
21.4.8 测试用户名唯一性 595
21.4.9 测试证书的可预测性 595
21.4.10 检测不安全的证书传输 595
21.4.11 检测不安全的证书分配 596
21.4.12 测试不安全的存储 596
21.4.13 测试逻辑缺陷 596
21.4.14 利用漏洞获取未授权访问 597
21.5 测试会话管理机制 598
21.5.1 了解会话管理机制 598
21.5.2 测试令牌的含义 599
21.5.3 测试令牌的可预测性 599
21.5.4 检查不安全的令牌传输 600
21.5.5 检查在日志中泄露的令牌 600
21.5.6 测试令牌?会话映射 601
21.5.7 测试会话终止 601
21.5.8 测试会话固定 602
21.5.9 检查CSRF 602
21.5.10 检查cookie范围 602
21.6 测试访问控件 603
21.6.1 了解访问控制要求 603
21.6.2 使用多个账户测试 604
21.6.3 使用有限的权限测试 604
21.6.4 测试不安全的访问控制方法 605
21.7 测试基于输入的漏洞 605
21.7.1 模糊测试所有请求参数 605
21.7.2 测试SQL注入 607
21.7.3 测试XSS和其他响应注入 609
21.7.4 测试OS命令注入 611
21.7.5 测试路径遍历 612
21.7.6 测试脚本注入 613
21.7.7 测试文件包含 613
21.8 测试特殊功能方面的输入漏洞 613
21.8.1 测试SMTP注入 614
21.8.2 测试本地代码漏洞 614
21.8.3 测试SOAP注入 616
21.8.4 测试LDAP注入 616
21.8.5 测试XPath注入 617
21.8.6 测试后端请求注入 617
21.8.7 测试XXE注入 617
21.9 测试逻辑缺陷 618
21.9.1 确定关键的受攻击面 618
21.9.2 测试多阶段过程 618
21.9.3 测试不完整的输入 619
21.9.4 测试信任边界 619
21.9.5 测试交易逻辑 619
21.10 测试共享主机漏洞 620
21.10.1 测试共享基础架构之间的隔离 620
21.10.2 测试使用ASP主机的应用程序之间的隔离 620
21.11 测试Web服务器漏洞 621
21.11.1 测试默认证书 621
21.11.2 测试默认内容 621
21.11.3 测试危险的HTTP方法 622
21.11.4 测试代理功能 622
21.11.5 测试虚拟主机配置不当 622
21.11.6 测试Web服务器软件漏洞 622
21.11.7 测试Web应用程序防火墙 623
21.12 其他检查 623
21.12.1 测试基于DOM的攻击 624
21.12.2 测试本地隐私漏洞 624
21.12.3 测试脆弱的SSL加密算法 625
21.12.4 检查同源策略配置 625
21.13 检查信息泄露 625
黑客攻防技术宝典Web实战篇第2版前言/序言:
译者序自本书第1版出版以来,Web安全状态发生了很大变化,虽然随着人们安全意识的提高,一些漏洞已经得到修复,但随着各种新技术不断涌现,特别是Web2.0、HTML5、无线互联网以及云服务的推出,Web应用程序的安全将面临更大的挑战。为帮助用户应对这些挑战,本书的两位作者对第1版的内容进行了修订,新增了约30%的内容,主要介绍Web安全领域的新趋势及大量新近出现的漏洞。从第1版的读者反响来看,大多数读者认为本书内容较深,不太适合初学者学习。诚然,两位作者都是Web安全领域的资深专家,本书更是他们多年职业生涯的智慧结晶。因此,建议读者更多关注书中介绍的基本理论及作者考虑问题的角度,而不是具体的渗透测试方法。
应一些读者的要求,我们推出了书中问题答案的中文版,感兴趣的读者可以访问译者的博客(http://blog.sina.com.cn/s/blog_545eb7860101379s.html)或图灵社区本书页面(http://www.ituring.com.cn/book/885)。
由于本书涉及内容非常广泛,加之译者水平所限,书中难免存在疏漏甚至错误,译者在此恳请读者谅解并指正。
最后,向朱巍、刘美英等诸位编辑表示感谢,谢谢你们的无私帮助。还要感谢我的家人,感谢你们的默默支持。
石华耀
2012年5月20日
黑客攻防技术宝典Web实战篇第2版精彩文摘:
第1章 Web应用程序安全与风险web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。可靠的信誉也非常重要,没人愿意与不安全的web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前web应用程序安全状况的可靠信息不可小视。
本章简要介绍web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。最后讨论Web应用程序安全方面的最新发展趋势,并预测其未来的发展方向。
1.1 Web应用程序的发展历程
在因特网发展的早期阶段,万维网(world.wideweb)仅由w曲站点构成,这些站点基本上是包含静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档,如图1-1所示。这种相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。创建一个w曲站点所带来的安全威胁主要与web服务器软件的(诸多)漏洞有关。攻击者入侵web站点并不能获取任何敏感信息,因为服务器上保存的信息可以公开查看。所以攻击者往往会修改服务器上的文件,以歪曲Web站点的内容.或者利用服务器的存储容量和带宽传播“非法软件”。
如今的万维网与早期的万维网已经完全不同,Web上的大多数站点实际上是应用程序(见图1.2)。它们功能强大,在服务器和浏览器之间进行双向信息传送。它们支持注册与登录、金融交易、搜索以及用户创作的内容。用户获取的内容以动态形式生成,并且往往能够满足每个用户的特殊需求。它们处理的许多信息属于私密和高度敏感的信息。因此,安全问题至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝使用这个web应用程序。
免责声明:
黑客攻防技术宝典Web实战篇第2版来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。黑客攻防技术宝典Web实战篇第2版禁用于商业用途!如果您喜欢《黑客攻防技术宝典Web实战篇第2版》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
黑客攻防技术宝典Web实战篇第2版pdf扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: