搜索


会员资源切换至【手机版】

切换本帖至【手机版】


开启左侧

安全漏洞追踪(Hunting Security Bugs)扫描版[PDF]

[复制链接]
发表于 2021-8-23 09:25:48 | 显示全部楼层 |阅读模式

游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0


资源信息:



中文名


: 安全漏洞追踪


原名


: Hunting Security Bugs


作者


: Gallagher,T. Jeffries,B. Landauer,L.


译者


: 钟力 朱敏 何金勇


图书分类


: 网络


资源格式


: PDF


版本


: 扫描版


出版社


: 电子工业出版社


书号


: 9787121073717


发行时间


: 2008年11月01日


地区


: 大陆


语言


: 简体中文


概述


:




网盘下载



我的图书馆



(长期更新各类IT类图书)



内容介绍:


这是一本针对安全测试的书籍,同时也是一本十分适合信息安全研究人员的优秀参考书。本书共20章,其中前3章讨论了安全测试的基础,包括如何从攻击者的角度去思考测试方法,以及如何进行威胁建模和入口点查找。第4章至第19章则通过详细的示例与代码,分别深入地阐述了网络流量和内存数据的操控方法,包括缓冲区溢出、格式化字符串、HTML脚本、XML、规范化、权限、拒绝服务、托管代码、SQL注入和ActiveX再利用等安全漏洞追踪方法,以及在二进制代码条件下查找安全漏洞的逆向工程技术。第20章论述了合理报告安全漏洞的程序,并提出了一个负责的安全漏洞公开流程。最后,本书还提供了一个适于初学者的测试用例列表。


内容截图:





目录


