标题：网页木马攻防实战
内容简介
本书共分为8章，对网页木马进行了全面透彻的解析。内容包括网页木马综述、网页木马剖析、调试器与脚本语言、缓冲区溢出、Shellcode的编写、网页木马免杀技术分析、网页木马实例分析和网页木马防范。通过本书的学习，读者能够对网页木马和溢出攻击有更加深入的理解；能够及时有效地对网页木马采取安全防范措施，从而减少网页木马给自身带来的损失。
本书适合于网络技术爱好者、网络系统管理员、软件开发及信息安全技术人员阅读，并可作为大中专院校相关专业学生的学习资料和参考用书。
前言
笔者经常去书店买书，通常在买书之前，都会先把一本书的前言通读一遍，然后再来决定购书的意向。本书完稿后，很长一段时间里，笔者不知该如何写好这篇前言，写书时的那些灵感刹那间消失了。
网页木马自从诞生那天开始就是大家热衷于讨论的话题，笔者花了半年多时间把平日积累下来的经验转换为文字，希望通过此种方式能与对这些知识感兴趣的人们进行交流。如果大家能在这本书中学到新的知识和技术，那么这本书就完成了它的使命。希望这本书不会长时间静静地躺在图书馆或书店的某个角落里，如果您发现了它，请把它带走。
作为一本专门介绍网页木马的书籍，本书的立场是站在防御的角度，深入浅出地剖析网页木马的相关原理和技术，让读者更进一步了解和掌握网页木马的相关知识。
如果您不懂调试和脚本语言，没关系，本书的第3章会帮您解决这个问题；
如果您不懂溢出，没关系，本书的第4章会以生动的实例告诉您溢出的详细原理；
如果您不懂Shellcode，没关系，相信读完本书的第5章后，您一定能编写出自己的Shellcode。
在您掌握上述相关知识后，通过本书第7章“网页木马实例分析”的学习，可进一步加深理解前几章的内容，以便及时对网页木马采取安全防范措施，减少网页木马给自身带来的损失。
本书的内容安排
第1章  网页木马综述
本章给读者讲述网页木马的概念，什么是网页木马，网页木马发展的历史，网页木马的种类，可能造成怎样的危害，并通过几个简单的网页木马实例来增加直观性。
第2章  网页木马剖析
本章剖析网页木马中使用的几个关键技术，如调试基础、脚本语言、Shellcode编写、网页木马免杀方法等。
第3章  调试器与脚本语言
本章介绍调试器和脚本语言的相关知识，使读者对用来调试缓冲区溢出漏洞的这些利器有深入的了解。
第4章  缓冲区溢出
本章介绍缓冲区溢出的原理（包括产生原因、种类、危害等），使读者能够对缓冲区溢出有一个整体概念，并通过实例来形象地说明它的危害及其与网页木马之间的关系。
第5章  Shellcode的编写
本章介绍如何编写一个Shellcode，并通过几个实例把Shellcode编写中的过程，以及编写过程中可能遇到的问题（例如无效字符、大小、自包含技巧、可移植性等）解释清楚。
第6章  网页木马免杀技术分析
本章对网页木马中曾经用过的免杀方法和技术进行了分析，例如网页木马变形技术、网页木马加密技术等。
第7章  网页木马实例分析
本章以几个曾经在国内甚至国际非常流行的网页木马为实例来进行具体分析，使读者加深对上述相关章节的理解，以便及时有效地对网页木马采取安全防范措施，减少网页木马给自身带来的损失。
第8章  网页木马防范
本章通过给读者一些安全建议，使读者如何尽可能地减少网页木马的危害。例如：保证系统处于自动更新状态，下载并安装安全补丁；如何安全地设置浏览器；如何设置其他的安全工具辅助（例如防火墙、杀毒软件等）。
随书代码
读者可以从博文视点网站下载随书代码和相关资料。当然您也可以在该站点的相关版面与所有读者共同讨论网页木马的相关技术，撰写精彩的书评，以达到共同进步的目的。如果您有什么好的建议，同样欢迎您在网站上提出！
致谢
在撰写本书的过程中，得到了身边很多朋友的关心和支持，在此表示诚挚的感谢，最重要的是感谢父母多年来对我的培养，真心地感谢你们！
编  者      
2008年10月于江苏
目录
第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
1.3.3  Flash网页木马实例    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  获取Kernel32基址    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