第1章 网页木马综述 1
1.1 概述 1
1.2 发展历史 5
1.2.1 网页木马利用漏洞发展史 6
1.2.2 网页木马的衍生史 8
1.3 案例分析 13
1.3.1 邮件网页木马实例 13
1.3.2 CHM电子书木马实例 14
13.3 Fash网页木马实例 16
1.4 小结 18
第2章 网页木马剖析 19
2.1 网页木马与网页 19
2.2 网页木马与漏洞 26
2.2.1 逻辑型漏洞 27
2.2.2 溢出型漏洞 28
2.2.3 关于ActiveX 28
2.2.4 关于Shellcode 29
2.2.5 关于Heap Spray 29
2.3 小结 33
第3章 调试器与脚本语言 35
3.1 OllyDbg简介 35
3.2 OllyDbg使用实例 40
3.3 IDA Pro简介 48
3.4 IDA Pro使用实例 53
3.5 HTML与脚本语言 64
3.5.1 HTML语言简介 64
3.5.2 JavaScript脚本 67
3.5.3 VBScript脚本 76
3.6 小结 83
第4章 缓冲区溢出 84
4.1 Win32缓冲区溢出原理 84
4.1.1 栈溢出 85
4.1.2 堆溢出 86
4.1.3 data节中的溢出 88
4.1.4 TEB/PEB溢出 91
4.1.5 格式化字符串漏洞 91
4.1.6 整数溢出引发的缓冲区溢出 94
4.1.7 Off-by-one攻击 98
4.1.8 缓冲区溢出和C+++ 102
4.2 Win32缓冲区溢出利用技术 104
4.2.1 利用跳转地址定位Shellcode 104
4.2.2 结构化异常处理 108
4.2.3 Windows下本地溢出实例 114
4.3 溢出漏洞防范 119
4.3.1 编写安全的代码 120
4.3.2 /GS选项 125
4.3.3 使用外挂DLL检测缓冲区溢出 131
4.3.4 堆栈不可执行 138
4.3.5 数组边界检查 138
4.3.6 数据段不可执行 138
4.3.7 硬件级别的保护 139
4.4 小结 139
第5章 Shellcode的编写 141
5.1 Shellcode概述 141
5.2 Shellcode相关技术 144
5.2.1 获取Kerne132基址 145
5.2.2 Shellcode的重定位 147
5.2.3 Shellcode的提取 148
5.2.4 获得API函数地址 148
5.3 Shellcode的编码 151
5.3.1 Shellcode的Xor编码 151
5.3.2 纯字母数字的Shellcode 169
5.3.3 Unicode编码 174
5.4 绕过安全系统的Shellcode 178
5.5 内核模式下的Shellcode 181
5.6 小结 189
第6章 网页木马免杀技术分析 190
6.1 杀毒软件是如何工作的 190
6.2 网页木马变形技术 193
6.2.1 网页木马特征码定位技术 193
6.2.2 网页木马内容重组法 197
6.2.3 转义字符法 199
6.2.4 插入特殊符号法 201
6.2.5 页面编码法 205
6.2.6 关联数组法 209
6.2.7 变形还原技术 211
6.3 网页木马加密技术 215
6.3.1 利用escape、unescape函数加密解密 216
6.3.2 利用Script Encoder函数加密 219
6.3.3 自定义加解密函数 221
6.3.4 网页木马加密技术的内存免杀 237
6.3.5 解密还原技术 238
6.4 小结 241
第7章 网页木马实例分析 242
7.1 MS06-014 242
7.2 MS06-055 244
7.3 MS07-017 253
7.4 RealPlayer网页木马 262
7.5 MS07-004 269
7.6 小结 277
第8章 网页木马防范 278
8.1 系统安全配置 278
8.2 浏览器安全配置 279
8.2.1 Internet Explorer的设置 279
8.2.2 Firefox的设置 284
8.2.3 谷歌Chrome的设置 285
8.2.4 腾讯TT的设置 290
8.2.5 遨游Maxthon的设置 296
8.3 安全工具 300
8.3.1 360安全卫士的安装与配置 301
8.3.2 KIS7.0的安装与配置 308
8.3.3 瑞星卡卡 311
8.3.4 木马克星 315
8.3.5 手把手编写防网页木马工具 319
8.4 小结 336
参考文献 337