描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121192036丛书名: 安全技术大系
在Web技术飞速演变、电子商务蓬勃发展的今天,企业开发的很多新应用程序都是Web应用程序,而且Web服务也被越来越频繁地用于集成Web应用程序或与其进行交互,这些趋势带来的问题就是web应用系统的安全风险达到了前所未有的高度,在安全缺陷被利用时可能会出现灾难性后果。
SQL注入+上传Webshell这样的攻击成为了业界主流,几乎对动态Web服务无往不利。大中型企业和机构纷纷增加了80端口的检查和封堵。看到一些SQL注入攻击被挡住的日志,他们脸上露出了满意的微笑……
可是,厉害的Web攻击方式,就只有一个SQL注入吗?
如果把SQL注入算做Web后端攻击方式的话。那XSS和CSRF、ClickJacking等前端攻击方式的运用则更为复杂。
在这本书中,作者向大家阐述了“草木竹石,均可为剑”的道理。在他们的眼中URL、HTML、JavaScript、CSS、ActionScript……几乎每个地方都可以暗藏杀机。
Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等,这些都是研究前端安全的人必备的知识点。本书作者深入剖析了许多经典的攻防技巧,并给出了许多独到的安全见解。
第1章 Web安全的关键点
1.1 数据与指令
1.2 浏览器的同源策略
1.3 信任与信任关系
1.4 社会工程学的作用
1.5 攻防不单一
1.6 场景很重要
1.7 小结
第2章 前端基础
2.1 W3C的世界法则
2.2 URL
2.3 HTTP协议
2.4 松散的HTML世界
2.4.1 DOM树
2.4.2 iframe内嵌出一个
开放的世界
2.4.3 HTML内嵌脚本执行
2.5 跨站之魂——JavaScript
2.5.1 DOM树操作
2.5.2 AJAX风险
2.5.3 模拟用户发起浏览器请求
2.5.4 Cookie安全
2.5.5 本地存储风险
2.5.6 E4X带来的混乱世界
2.5.7 JavaScript函数劫持
2.6 一个伪装出来的世界——CSS
2.6.1 CSS容错性
2.6.2 样式伪装
2.6.3 CSS伪类
2.6.4 CSS3的属性选择符
2.7 另一个幽灵——ActionScript
2.7.1 Flash安全沙箱
2.7.2 HTML嵌入Flash的
安全相关配置
2.7.3 跨站Flash
2.7.4 参数传递
2.7.5 Flash里的内嵌HTML
2.7.6 与JavaScript通信
2.7.7 网络通信
2.7.8 其他安全问题
第3章 前端黑客之XSS
3.1 XSS概述
3.1.1 “跨站脚本”重要的是脚本
3.1.2 一个小例子
3.2 XSS类型
3.2.1 反射型XSS
3.2.2 存储型XSS
3.2.3 DOM XSS
3.3 哪里可以出现XSS攻击
3.4 有何危害
第4章 前端黑客之CSRF
4.1 CSRF概述
4.1.1 跨站点的请求
4.1.2 请求是伪造的
4.1.3 一个场景
4.2 CSRF类型
4.2.1 HTML CSRF攻击
4.2.2 JSON HiJacking攻击
4.2.3 Flash CSRF攻击
4.3 有何危害
第5章 前端黑客之界面操作劫持
5.1 界面操作劫持概述
5.1.1 点击劫持(Clickjacking)
5.1.2 拖放劫持
(Drag&Dropjacking)
5.1.3 触屏劫持(Tapjacking)
5.2 界面操作劫持技术原理分析
5.2.1 透明层+iframe
5.2.2 点击劫持技术实现
5.2.3 拖放劫持技术实现
5.2.4 触屏劫持技术实现
5.3 界面操作劫持实例
5.3.1 点击劫持实例
5.3.2 拖放劫持实例
5.3.3 触屏劫持实例
5.4 有何危害
第6章 漏洞挖掘
6.1 普通XSS漏洞自动化
挖掘思路
6.1.1 URL上的玄机
6.1.2 HTML中的玄机
6.1.3 请求中的玄机
6.1.4 关于存储型XSS挖掘
6.2 神奇的DOM渲染
6.2.1 HTML与JavaScript
自解码机制
6.2.2 具备HtmlEncode
功能的标签
6.2.3 URL编码差异
6.2.4 DOM修正式渲染
6.2.5 一种DOM fuzzing技巧
6.3 DOM XSS挖掘
6.3.1 静态方法
6.3.2 动态方法
6.4 Flash XSS挖掘
6.4.1 XSF挖掘思路
6.4.2 Google Flash XSS挖掘
6.5 字符集缺陷导致的XSS
6.5.1 宽字节编码带来的安全问题
6.5.2 UTF-7问题
6.5.3 浏览器处理字符集编码
BUG带来的安全问题
6.6 绕过浏览器XSS Filter
6.6.1 响应头CRLF注入绕过
6.6.2 针对同域的白名单
6.6.3 场景依赖性高的绕过
6.7 混淆的代码
6.7.1 浏览器的进制常识
6.7.2 浏览器的编码常识
6.7.3 HTML中的代码注入技巧
6.7.4 CSS中的代码注入技巧
6.7.5 JavaScript中的代码
注入技巧
6.7.6 突破URL过滤
6.7.7 更多经典的混淆CheckList
6.8 其他案例分享——
Gmail Cookie XSS
第7章 漏洞利用
7.1 渗透前的准备
7.2 偷取隐私数据
7.2.1 XSS探针:xssprobe
7.2.2 Referer惹的祸
7.2.3 浏览器记住的明文密码
7.2.4 键盘记录器
7.2.5 偷取黑客隐私的
一个小技巧
7.3 内网渗透技术
7.3.1 获取内网IP
7.3.2 获取内网IP端口
7.3.3 获取内网主机存活状态
7.3.4 开启路由器的远程
访问能力
7.3.5 内网脆弱的Web应用控制
7.4 基于CSRF的攻击技术
7.4.1 基于CSRF的XSS攻击
7.5 浏览器劫持技术
7.6 一些跨域操作技术
7.6.1 IE res:协议跨域
7.6.2 CSS String Injection跨域
7.6.3 浏览器特权区域风险
7.6.4 浏览器扩展风险
7.6.5 跨子域:document.domain
技巧
7.6.6 更多经典的跨域索引
7.7 XSS Proxy技术
7.7.1 浏览器<script>请求
7.7.2 浏览器跨域AJAX请求
7.7.3 服务端WebSocket
推送指令
7.7.4 postMessage方式推送指令
7.8 真实案例剖析
7.8.1 高级钓鱼攻击之百度空间
登录DIV层钓鱼
7.8.2 高级钓鱼攻击之Gmail
正常服务钓鱼
7.8.3 人人网跨子域盗取MSN号
7.8.4 跨站获取更高权限
7.8.5 大规模XSS攻击思想
7.9 关于XSS利用框架
第8章 HTML5安全
8.1 新标签和新属性绕过
黑名单策略
8.1.1 跨站中的黑名单策略
8.1.2 新元素突破黑名单策略
8.2 History API中的新方法
8.2.1 pushState()和replaceState()
8.2.2 短地址+History新方法=
完美隐藏URL恶意代码
8.2.3 伪造历史记录
8.3 HTML5下的僵尸网络
8.3.1 Web Worker的使用
8.3.2 CORS向任意网站
发送跨域请求
8.3.3 一个HTML5僵尸网络实例
8.4 地理定位暴露你的位置
8.4.1 隐私保护机制
8.4.2 通过XSS盗取地理位置
第9章 Web蠕虫
9.1 Web蠕虫思想
9.2 XSS蠕虫
9.2.1 原理+一个故事
9.2.2 危害性
9.2.3 SNS社区XSS蠕虫
9.2.4 简约且原生态的蠕虫
9.2.5 蠕虫需要追求原生态
9.3 CSRF蠕虫
9.3.1 关于原理和危害性
9.3.2 译言CSRF蠕虫
9.3.3 饭否CSRF蠕虫——
邪恶的Flash游戏
9.3.4 CSRF蠕虫存在的
可能性分析
9.4 ClickJacking蠕虫
9.4.1 ClickJacking蠕虫的由来
9.4.2 ClickJacking蠕虫
技术原理分析
9.4.3 Facebook的LikeJacking蠕虫
9.4.4 GoogleReader的
ShareJacking蠕虫
9.4.5 ClickJacking蠕虫
爆发的可能性
第10章 关于防御
10.1 浏览器厂商的防御
10.1.1 HTTP响应的X-头部
10.1.2 迟到的CSP策略
10.2 Web厂商的防御
10.2.1 域分离
10.2.2 安全传输
10.2.3 安全的Cookie
10.2.4 优秀的验证码
10.2.5 谨慎第三方内容
10.2.6 XSS防御方案
10.2.7 CSRF防御方案
10.2.8 界面操作劫持防御
10.3 用户的防御
10.4 邪恶的SNS社区
安全之路任重道远,前端安全是众多安全中的一个分支,互联网上各种网站让人眼花,千奇百怪的业务需求、安全问题,真要做好安全架构又谈何容易呢?我们知道,这次我们仅仅为互联网安全的进化奠定了一块砖头而已。
本书点透了很多关键的点,每个点的内容不一定覆盖完全,也不一定用了足够的文字进行描述,往往适可而止,但这些点却是Web前端安全基石的重要组成,如:信任与信任关系、Cookie安全、Flash安全、DOM渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等。
我们试图尽最大的努力使本书的内容涵盖完全,但发现这是不可能的事。闻道有先后,术业有专攻,我们写出了我们擅长的点,还有很多点是我们不敢去写的,时间与精力是我们最大的障碍。另外,我们认为,本书的知识点足以打开Web前端黑客的大门,有了这些沉淀后,大家完全可以持续跟进国内外优秀的技术文章与案例进行内功修炼,并在各种实战中不断加强。
网站安全是一个大问题,安全关注点也在逐渐转移,从刚开始的服务端安全,如缓冲区溢出、CGI解析缺陷、纯Web层面的SQL注入等,到客户端安全,如XSS跨站脚本、CSRF跨站请求伪造等。大家的意识与防御层面也随着Web安全的发展进化着。对网站来说,重视某些安全风险最好的办法就是将该风险最大化,这也是本书的目的,最终是让Web更好、更安全。
■ 一些约定
? 本书说的前端都指Web前端,也可以说是客户端,或者浏览器端。
?本书涉及的前端安全舞台基本上都是浏览器。浏览器更新换代的速度非常快,也许在你看到本书时,一些技巧已经不适用了。没关系,因为思想更重要,我们在撰写本书时默认使用的主流浏览器的最新版本是:Firefox15、Chrome 21、IE 9。
■ 前端黑客的内容
前端安全主要有三类:XSS、CSRF、界面操作劫持。从XSS到CSRF,再到界面操作劫持,越往后,社工(社会工程学的简称)成分越浓厚。我们会发现这个Web世界越不可信,攻击也似乎变得越无聊,实施这类攻击的代价也越来越大。界面操作劫持需要很好的美工基础,因此,你让一个黑客去搞美工是不太现实的,因为现在有很多好的方式可以黑下目标。
所以,本书关于界面操作劫持的内容更多的是具有研究性质的,而很少用于真正的攻击,即使我们已经完成了一些很有意义的攻击事件(比如,针对GoogleReader的蠕虫事件),但都是善意的,在真正的黑客攻击活动中,这样做的可能性很小。
有一点我们都应该明白,当前还不具备“黑客攻击活动”价值的风险,以后可能会具备,回头看看整个安全发展史就可以发现这个规律。至少XSS与CSRF已经具备这样的价值,而且发展得如火如荼。这也是本书的重点内容。
■ 为什么进行前端黑客研究
Web从Web 1.0到Web 2.0,一个用户参与度与黏性都很高的Web时代,且Web2.0又细分出许多不同的领域(微博、旅游、交友、餐饮、医疗、购物等),各种海量的隐私数据可以在这些Web2.0网站中找到。前端黑客是随着这个趋势发展起来的,通过前端黑客技巧,往往很容易就掌控了目标用户的隐私数据。
另外,攻击时获取各种隐私数据或者破坏数据,其实很多时候都可以在前端攻击中完成,而且目前看来由于安全意识的问题,很多安全焦点都还在服务端,比如,OS(操作系统)加固得如何、数据库加固得如何、SQL查询是否参数化了、是不是存在弱口令等。那么,前端安全就被忽略了,在某些场景中,前端漏洞,比如一个XSS漏洞的价值就很大,而且前端攻击同样也可以大规模地进行,造成很大的影响。
我们在很多次的实战中运用了前端黑客技术,这是一种具备实战意义的技术,非常值得大家深入了解。
前端黑客技术的研究是一种趋势,它已经成形了,这就是我们为什么要介绍前端黑客的原因,也是本书诞生的最根本原因。
■ 阅读指南
本书共10章,每章的关联性不强,大家可以根据自己的喜好跳跃性地阅读,不过我们建议从头到尾地阅读,因为每章的信息量都比较大,我们没法完全照顾初学者,很多更基础的知识点需要自己去弥补。
第1章介绍Web安全的几个关键点。这些关键点是我们研究前端安全的意识点,缺乏这些关键意识,就很难真正弄懂前端安全,本章的内容值得细细阅读。
第2章介绍前端基础。实际上,其中的很多内容并非真正的基础,本书不会像传统的教材那样回顾那些语言的语法、用法等,我们会从安全的角度出发,介绍前端角色(URL、HTTP、HTML、JavaScript、CSS、ActionScript等)的行为,以此来理解做前端安全都需要具备哪些基本技能,我们觉得基础是关键,所以本章内容会比较多。
第3章介绍前端黑客之XSS,第4章介绍前端黑客之CSRF,第5章介绍前端黑客之界面操作劫持,这几章的内容都不多,但却是理解XSS、CSRF、界面操作劫持的关键,为更好地理解后面的章节打好基础。
第6章介绍漏洞挖掘。这是难度非常大的部分,我们不可能涵盖完全,甚至有些知识点我们都无法详细介绍,只是尽可能地将我们的经验与大家分享,其中涉及很多漏洞挖掘思想与技巧,需要大家仔细理解,同时希望大家能够举一反三,激发出更多的挖掘思路。
第7章介绍漏洞利用。有了前面的知识后,我们又面对一个高难度的过程,这是前端黑客渗透实战的关键步骤。本章给出了很多经典的攻击向量,并剖析了多个真实案例。
第8章介绍HTML5安全。这是一个很火热的概念,虽然我们在前面章节中提到了HTML5安全,不过还是有必要用单独一章将更多的内容集中展现出来。
第9章介绍Web蠕虫。实际上就是Web2.0里发生的蠕虫攻击,包括XSS蠕虫、CSRF蠕虫、ClickJacking蠕虫等,其中的案例都很经典,这基本属于前端黑客攻击的中级篇,而高级篇属于某些真正的前端黑客渗透实战。
第10章介绍关于防御。黑客不是专搞攻击的,在之前的一些章节中,我们在介绍攻击时,有必要也会提到防御,同时我们专门在本章从三个角度出发(浏览器厂商、Web厂商、用户),给出了更多的防御建议,作为全书的终结。
作 者
特别说明:我们计划上线web2hack.org,定位:Web前端黑客相关资源与观点的分享,请大家关注。
《Web前端黑客技术揭秘》是每名Web前端工程师都必备的安全参考书。钟晨鸣先生与徐少培先生是我多年的好友,他们在Web安全领域有着很深的造诣。这本书是他们多年经验的总结,深入剖析了Web前端安全的方方面面,很多独特的见解发人深省。对于安全从业者和对互联网安全关心的读者,这本书是不容错过的上上之选。
——吴翰清 《白帽子讲Web安全》作者,安全宝联合产品副总裁,
前*集团高级安全专家
通过Web前端应用对Web用户个人敏感信息进行攻击已经成为当前主流的攻击手段之一。本书作者是国内Web前端安全研究的资深专家,本书也是国内迄今为止在这一领域内最为全面和深刻的专著。作者用生动诙谐的语言为我们全面刨析了当前Web前端黑客的各种技术,对专业的安全工作者、浏览器开发人员、Web开发人员具有很好的参考价值,对提升广大Web用户自身的安全防范意识和知识也有很好的借鉴意义,推荐大家阅读。
——姚崎 北京天融信公司副总裁
时至今日,我已经拥有过万的信息安全学员,但每逢学员让我推荐实战技术参考书时,都为推荐好书发愁,而这本书的诞生带来了攻防实战技术耀眼的光芒。本书既讲解了先进的XSS精粹,又展示了“借刀杀人、杀人不见血”的CSRF威力,通过研读该书,渗透测试与应急响应工程师将能收获详尽的理论知识和*实践指南;风险评估与安全审计工程师阅读后将能透彻了解到Web2.0的新威胁,他们将不得不扩展评估和审计的技术标准;IT运维安全工程师们阅读后,将会意识到新的噩梦已经到来,为避免更多网站成为攻击目标,唯一做的就是积极学习、与时俱进!
——张胜生 CISSP/CISP/CISA/攻防技术资深讲师,
网络犯罪重现与侦查云端平台总设计师
随着Web2.0的发展,Web前端攻击已逐渐成为主流攻击方式之一,但目前业界对Web前端安全方面的研究成果并没有系统的输出。今日有幸能优先拜读《Web前端黑客技术揭秘》一书,才发现原来已经有人在进行这方面的工作了。通读下来发现该书是两位作者对Web安全技术多年的系统研究和技术沉淀,涵盖了Web前端安全的方方面面,是一本能提升业界整体Web安全水平的得力之作。力荐!此外,两位作者钟晨鸣先生与徐少培先生都凭借深厚的Web安全技术功底多次帮助腾讯提升产品的安全质量,在此一并表示感谢。
——lake2 腾讯安全应急响应中心经理
钟晨鸣先生和徐少培先生是我多年来的挚友,很高兴终于看到这本书的面世,在我所熟悉的Web领域里,本书*是国内Web安全书籍中的*,书中许多经典的case和思路,都是二位多年宝贵经验的总结,对于喜爱Web安全的同学和相关从业人员来说,细细研读该书一定能使读者对Web安全领域达到一个更深层的认识。
——罗诗尧 《黑客攻防实战》系列图书作者,
新浪微博应用安全技术专家、微博安全中心负责人,前百度高级工程师
有人说互联网是由人组成的,也有人说互联网是由代码组成的。如果说互联网是由代码组成的,那么Web前端代码占据着互联网至少半壁江山;如果说互联网是由人组成的,那么有人的地方就有江湖,江湖中总是有剑客高手,互联网中也总是有技术黑客高手。
剑客也好,黑客也好,他们总是用各种让人叹为观止的奇妙招数让人在还未反应过来时就已经中招。一个人要在江湖中畅意行走,就要会点武功。同理,要在互联网上快意冲浪,就需要了解黑客的知识。只有做到知己知彼,才能“笑傲江湖”。
非常感谢钟晨鸣邀请我写这个序言,钟晨鸣是少有的理论+实战的天才型“黑客”,我非常佩服他在Web安全方面的造诣。更难能可贵的是,他和徐少培将自己的知识精华毫无保留地整理出来,写成“剑谱”公诸于世。“练练武功”不但可以防身,更能强身健体,这本书是我看到他们一路写成的,前后用了一年多的时间,花费了无数心血,写得非常细致,我预先读了本书,不敢独藏,与君共享。
顺便提一下,当前Web 2.0和HTML5已经渗透到了互联网及我们生活的方方面面,例如:
腾讯的Q+和Web QQ上拥有近10万个Web应用。
Google的Chrome网上应用商店提供了7万多个应用,拥有数亿人次的应用用户。
4399.com拥有数万个在线网页游戏。
安卓和苹果上当前17%的应用都是使用HTML 5开发的,而且这个比例还在不断上升。
SAAS的普及,使大量网站应用服务于我们的方方面面。
……
可以说,未来的互联网在很大程度上将由HTML+JavaScript+CSS构成,而安全是互联网发展的基础,互联网安全将在很大程度上取决于Web前端安全,如果前端失陷,我们的个人隐私、在线支付信息等都将受到莫大的挑战。
本书非常系统地讲解了Web相关的安全问题,图文并茂,理论和实战面面俱到,而且非常难得的是,书中有很多意想不到的“黑客”思路,这些思路非常具有实战性和前瞻性。
如果你是开发人员,保护客户的隐私是第一天职,那么看看这本书吧,它能教你如何编写安全的应用。
如果你是普通网民,要保障自己的安全,需要看看我们都面临什么挑战,那么看看这本书吧,它能让你明白平常应该注意什么。
如果你是善意的黑客,想换换思路,看看这本书吧,它能给你意想不到的视角和思路。
知道创宇CTO 杨冀龙
2012年10月8日
序2
网络安全永远伴随着业务的变化而变化。十几年前,互联网的兴起把Web服务推到了浪潮之巅。从此步入Web1.0时代,伴随Web业务而来的Web安全也逐渐兴起,Web1.0时代的安全主要体现在服务端动态脚本及Web服务器的安全问题上。到了2004年,Web2.0的诞生标志着又一次互联网革命到来!而这个时候的Web安全随着2005年由当时年仅19岁的天才SamyKamkar在MySpace上爆发了历史上第一个XSS Worm震惊了整个世界,由此也宣告Web安全正式步入Web2.0时代。这个时代的安全关注点已经由服务端全面转向了客户(前)端,浏览器替换Web服务器成为安全战争的主要战场,而前端常用的HTML、JavaScript、CSS、Flash等则成为安全战场的有力武器,浏览器挂马、XSS、CSRF、ClickJacking等成了主流的攻击手段。有攻击就有防御,面对Web2.0时代的安全问题,Web1.0时代的防御体系显得力不从心,很多安全从业者们都在思考和尝试新的防御手段,一场基于前端黑客攻防战就此拉开序幕……
作为一名资深的“脚本小子”,我有幸经历了Web安全由Web 1.0向Web 2.0转变的整个过程,也目睹了很多致力于Web2.0安全技术研究的公司诞生及发展的过程,并结识了一大群优秀的Web安全研究者,其中就有本书的两位作者:钟晨鸣先生和徐少培先生。
认识钟晨鸣先生缘于他所在的北京知道创宇信息技术有限公司。该公司于2007年成立,是国内最早关注Web2.0时代安全防御的公司之一,并在Web2.0安全防御领域里取得了巨大的成绩。而钟晨鸣先生早在2008年就加入了该公司,并积极加入到Web2.0的各种攻防技术研究中,后来逐步成为公司技术的中流砥柱。也是在这些官方对抗的实战中,成就了他对Web2.0时代安全技术的独特认识,并逐步完善了自己的技术体系。
而徐少培先生所在的北京天融信科技有限公司,是一家经历了Web 1.0时代的传统的信息安全公司,随着Web2.0时代的安全挑战,也使他们的研究人员投身于这个领域,由此培养了一大批技术精湛的安全研究者。徐少培先生就是其中之一,他对Web2.0安全技术有着深入的研究,尤其是在HTML 5的安全领域,他一直处于领先的地位。
如果说技术积累是本书诞生的“硬件”基础,那么乐于分享的精神就是本书诞生的必要的“软件”基础。有幸的是,钟晨鸣先生和徐少培先生都具有这样的分享精神,他们一直在通过Blog及参加各种技术峰会等不断分享着他们的研究成果。
所以,本书的诞生是他们对技术研究的总结及乐于分享精神的结合的成果。而我有幸成了该书的第一位读者,接到这本书的时候,我很惊讶,因为写书在我看来是一件很“痛苦”的事情。另外,对于Web2.0安全技术题材的书,在中国图书市场上是不多见的,纯技术分享的书籍更是寥寥无几,而他们的尝试显然是成功的!
本书是一本纯技术的关于Web2.0时代安全的专业书籍,从浏览器战场到前端的各种武器及攻击手段,再转到防御技术,都做了专业详细的展示。最后,我要说的只有一句话:本书值得您期待!
superhei
2012年10月18日
评论
还没有评论。