《Web前端黑客技术揭秘》共10章,每章的关联性不强,大家可以根据自己的喜好跳跃性地阅读,不过我们建议从头到尾地阅读,因为每章的信息量都比较大,我们没法完全照顾初学者,很多更基础的知识点需要自己去弥补。 第1章介绍wleb安全的几个关键点。这些关键点是我们研究前端安全的意识点,缺乏这些关键意识,就很难真正弄懂前端安全,本章的内容值得细细阅读。 第2章介绍前端基础。实际上,其中的很多内容并非真正的基础,《Web前端黑客技术揭秘》不会像传统的教材那样回顾那些语言的语法、用法等,我们会从安全的角度出发,介绍前端角色(URL、HTTP、HTMl、JavaScript、CSS、ActionScript等)的行为,以此来理解做前端安全都需要具备哪些基本技能,我们觉得基础是关键,所以本章内容会比较多。
《Web前端黑客技术揭秘》编著者钟晨鸣、徐少培。
Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含 Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三 大类,涉及的知识点涵盖信任与信任关系、Cookie安全、FlaSh安全、DOM 渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等,这些都是研 究前端安全的人必备的知识点。本书作者深入剖析了许多经典的攻防技巧 ,并给出了许多独到的安全见解。
《Web前端黑客技术揭秘》适合前端工程师阅读,同时 也适合对Web前端各类安全问题或黑客攻防过程充满好奇的读者阅读,书中 的内容可以让读者重新认识到Web的危险,并知道该如何去保护自己以免受 黑客的攻击。
第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社区