: 第1章 安全测试的一般方法 1 1.1 安全测试人员的不同类型 2 1.2 一种安全测试的方法 3 1.2.1 深入理解测试的内容 4 1.2.2 从攻击者的角度思考如何攻击目标 6 1.2.3 攻击产品 8 1.2.4 时刻关注新的攻击 8 1.3 小结 9 第2章 利用威胁模型进行安全测试 10 2.1 威胁建模 10 2.2 测试人员如何对威胁模型分级 11 2.3 数据流程图 12 2.4 入口点和退出点的安全 13 2.5 识别威胁的技巧及常见威胁 14 2.6 测试人员如何利用一个完整的威胁模型 16 2.7 技术实现难以符合产品规范或威胁模型 19 2.8 小结 20 第3章 查找入口点 21 3.1 查找入口点并划分等级 22 3.2 常见入口点 23 3.2.1 文件 23 3.2.2 套接字(Socket) 27 3.2.3 HTTP请求 29 3.2.4 命名管道 32 3.2.5 可插入协议处理程序 35 3.2.6 恶意服务器响应 37 3.2.7 程序化接口 38 3.2.8 SQL 39 3.2.9 注册表 39 3.2.10 用户接口 41 3.2.11 E-mail 42 3.2.12 命令行参数 44 3.2.13 环境变量 45 3.3 小结 47 第4章 成为恶意的客户端 48 4.1 客户端/服务器交互 48 4.1.1 发现服务器正常接收的请求 49 4.1.2 操纵网络请求 51 4.2 测试HTTP 55 4.2.1 理解无状态协议 56 4.2.2 接收输入的测试方法 56 4.3 快速测试特定的网络请求 66 4.4 测试技巧 68 4.5 小结 69 第5章 成为恶意的服务器 70 5.1 理解客户端接收恶意服务器响应的常见方法 71 5.2 SSL能否阻止恶意服务器的攻击 73 5.3 操纵服务器响应 73 5.4 恶意响应漏洞的例子 74 5.5 错误认识:对攻击者来说创建恶意服务器非常困难 76 5.6 理解降级(Downgrade)MITM攻击 77 5.7 测试技巧 78 5.8 小结 79 第6章 欺骗 80 6.1 掌握欺骗问题的重要性 80 6.2 寻找欺骗问题 82 6.3 常见欺骗案例 82 6.3.1 IP地址欺骗 83 6.3.2 MAC地址欺骗 84 6.3.3 利用网络协议欺骗 85 6.4 用户接口(User Interface,UI)欺骗 88 6.4.1 重构对话框 88 6.4.2 Z-Order欺骗 93 6.4.3 让人误解的URL和文件名 94 6.5 测试技巧 97 6.6 小结 97 第7章 信息泄露 98 7.1 信息泄露问题 98 7.2 定位信息泄露的常见区域 99 7.2.1 文件泄露 99 7.2.2 网络泄露 107 7.3 识别重要的数据 111 7.3.1 数据混淆 112 7.3.2 隐含泄露 113 7.4 小结 113 第8章 缓冲区溢出及堆栈/堆操纵 114 8.1 了解溢出的工作原理 117 8.1.1 堆栈溢出 118 8.1.2 整型溢出 121 8.1.3 堆溢出 128 8.1.4 其他攻击 129 8.2 溢出测试:在哪里寻找(测试)用例 130 8.2.1 网络 130 8.2.2 文档与文件 131 8.2.3 较高权限和较低权限用户之间的共享信息 131 8.2.4 可编程接口 132 8.3 黑盒(功能)测试 133 8.3.1 确定期待的是什么数据 133 8.3.2 使用你能识别的数据 134 8.3.3 了解界限与边界 134 8.3.4 保持全部数据的完整性 137 8.3.5 改造正常数据使其溢出的策略 141 8.3.6 测试首要行为和次要行为 143 8.3.7 要查找什么 144 8.3.8 运行时工具 156 8.3.9 模糊测试 158 8.4 白盒测试 159 8.4.1 要查找的对象 160 8.4.2 溢出的可用性 164 8.4.3 Unicode数据 169 8.4.4 已过滤的数据 170 8.5 其他主题 170 8.5.1 无代码执行的溢出也很严重 170 8.5.2 /GS编译器开关 173 8.6 测试技巧 175 8.7 小结 176 第9章 格式化字符串攻击 177 9.1 什么是格式化字符串 178 9.2 理解为什么格式化字符串存在问题 178 9.2.1 剖析prinf调用 179 9.2.2 堆栈解析错误 180 9.2.3 内存覆盖 182 9.3 格式化字符串安全漏洞测试 183 9.3.1 代码检查 183 9.3.2 黑盒测试 184 9.4 走查(Walkthrough):经历一个格式化字符串攻击过程 185 9.4.1 寻找格式化字符串漏洞 185 9.4.2 分析可利用性 186 9.4.3 深度挖掘:围绕可利用性问题进行工作 189 9.4.4 构建一个简单的负载 201 9.5 测试技巧 208 9.6 小结 209 第10章 HTML脚本攻击 210 10.1 理解针对服务器的反射跨站脚本攻击 211 10.1.1 例子:一个搜索引擎中的反射XSS 212 10.1.2 理解为什么XSS攻击是安全相关的 214 10.1.3 利用服务端的反射XSS漏洞 216 10.1.4 POST也是可利用的 218 10.2 理解针对服务器的持久性XSS攻击 219 10.2.1 例子:在一个留言簿中的持久性XSS攻击 220 10.2.2 利用针对服务器的持久性XSS攻击 221 10.3 识别用于反射和持久性XSS攻击的数据 221 10.4 程序员阻止攻击的常用方法 224 10.5 理解针对本地文件的反射XSS攻击 227 10.5.1 例子:本地文件中的反射XSS 228 10.5.2 利用本地文件中的反射XSS漏洞 229 10.5.3 理解为何本地XSS漏洞是一个问题 229 10.5.4 利用本地XSS漏洞在受害者的机器上运行二进制文件 232 10.5.5 HTML资源 233 10.5.6 编译后的帮助文件 234 10.5.7 在客户端脚本中查找XSS漏洞 236 10.6 理解本地计算机区域中的脚本注入攻击 237 10.6.1 例子:在Winamp播放列表中的脚本注入 237 10.6.2 把非HTML文件当作HTML来解析 240 10.7 程序员用于防止HTML脚本攻击的方法 243 10.7.1 过滤器 243 10.7.2 深入理解浏览器中的解析器 245 10.7.3 Style中的注释 245 10.7.4 ASP.NET内置的过滤器 247 10.8 理解Internet Explorer如何减轻针对本地文件的XSS攻击 248 10.8.1 从互联网到本地计算机区域的链接被阻止 248 10.8.2 在默认情况下,脚本在本地计算机区域中是禁止运行的 248 10.9 识别HTML脚本的脆弱性 250 10.10 通过检查代码查找HTML脚本漏洞 250 10.10.1 识别所有返回内容给Web浏览器或者文件系统的位置 251 10.10.2 确定输出中是否包含攻击者提供的数据 251 10.10.3 检查攻击者的数据是否进行了适当的验证或者编码 252 10.10.4 ASP.NET自动对数据进行编码 253 10.11 小结 254 第11章 XML问题 255 11.1 测试XML输入文件中的非XML安全问题 255 11.1.1 结构良好的XML 256 11.1.2 有效的XML 257 11.1.3 XML输入中包括非字母数字的数据 257 11.2 测试特定的XML攻击 260 11.2.1 实体(Entity) 260 11.2.2 XML注入(XML Injection) 263 11.2.3 大文件引用(Large File Reference) 266 11.3 简单对象访问协议(Simple Object Access Protocol) 266 11.4 测试技巧 271 11.5 小结 271 第12章 规范化问题 272 12.1 理解规范化问题的重要性 272 12.2 查找规范化问题 273 12.3 基于文件的规范化问题 273 12.3.1 目录遍历 274 12.3.2 使文件扩展名检查失效 274 12.3.3 导致规范化问题的其他常见错误 277 12.4 基于Web的规范化问题 282 12.4.1 编码问题 282 12.4.2 URL问题 287 12.5 测试技巧 290 12.6 小结 291 第13章 查找弱权限 292 13.1 理解权限的重要性 293 13.2 查找权限问题 294 13.3 理解Windows的访问控制机制 295 13.3.1 安全对象 295 13.3.2 安全描述符 296 13.3.3 ACL 296 13.3.4 ACE 297 13.4 查找和分析对象的权限 298 13.4.1 使用Windows安全属性对话框 298 13.4.2 使用AccessEnum 300 13.4.3 使用Process Explorer 300 13.4.4 使用ObjSD 301 13.4.5 使用AppVerifier 302 13.5 识别常见的权限问题 302 13.5.1 弱自主访问控制列表(DACL) 303 13.5.2 NULL DACL 307 13.5.3 不恰当的ACE顺序 308 13.5.4 对象创建者 308 13.5.5 间接访问资源 309 13.5.6 忘记恢复原权限 309 13.5.7 蹲点(Squatting)攻击 310 13.5.8 利用竞争条件 311 13.5.9 文件链接 312 13.6 确定对象的可访问性 315 13.6.1 可远程访问的对象 315 13.6.2 本地可访问对象 317 13.7 其他的权限考虑 318 13.7.1 .NET权限 318 13.7.2 SQL权限 318 13.7.3 基于角色的安全 320 13.8 小结 321 第14章 拒绝服务攻击 322 14.1 掌握DoS攻击的类型 322 14.1.1 查找技术实现缺陷 323 14.1.2 查找资源消耗缺陷 329 14.1.3 寻找解决严重问题的方法 335 14.2 测试技巧 336 14.3 小结 336 第15章 托管代码问题 337 15.1 澄清有关使用托管代码的常见错误认识 338 15.1.1 错误认识1:在托管代码中不存在缓冲区溢出 338 15.1.2 错误认识2:ASP.NET Web控件可防止跨站脚本 339 15.1.3 错误认识3:垃圾回收可以防止内存泄露 339 15.1.4 错误认识4:托管代码可防止SQL注入 340 15.2 理解代码访问安全的基础 340 15.2.1 用户安全和代码安全的比较(User Security vs. Code Security) 341 15.2.2 CAS概况 341 15.2.3 程序(Assembly) 342 15.2.4 物证 343 15.2.5 权限 343 15.2.6 策略 344 15.2.7 全局程序集缓冲区(Global Assembly Cache) 348 15.2.8 堆栈审核(Stack Walk) 348 15.2.9 堆栈审查修改器(Stack Walk Modifier) 350 15.3 使用代码检查方法查找问题 352 15.3.1 调用不安全的代码 353 15.3.2 查找断言导致的问题 355 15.3.3 查找链接查询中的问题 357 15.3.4 了解拙劣的异常处理 360 15.4 理解使用APTCA带来的问题 362 15.5 .NET程序反编译 368 15.6 测试技巧 368 15.7 小结 369 第16章 SQL注入 370 16.1 SQL注入的确切含义 370 16.2 了解SQL注入的重要性 372 16.3 查找SQL注入问题 373 16.3.1 利用黑盒测试方法 374 16.3.2 利用代码检查 385 16.4 避免SQL注入的常见错误 387 16.4.1 转义输入中的单引号 388 16.4.2 删除分号以阻止多重语句 388 16.4.3 只使用存储过程 389 16.4.4 删除不必要的存储过程 390 16.4.5 将运行SQL Server的计算机安置在防火墙之后 390 16.5 理解SQL存储过程的再利用 391 16.5.1 示例:备份文档 392 16.5.2 搜寻存储过程中的再利用问题 393 16.6 识别类似的注入攻击 393 16.7 测试技巧 394 16.8 小结 395 第17章 观察及逆向工程 396 17.1 在没有调试器或反汇编工具时的观测结果 396 17.1.1 输出比较 397 17.1.2 使用监视工具 398 17.2 使用调试器跟踪程序的执行并改变其行为 399 17.2.1 修改执行流程以旁路限制 400 17.2.2 在调试器下读取并修改内存的内容 404 17.3 使用反编译器或反汇编工具对一个程序实施逆向工程 408 17.3.1 理解二进制本地代码与字节码的区别 409 17.3.2 在没有源代码时定位不安全的函数调用 411 17.3.3 对算法实施逆向工程以识别安全缺陷 415 17.4 分析安全更新 417 17.5 测试技巧 418 17.6 法律方面的考虑因素 419 17.7 小结 419 第18章 ActiveX再利用攻击 420 18.1 理解ActiveX控件 421 18.1.1 在Internet Explorer浏览器中创建ActiveX控件 421 18.1.2 ActiveX控件的初始化和脚本解析 423 18.1.3 ActiveX控件再利用 424 18.1.4 理解ActiveX控件安全模型 428 18.1.5 利用ActiveX控件测试方法学 434 18.1.6 其他的测试窍门及技术 441 18.2 走查(Walkthrough):ActiveX控件测试 450 18.2.1 Clear 451 18.2.2 ClipboardCopy 452 18.2.3 ClipboardPaste 453 18.2.4 InvokeRTFEditor 455 18.2.5 LoadRTF 464 18.2.6 NumChars 465 18.2.7 RTFEditor 属性 466 18.2.8 RTFEditor PARAM 467 18.2.9 RTFEditorOverride 468 18.2.10 挑战 470 18.3 测试技巧 470 18.4 小结 471 第19章 其他再利用攻击 472 19.1 理解请求外部数据的文档格式 472 19.1.1 文档格式请求外部数据的常见的降低风险的方法 473 19.1.2 测试请求外部数据的文档格式 474 19.2 请求外部数据的Web页面 475 19.2.1 通过URL查询字符串进行的CSRF攻击 475 19.2.2 通过POST数据进行的CSRF攻击 476 19.2.3 防止CSRF攻击的常用方法 477 19.2.4 通过SOAP数据进行的CSRF攻击 478 19.2.5 对CSRF攻击进行测试 479 19.3 理解窗口和线程消息的再利用 479 19.4 小结 480 第20章 报告安全漏洞 481 20.1 报告问题 481 20.2 联系开发商 482 20.3 期望联系开发商后得到什么 484 20.4 公开发布 485 20.4.1 确定细节数量 485 20.4.2 公开时间选择 486 20.5 定位产品中的安全漏洞 486 20.5.1 与漏洞发现者联系 487 20.5.2 识别漏洞产生的根本原因 487 20.5.3 寻找相关的漏洞 487 20.5.4 确定受影响的产品及其版本 488 20.5.5 测试补丁 488 20.5.6 确定减轻措施和相关工作 488 20.5.7 为所有受影响的产品及其版本同时发布补丁 489 20.6 小结 489 附录A 相关工具 490 附录B 安全测试用例列表 497

主题推广




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

切换至【手机版】| 主站| Archiver|

JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!

|网站地图

GMT+8, 2026-3-30 04:12 , Processed in 0.417346 second(s), 120 queries .

 

快速回复 返回顶部 返回列表