微信扫一扫,移动浏览光盘
简介
本书采用通俗易懂的语言,将软件漏洞的发掘过程清晰地展现给每一位
读者。全书分为10章。第1章介绍常见的软件漏洞,及这些漏洞出现的原因
和危害;第2章主要讲解建立发掘软件安全漏洞的环境;第3章~第9章全面
讲解针对不同类型软件的安全漏洞应该采取的漏洞发掘方法。同时结合实际
操作和案例解析的方式带领读者学习;第10章针对普通的软件用户和专业的
软件开发者,分别给出了如何防范针对软件漏洞的恶意攻击和预防软件出现
漏洞的方法。
本书实践性强,第一次以具体软件漏洞案例的形式向读者揭示了软件漏
洞是怎样被发现,又怎样被利用的全过程。在讲述软件漏洞发掘技术的时候
,将软件漏洞的危害性、破坏性一起告诉读者,目的是为了让读者在明白如
何发现漏洞的时候,更知道如何防范软件漏洞。
随书附送的光盘中,为读者提供了软件漏洞发掘的视频教程,这是一个
极具学习和参考价值的视频教程。
本书不仅从软件安全研究人员的角度谈论如何发现软件漏洞,也从软件
开发者的角度给出了防止软件出现漏洞的方法,以帮助软件编程人员开发出
安全的软件系统。
本书适合所有关注软件安全的人们,尤其是从事软件安全测试的读者。
同时,本书也可以作为计算机安全培训及高等院校的教材和参考书。
目录
第1章 无法摆脱的漏洞 1
1.1 软件漏洞的概念 1
1.2 软件漏洞的分类 2
1.2.1 缓冲区溢出漏洞 2
1.2.2 整数溢出漏洞 9
1.2.3 格式化字符串漏洞 10
1.2.4 指针覆盖漏洞 13
1.2.5 sql注入漏洞 13
1.2.6 bypass漏洞 16
1.2.7 信息泄露漏洞 17
1.2.8 越权型漏洞 18
1.3 软件漏洞的危害 18
1.3.1 无法正常使用 18
1.3.2 引发恶性事件 19
1.3.3 关键数据丢失 19
1.3.4 秘密信息泄露 19
1.3.5 被安装木马病毒 19
1.4 安全漏洞出现的原因 20
1.4.1 小作坊式的软件开发 20
1.4.2 赶进度带来的弊端 20
.1.4.3 被轻视的软件安全测试 20
1.4.4 淡薄的安全思想 20
1.4.5 不完善的安全维护 21
1.5 做一名软件安全的维护者 21
第2章 建立软件漏洞发掘环境 22
2.1 虚拟机的安装 22
2.1.1 虚拟机的概念 22
2.1.2 为什么选择虚拟机 23
2.1.3 vmware的基本使用 23
2.2 iis的安装 29
2.3 用xampp建立网站环境 32
2.4 软件漏洞发掘的基本步骤 33
2.4.1 提供源代码的情况 33
2.4.2 没有源代码的情况 33
2.5 软件漏洞发掘中需要注意的问题 34
2.5.1 漏洞成因的确定 34
2.5.2 漏洞危害的确定 34
2.5.3 多平台下的测试 34
第3章 文字处理型软件的漏洞剖析 35
3.1 何谓文字处理型软件 35
3.2 文字处理型软件漏洞的发掘思想 36
3.2.1 主动的功能测试 36
3.2.2 被动的输入性测试 39
3.2.3 两个漏洞发掘工作必备的软件 44
3.3 发掘文字处理型软件漏洞的难点 46
3.3.1 文件格式的不公开 46
3.3.2 手工测试任务量大 47
3.4 发掘漏洞软件filefuzz的出现 47
3.5 实战课之一:使用filefuzz发掘文字处理软件漏洞 52
3.6 文字处理型软件漏洞的危害与利用 57
3.6.1 shellcode与木马植入 58
3.6.2 本地权限与系统命令 63
3.6.3 邮件附件中的隐蔽杀手 64
3.7 实战课之二:编写属于自己的发掘漏洞程序 64
3.8 媒体播放软件的漏洞发掘 71
3.9 文件处理型软件的漏洞发掘 73
3.10 filefuzz程序的弊端 77
3.10.1 不善于发掘明文式漏洞 77
3.10.2 时间消耗大 78
3.10.3 误报几率高 78
3.10.4 盲目性大 79
3.11 filefuzz程序的发展方向 79
3.11.1 自动判断文件格式 79
3.11.2 框架式的组成 79
3.11.3 自动分析与回溯测试 80
3.12 防范漏洞攻击的方法 80
3.12.1 及时升级软件补丁 80
3.12.2 防范来路不明的文档 81
3.13 小结 81
第4章 实战远程服务型软件的漏洞发掘 83
4.1 何谓远程服务型软件 83
4.2 明文式的数据包测试方法 84
4.2.1 发掘web服务软件安全漏洞的方法 85
4.2.2 问答式远程服务软件的漏洞发掘 88
4.3 非明文式的数据包测试方法 89
4.4 发掘远程服务型软件漏洞的关键点 91
4.4.1 网络服务的正确使用 91
4.4.2 测试数据的有效组织 92
4.5 发掘远程服务型软件漏洞的难点 93
4.5.1 数据包格式的分析 93
4.5.2 测试数据量庞大 96
4.5.3 难以正确发送测试数据 97
4.6 网络型fuzz工具 97
4.6.1 web服务安全测试软件webfuzz 98
4.6.2 fip服务安全测试软件ftpfuzz 101
4.7 实战课之三:使用ftpfuzz发掘ftp服务器远程溢出漏洞 105
4.8 万能型的远程服务软件漏洞发掘工具——bestorm 112
4.8.1 bestorm功能简介 112
4.8.2 bestorm的基本使用 113
4.9 实战课之四:另类的远程服务软件漏洞——sql注入漏洞攻防 123
4.10 防火墙与防范远程漏洞攻击 128
4.11 小结 129
第5章 浏览器软件的漏洞发掘 130
5.1 常见浏览器的异同比较 130
5.2 发掘特殊的浏览器软件漏洞 132
5.2.1 黑白名单bypass漏洞的发掘 132
5.2.2 跨域脚本访问漏洞的发掘 136
5.2.3 内容过滤机制不严漏洞的发掘攻防 142
5.3 利用基本的网页脚本发掘浏览器软件漏洞 144
5.3.1 超文本标记语言(html) 144
5.3.2 动态的html(dhtml) 146
5.3.3 对象模型(dom) 146
5.3.4 层叠样式表(css) 147
5.4 浏览器漏洞与网页木马攻防剖析 148
5.4.1 网页木马的概念 148
5.4.2 浏览器自身导致的原因 151
5.4.3 activex控件导致的原因 151
5.5 实战课之五:再现发掘浏览器溢出漏洞全过程攻防剖析 152
5.6 防范来自浏览器的攻击 154
5.7 小结 154
第6章 实战activex控件的安全漏洞发掘 156
6.1 activex控件的概念 156
6.2 浏览器与activex的关系 157
6.2.1 网页程序与activex控件 157
6.2.2 远程式activex控件与本地式activex控件 162
6.2.3 利用网页模板发掘activex控件漏洞 163
6.3 获取activex控件接口的方法 165
6.3.1 visual c++编程查看activex控件函数接口 165
6.3.2 使用oleview工具获取指定activex控件的函数接口 170
6.4 activex控件漏洞发掘利器——comraider 173
6.4.1 comraider简介 174
6.5 实战课之六:再现pdg2.dll控件缓冲区溢出漏洞全过程 177
6.6 activex控件的危害剖析 187
6.6.1 网页挂马剖析 188
6.6.2 远程木马病毒攻防剖析 190
6.7 另类的activex控件信息泄露漏洞剖析 191
6.8 阻止activex控件漏洞攻击 194
6.8.1 安装浏览器防护软件 194
6.8.2 手工修改注册表 195
6.8.3 对开发者的忠告 196
6.9 小结 197
第7章 实战开源软件的安全漏洞发掘 198
7.1 开源软件的概念 198
7.2 程序审计技术简介 199
7.3 实战课之七:发掘开源程序中的远程溢出漏洞 202
7.4 实战课之八:发掘开源程序中的整数溢出漏洞 207
7.5 自动化程序审计 207
7.5.1 代码安全审计软件rats的使用 208
7.5.2 静态安全漏洞扫描软件its4的使用 213
7.5.3 使用代码编译器自带的检查功能 218
7.6 小结 220
第8章 安全防护软件漏洞攻防 221
8.1 安全防护软件的范畴 221
8.1.1 杀毒软件 221
8.1.2 防火墙软件 221
8.1.3 入侵检测软件 221
8.2 安全防护软件漏洞剖析 222
8.2.1 从文件处理入手 222
8.2.2 从数据处理入手 223
8.2.3 从驱动程序入手 224
8.2.4 从软件组件入手 224
8.3 矛盾的安全防护软件 227
8.4 实战课之九:双剑合璧发掘杀毒软件远程删除文件漏洞 229
8.5 实战课之十:绕过杀毒软件的安全检测攻防剖析 234
8.6 实战课之十一:发掘防火墙规则文件溢出漏洞 236
8.7 加固安全防护软件 239
8.8 小结 240
第9章 系统内核里发掘漏洞 241
9.1 ring0的世界 241
9.2 内核漏洞的成因 241
9.2.1 系统驱动程序的漏洞 241
9.2.2 第三方驱动程序漏洞 242
9.2.3 内核函数的漏洞 242
9.3 驱动程序出现漏洞的类型 242
9.3.1 溢出型漏洞 242
9.3.2 函数指针覆盖漏洞 242
9.4 发掘驱动程序漏洞的方法 243
9.4.1 驱动程序加载的过程 243
9.4.2 被利用的irp(输入输出请求包) 248
9.4.3 发掘漏洞的基本思路 251
9.5 实战课之十二:深入剖析win32驱动程序本地提权漏洞 253
9.6 获取irp的方法 274
9.6.1 ida的反汇编分析法 274
9.6.2 动态监视irp 278
9.7 内核漏洞利用攻防剖析 281
9.8 小结 282
第10章 全面防范软件漏洞 283
10.1 安全编程的思想 283
10.2 必要的安全测试 286
10.3 及时公布安全补丁 286
10.4 正版软件的使用 287
10.5 在线升级与补丁安装 288
10.6 杀毒和防火墙软件的安装 290
10.7 良好的软件使用习惯 290
10.8 小结 290
附录a 一个发送自定义tcp数据包的visual c++程序 291
附录b 一个驱动程序的完整实现程序 296
参考文献 300
1.1 软件漏洞的概念 1
1.2 软件漏洞的分类 2
1.2.1 缓冲区溢出漏洞 2
1.2.2 整数溢出漏洞 9
1.2.3 格式化字符串漏洞 10
1.2.4 指针覆盖漏洞 13
1.2.5 sql注入漏洞 13
1.2.6 bypass漏洞 16
1.2.7 信息泄露漏洞 17
1.2.8 越权型漏洞 18
1.3 软件漏洞的危害 18
1.3.1 无法正常使用 18
1.3.2 引发恶性事件 19
1.3.3 关键数据丢失 19
1.3.4 秘密信息泄露 19
1.3.5 被安装木马病毒 19
1.4 安全漏洞出现的原因 20
1.4.1 小作坊式的软件开发 20
1.4.2 赶进度带来的弊端 20
.1.4.3 被轻视的软件安全测试 20
1.4.4 淡薄的安全思想 20
1.4.5 不完善的安全维护 21
1.5 做一名软件安全的维护者 21
第2章 建立软件漏洞发掘环境 22
2.1 虚拟机的安装 22
2.1.1 虚拟机的概念 22
2.1.2 为什么选择虚拟机 23
2.1.3 vmware的基本使用 23
2.2 iis的安装 29
2.3 用xampp建立网站环境 32
2.4 软件漏洞发掘的基本步骤 33
2.4.1 提供源代码的情况 33
2.4.2 没有源代码的情况 33
2.5 软件漏洞发掘中需要注意的问题 34
2.5.1 漏洞成因的确定 34
2.5.2 漏洞危害的确定 34
2.5.3 多平台下的测试 34
第3章 文字处理型软件的漏洞剖析 35
3.1 何谓文字处理型软件 35
3.2 文字处理型软件漏洞的发掘思想 36
3.2.1 主动的功能测试 36
3.2.2 被动的输入性测试 39
3.2.3 两个漏洞发掘工作必备的软件 44
3.3 发掘文字处理型软件漏洞的难点 46
3.3.1 文件格式的不公开 46
3.3.2 手工测试任务量大 47
3.4 发掘漏洞软件filefuzz的出现 47
3.5 实战课之一:使用filefuzz发掘文字处理软件漏洞 52
3.6 文字处理型软件漏洞的危害与利用 57
3.6.1 shellcode与木马植入 58
3.6.2 本地权限与系统命令 63
3.6.3 邮件附件中的隐蔽杀手 64
3.7 实战课之二:编写属于自己的发掘漏洞程序 64
3.8 媒体播放软件的漏洞发掘 71
3.9 文件处理型软件的漏洞发掘 73
3.10 filefuzz程序的弊端 77
3.10.1 不善于发掘明文式漏洞 77
3.10.2 时间消耗大 78
3.10.3 误报几率高 78
3.10.4 盲目性大 79
3.11 filefuzz程序的发展方向 79
3.11.1 自动判断文件格式 79
3.11.2 框架式的组成 79
3.11.3 自动分析与回溯测试 80
3.12 防范漏洞攻击的方法 80
3.12.1 及时升级软件补丁 80
3.12.2 防范来路不明的文档 81
3.13 小结 81
第4章 实战远程服务型软件的漏洞发掘 83
4.1 何谓远程服务型软件 83
4.2 明文式的数据包测试方法 84
4.2.1 发掘web服务软件安全漏洞的方法 85
4.2.2 问答式远程服务软件的漏洞发掘 88
4.3 非明文式的数据包测试方法 89
4.4 发掘远程服务型软件漏洞的关键点 91
4.4.1 网络服务的正确使用 91
4.4.2 测试数据的有效组织 92
4.5 发掘远程服务型软件漏洞的难点 93
4.5.1 数据包格式的分析 93
4.5.2 测试数据量庞大 96
4.5.3 难以正确发送测试数据 97
4.6 网络型fuzz工具 97
4.6.1 web服务安全测试软件webfuzz 98
4.6.2 fip服务安全测试软件ftpfuzz 101
4.7 实战课之三:使用ftpfuzz发掘ftp服务器远程溢出漏洞 105
4.8 万能型的远程服务软件漏洞发掘工具——bestorm 112
4.8.1 bestorm功能简介 112
4.8.2 bestorm的基本使用 113
4.9 实战课之四:另类的远程服务软件漏洞——sql注入漏洞攻防 123
4.10 防火墙与防范远程漏洞攻击 128
4.11 小结 129
第5章 浏览器软件的漏洞发掘 130
5.1 常见浏览器的异同比较 130
5.2 发掘特殊的浏览器软件漏洞 132
5.2.1 黑白名单bypass漏洞的发掘 132
5.2.2 跨域脚本访问漏洞的发掘 136
5.2.3 内容过滤机制不严漏洞的发掘攻防 142
5.3 利用基本的网页脚本发掘浏览器软件漏洞 144
5.3.1 超文本标记语言(html) 144
5.3.2 动态的html(dhtml) 146
5.3.3 对象模型(dom) 146
5.3.4 层叠样式表(css) 147
5.4 浏览器漏洞与网页木马攻防剖析 148
5.4.1 网页木马的概念 148
5.4.2 浏览器自身导致的原因 151
5.4.3 activex控件导致的原因 151
5.5 实战课之五:再现发掘浏览器溢出漏洞全过程攻防剖析 152
5.6 防范来自浏览器的攻击 154
5.7 小结 154
第6章 实战activex控件的安全漏洞发掘 156
6.1 activex控件的概念 156
6.2 浏览器与activex的关系 157
6.2.1 网页程序与activex控件 157
6.2.2 远程式activex控件与本地式activex控件 162
6.2.3 利用网页模板发掘activex控件漏洞 163
6.3 获取activex控件接口的方法 165
6.3.1 visual c++编程查看activex控件函数接口 165
6.3.2 使用oleview工具获取指定activex控件的函数接口 170
6.4 activex控件漏洞发掘利器——comraider 173
6.4.1 comraider简介 174
6.5 实战课之六:再现pdg2.dll控件缓冲区溢出漏洞全过程 177
6.6 activex控件的危害剖析 187
6.6.1 网页挂马剖析 188
6.6.2 远程木马病毒攻防剖析 190
6.7 另类的activex控件信息泄露漏洞剖析 191
6.8 阻止activex控件漏洞攻击 194
6.8.1 安装浏览器防护软件 194
6.8.2 手工修改注册表 195
6.8.3 对开发者的忠告 196
6.9 小结 197
第7章 实战开源软件的安全漏洞发掘 198
7.1 开源软件的概念 198
7.2 程序审计技术简介 199
7.3 实战课之七:发掘开源程序中的远程溢出漏洞 202
7.4 实战课之八:发掘开源程序中的整数溢出漏洞 207
7.5 自动化程序审计 207
7.5.1 代码安全审计软件rats的使用 208
7.5.2 静态安全漏洞扫描软件its4的使用 213
7.5.3 使用代码编译器自带的检查功能 218
7.6 小结 220
第8章 安全防护软件漏洞攻防 221
8.1 安全防护软件的范畴 221
8.1.1 杀毒软件 221
8.1.2 防火墙软件 221
8.1.3 入侵检测软件 221
8.2 安全防护软件漏洞剖析 222
8.2.1 从文件处理入手 222
8.2.2 从数据处理入手 223
8.2.3 从驱动程序入手 224
8.2.4 从软件组件入手 224
8.3 矛盾的安全防护软件 227
8.4 实战课之九:双剑合璧发掘杀毒软件远程删除文件漏洞 229
8.5 实战课之十:绕过杀毒软件的安全检测攻防剖析 234
8.6 实战课之十一:发掘防火墙规则文件溢出漏洞 236
8.7 加固安全防护软件 239
8.8 小结 240
第9章 系统内核里发掘漏洞 241
9.1 ring0的世界 241
9.2 内核漏洞的成因 241
9.2.1 系统驱动程序的漏洞 241
9.2.2 第三方驱动程序漏洞 242
9.2.3 内核函数的漏洞 242
9.3 驱动程序出现漏洞的类型 242
9.3.1 溢出型漏洞 242
9.3.2 函数指针覆盖漏洞 242
9.4 发掘驱动程序漏洞的方法 243
9.4.1 驱动程序加载的过程 243
9.4.2 被利用的irp(输入输出请求包) 248
9.4.3 发掘漏洞的基本思路 251
9.5 实战课之十二:深入剖析win32驱动程序本地提权漏洞 253
9.6 获取irp的方法 274
9.6.1 ida的反汇编分析法 274
9.6.2 动态监视irp 278
9.7 内核漏洞利用攻防剖析 281
9.8 小结 282
第10章 全面防范软件漏洞 283
10.1 安全编程的思想 283
10.2 必要的安全测试 286
10.3 及时公布安全补丁 286
10.4 正版软件的使用 287
10.5 在线升级与补丁安装 288
10.6 杀毒和防火墙软件的安装 290
10.7 良好的软件使用习惯 290
10.8 小结 290
附录a 一个发送自定义tcp数据包的visual c++程序 291
附录b 一个驱动程序的完整实现程序 296
参考文献 300
软件漏洞发掘与安全防范实战
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!