具体描述
本书由世界顶尖级黑客打造,细致讲解了IE、Firefox、Chrome等主流浏览器及其扩展和应用上的安全问题和漏洞,介绍了大量的攻击和防御技术,具体内容包括:初始控制,持续控制,绕过同源策略,攻击用户、浏览器、扩展、插件、Web应用、网络,等等。它是你在实践中的必读参考指南,对实际开发具有重要指导作用,能够助你在浏览器安全领域有所作为。
作者简介
作者简介:
Wade Alcorn
开源浏览器漏洞利用框架BeEF之父。
Christian Frichot
BeEF首席开发人员,Perth Open Web Application Security Project负责人。
Michele Orrù
BeEF核心开发人员,漏洞研究专家,社会工程专家。
译者简介:
本书译者均来自由月影领衔的奇虎360最大前端团队——奇舞团(75team)。
李松峰
资深技术翻译,译有《JavaScript高级程序设计》《简约至上:交互式设计四策略》等数十部技术和设计书籍,现为奇舞团高级开发工程师、《奇舞周刊》总编、360公司W3C AC代表。
孟之杰
奇舞团高级工开发程师,热爱前端,热爱翻译,具有Geek精神,喜欢折腾各种有意思的东西。
审校者简介:
审校者均来自奇虎360 0KEE TEAM,即信息安全部Web攻防团队。该团队致力于保护360公司全线业务安全。
王珂
360Web攻防团队0KEE TEAM成员,具有多年攻防渗透经验,专注于研究浏览器与前端漏洞,是“360护心镜”的作者。
李响
360Web攻防团队0KEE TEAM成员,拥有多年攻防渗透经验,长期专注安全应急响应攻击溯源研究,具有丰富的甲方安全经验。
常春峰
360Web攻防团队0KEE TEAM成员。曾就职360网站安全团队,担任过库带计划、网站安全检测等项目的安全工作,专注于安全攻防、漏洞挖掘以及自动化等领域,具有丰富的甲方和乙方的安全经验。
叶仁旭
360Web攻防团队0KEE TEAM成员,多年信息安全领域研究经历,长期投身于自动化安全扫描技术、安全防御技术、安全体系建设等方面的研究,有丰富的实践积累,BlackHat 2016演讲者。
李福(Darker)
360Web攻防团队0KEE TEAM成员,知名白帽子,拥有多年安全实战经验,擅长渗透测试与漏洞挖掘,对各种漏洞利用及场景有独到见解,BlackHat 2016演讲者。
目录信息
1.1 首要问题 1
1.2 揭密浏览器 3
1.2.1 与Web应用休戚与共 3
1.2.2 同源策略 3
1.2.3 HTTP首部 4
1.2.4 标记语言 4
1.2.5 CSS 5
1.2.6 脚本 5
1.2.7 DOM 5
1.2.8 渲染引擎 5
1.2.9 Geolocation 6
1.2.10 Web 存储 7
1.2.11 跨域资源共享 7
1.2.12 HTML5 8
1.2.13 隐患 9
1.3 发展的压力 9
1.3.1 HTTP首部 9
1.3.2 反射型XSS过滤 11
1.3.3 沙箱 11
1.3.4 反网络钓鱼和反恶意软件 12
1.3.5 混入内容 12
1.4 核心安全问题 12
1.4.1 攻击面 13
1.4.2 放弃控制 14
1.4.3 TCP协议控制 15
1.4.4 加密通信 15
1.4.5 同源策略 15
1.4.6 谬论 16
1.5 浏览器攻防方法 16
1.5.1 初始化 18
1.5.2 持久化 18
1.5.3 攻击 19
1.6 小结 20
1.7 问题 21
1.8 注释 21
第2章 初始控制 23
2.1 理解控制初始化 23
2.2 实现初始控制 24
2.2.1 使用XSS攻击 24
2.2.2 使用有隐患的Web应用 34
2.2.3 使用广告网络 34
2.2.4 使用社会工程攻击 35
2.2.5 使用中间人攻击 45
2.3 小结 55
2.4 问题 55
2.5 注释 56
第3章 持续控制 58
3.1 理解控制持久化 58
3.2 通信技术 59
3.2.1 使用XMLHttpRequest轮询 60
3.2.2 使用跨域资源共享 63
3.2.3 使用WebSocket通信 63
3.2.4 使用消息传递通信 65
3.2.5 使用DNS隧道通信 67
3.3 持久化技术 73
3.3.1 使用内嵌框架 73
3.3.2 使用浏览器事件 75
3.3.3 使用底层弹出窗口 78
3.3.4 使用浏览器中间人攻击 80
3.4 躲避检测 84
3.4.1 使用编码躲避 85
3.4.2 使用模糊躲避 89
3.5 小结 96
3.6 问题 97
3.7 注释 98
第4章 绕过同源策略 100
4.1 理解同源策略 100
4.1.1 SOP与DOM 101
4.1.2 SOP与CORS 101
4.1.3 SOP与插件 102
4.1.4 通过界面伪装理解SOP 103
4.1.5 通过浏览器历史理解SOP 103
4.2 绕过SOP技术 103
4.2.1 在Java中绕过SOP 103
4.2.2 在Adobe Reader中绕过SOP 108
4.2.3 在Adobe Flash中绕过SOP 109
4.2.4 在Silverlight中绕过SOP 110
4.2.5 在IE中绕过SOP 110
4.2.6 在Safari中绕过SOP 110
4.2.7 在Firefox中绕过SOP 112
4.2.8 在Opera中绕过SOP 113
4.2.9 在云存储中绕过SOP 115
4.2.10 在CORS中绕过SOP 116
4.3 利用绕过SOP技术 117
4.3.1 代理请求 117
4.3.2 利用界面伪装攻击 119
4.3.3 利用浏览器历史 132
4.4 小结 139
4.5 问题 139
4.6 注释 140
第5章 攻击用户 143
5.1 内容劫持 143
5.2 捕获用户输入 146
5.2.1 使用焦点事件 147
5.2.2 使用键盘事件 148
5.2.3 使用鼠标和指针事件 150
5.2.4 使用表单事件 152
5.2.5 使用IFrame按键记录 153
5.3 社会工程学 154
5.3.1 使用标签绑架 154
5.3.2 使用全屏 155
5.3.3 UI期望滥用 159
5.3.4 使用经过签名的Java小程序 176
5.4 隐私攻击 180
5.4.1 不基于cookie的会话追踪 181
5.4.2 绕过匿名机制 182
5.4.3 攻击密码管理器 184
5.4.4 控制摄像头和麦克风 186
5.5 小结 192
5.6 问题 192
5.7 注释 193
第6章 攻击浏览器 195
6.1 采集浏览器指纹 196
6.1.1 使用HTTP首部 197
6.1.2 使用DOM属性 199
6.1.3 基于软件bug 204
6.1.4 基于浏览器特有行为 204
6.2 绕过cookie检测 205
6.2.1 理解结构 206
6.2.2 理解属性 207
6.2.3 绕过路径属性的限制 209
6.2.4 cookie存储区溢出 211
6.2.5 使用cookie实现跟踪 214
6.2.6 Sidejacking攻击 214
6.3 绕过HTTPS 215
6.3.1 把HTTPS降级为HTTP 215
6.3.2 攻击证书 218
6.3.3 攻击SSL/TLS层 219
6.4 滥用URI模式 220
6.4.1 滥用iOS 220
6.4.2 滥用三星Galaxy 222
6.5 攻击JavaScript 223
6.5.1 攻击JavaScript加密 223
6.5.2 JavaScript和堆利用 225
6.6 使用Metasploit取得shell 231
6.6.1 Metasploit起步 231
6.6.2 选择利用 232
6.6.3 仅执行一个利用 233
6.6.4 使用Browser Autopwn 236
6.6.5 结合使用BeEF和Metasploit 237
6.7 小结 240
6.8 问题 240
6.9 注释 240
第7章 攻击扩展 244
7.1 理解扩展的结构 244
7.1.1 扩展与插件的区别 245
7.1.2 扩展与附加程序的区别 245
7.1.3 利用特权 245
7.1.4 理解Firefox扩展 246
7.1.5 理解Chrome扩展 251
7.1.6 IE扩展 258
7.2 采集扩展指纹 259
7.2.1 使用HTTP首部采集指纹 259
7.2.2 使用DOM采集指纹 260
7.2.3 使用清单文件采集指纹 262
7.3 攻击扩展 263
7.3.1 冒充扩展 263
7.3.2 跨上下文脚本攻击 265
7.3.3 执行操作系统命令 277
7.3.4 操作系统命令注入 280
7.4 小结 284
7.5 问题 284
7.6 注释 285
第8章 攻击插件 288
8.1 理解插件 288
8.1.1 插件与扩展的区别 289
8.1.2 插件与标准程序的区别 290
8.1.3 调用插件 290
8.1.4 插件是怎么被屏蔽的 292
8.2 采集插件指纹 292
8.2.1 检测插件 293
8.2.2 自动检测插件 295
8.2.3 用BeEF检测插件 295
8.3 攻击插件 297
8.3.1 绕过点击播放 297
8.3.2 攻击Java 302
8.3.3 攻击Flash 311
8.3.4 攻击ActiveX控件 314
8.3.5 攻击PDF阅读器 318
8.3.6 攻击媒体插件 319
8.4 小结 323
8.5 问题 324
8.6 注释 324
第9章 攻击Web应用 327
9.1 发送跨域请求 327
9.1.1 枚举跨域异常 327
9.1.2 前置请求 330
9.1.3 含义 330
9.2 跨域Web应用检测 330
9.2.1 发现内网设备IP地址 330
9.2.2 枚举内部域名 331
9.3 跨域Web应用指纹采集 333
9.4 跨域认证检测 339
9.5 利用跨站点请求伪造 342
9.5.1 理解跨站点请求伪造 343
9.5.2 通过XSRF攻击密码重置 345
9.5.3 使用CSRF token获得保护 346
9.6 跨域资源检测 347
9.7 跨域Web应用漏洞检测 350
9.7.1 SQL注入漏洞 350
9.7.2 检测XSS漏洞 363
9.8 通过浏览器代理 366
9.8.1 通过浏览器上网 369
9.8.2 通过浏览器Burp 373
9.8.3 通过浏览器Sqlmap 375
9.8.4 通过Flash代理请求 377
9.9 启动拒绝服务攻击 382
9.9.1 Web应用的痛点 382
9.9.2 使用多个勾连浏览器DDoS 383
9.10 发动Web应用利用 387
9.10.1 跨域DNS劫持 387
9.10.2 JBoss JMX跨域远程命令执行 388
9.10.3 GlassFish跨域远程命令执行 390
9.10.4 m0n0wall跨域远程命令执行 393
9.10.5 嵌入式设备跨域命令执行 395
9.11 小结 399
9.12 问题 400
9.13 注释 400
第10章 攻击网络 404
10.1 识别目标 404
10.1.1 识别勾连浏览器的内部IP 404
10.1.2 识别勾连浏览器的子网 409
10.2 ping sweep 412
10.2.1 使用XMLHttpReqeust 412
10.2.2 使用Java 416
10.3 扫描端口 419
10.3.1 绕过端口封禁 420
10.3.2 使用IMG标签扫描端口 424
10.3.3 分布式端口扫描 426
10.4 采集非HTTP服务的指纹 428
10.5 攻击非HTTP服务 430
10.5.1 NAT Pinning 430
10.5.2 实现协议间通信 434
10.5.3 实现协议间利用 446
10.6 使用BeEF Bind控制shell 458
10.6.1 BeEF Bind Shellcode 458
10.6.2 在利用中使用BeEF Bind 463
10.6.3 把BeEF Bind作为Web shell 472
10.7 小结 475
10.8 问题 475
10.9 注释 476
第11章 结语:最后的思考 479
· · · · · · (收起)
读后感
用户评价
**深度挖掘,拓展边界** 这本书的价值远超“技术手册”的范畴,它更像是一本“安全哲学”的入门指南。在探讨了具体的技术实现之后,作者并没有止步于此,而是将视角提升到了更高远的战略层面。关于“零信任架构”的未来演进,以及如何平衡企业安全投入与业务敏捷性之间的矛盾,这些内容是很多纯技术书籍完全不会触及的“上层建筑”问题。我特别关注了其中关于“行为基线建模”的章节,作者不仅介绍了算法,还深入分析了在不同业务场景下,如何准确定义“正常行为”,以及在对抗性环境中,攻击者如何“污染”基线数据,从而使传统异常检测失效。这种对安全体系整体性、动态性的深刻洞察,让我意识到,我们现在的很多防御措施可能已经落后于攻击者的思维速度了。这本书成功地将我从一个“修补漏洞的工匠”提升到了一个“构建弹性系统的架构师”的高度,这种思维的跃迁是无价的。
**排版与组织:细节见真章** 不得不提的是这本书的排版和组织结构,细节处理得非常到位,体现了出版方的专业水准和对读者的尊重。大量的代码示例都使用了清晰的彩色高亮,关键的函数调用和变量名一目了然,极大地减少了调试和理解代码的时间。更令人称道的是,书中为每一个核心概念都设计了“知识回顾框”和“深入思考题”。这些回顾框简洁有力,适合在快速复习时使用;而思考题则往往极具启发性,它们通常不会直接提供答案,而是引导读者去查阅更深层次的 RFC 或学术论文,从而形成一个自我驱动的学习闭环。在内容组织上,无论是对不同攻击类型的分类,还是对防御策略的归纳,都采用了矩阵化的方式呈现,使得庞杂的信息点能够被系统、快速地定位和对比。这本书的每一次翻阅,都能发现新的整理思路,这表明它不仅仅是一次性的知识传递,更是一套可以长期使用的参考和学习工具。
**初识巨著,心潮澎湃** 这本书的装帧设计就给人一种沉稳、专业的印象,厚重的纸张和精致的封面纹理,让人在翻开之前就对其中的内容抱有极高的期待。我原本以为这又是一本堆砌术语、晦涩难懂的技术手册,但当我真正沉浸其中后,才发现自己完全低估了它的价值。作者的叙事方式极其巧妙,他没有直接抛出复杂的概念,而是像一位经验丰富的老兵,循循善诱地引导读者进入这个充满挑战与机遇的领域。每一个章节的布局都经过深思熟虑,从基础概念的夯实,到复杂场景的剖析,逻辑链条清晰得令人赞叹。特别是关于系统底层安全机制的阐述,那种层层剥开迷雾、直抵核心的阅读体验,让人感觉仿佛掌握了一把开启新世界大门的钥匙。它不仅仅是在罗列“是什么”,更深入地探讨了“为什么”和“如何做”,这种深度和广度的完美结合,使得即便是像我这样在行业摸爬滚打多年的老兵,也能从中汲取到全新的养分,对许多旧知识有了更深层次的理解和重构。这本书无疑是为那些真正渴望深入技术内核的探索者准备的宝藏,绝非泛泛之辈可比拟。
**实战导向,颠覆认知** 这本书最让我震撼的地方在于其极强的实战导向性。很多市面上的安全书籍,往往停留在理论的纸上谈兵,代码示例也陈旧不堪,与实际环境严重脱节。然而,此书中的案例分析,无不源于近几年真实发生的大型安全事件,每一个攻击路径、防御策略的描述,都仿佛能让人身临其境地感受到当时的紧张氛围。作者在讲解过程中,非常注重“思维转换”的训练。他不断提醒读者,安全攻防不是简单的工具堆砌,而是一场高智商的博弈。例如,对于某一种新型的内存破坏漏洞的分析,他不仅展示了如何成功利用,更用接近三分之二的篇幅去探讨攻击者背后的思维模式和防御者可能忽略的盲区。这种亦攻亦守的辩证分析法,极大地拓宽了我的安全视角,让我意识到,真正的专家不是掌握了多少漏洞,而是拥有了如何系统性思考和构建防御体系的能力。读完这部分内容,我立刻着手优化了手头上几个项目的安全审计流程,效果立竿见影,这是其他任何教材都未曾给予我的切身体会。
**语言风格:行云流水,韵味十足** 不同于许多技术书籍那种干巴巴、缺乏人情味的写作腔调,这本书的文字风格简直是一股清流。作者的笔触非常细腻,即便是讲解极其枯燥的协议栈细节,也能穿插一些恰到好处的历史典故或者行业轶事,让紧张的学习过程变得轻松愉快。他的行文犹如一位经验丰富的说书人,总能在关键节点设置悬念,总能在读者感到疲惫时提供一个清晰的总结和展望。我尤其欣赏他对复杂概念的类比能力,比如用“锁匠与保险箱设计师的永恒战争”来形容加密算法的对抗,一下子就将抽象的数学问题具象化了。这种文学性和技术性的完美融合,使得长时间阅读也不会产生强烈的阅读疲劳感。更难得的是,这种行文风格丝毫没有牺牲内容的严谨性,它只是让学习的路径变得更加平滑和愉悦,让人愿意一页接着一页地读下去,主动去探索下一个知识点,而不是被动地完成任务。
集大成者
没读下去
没读下去
没读下去
集大成者