Table Of ContentOWASP 测试指南
2008 V3.0
致谢 杭州安恒信息技术有限公司和微软中国有限公司的大力支持!
2002-2008OWASP基金会
这份文档由creativecommonsAttribution-ShareAlike3.0 许可授权。请确认你的版本出自OWASPTesting或OWASP
Foundation。
目录
前言...............................................................................................................................................................................................7
谁有需要..................................................................................................................................................................................7
OWASP指南.............................................................................................................................................................................7
为什幺选择OWASP.................................................................................................................................................................8
优先级......................................................................................................................................................................................8
自动化工具的作用..................................................................................................................................................................8
行动呼吁..................................................................................................................................................................................9
致谢与译者声明.........................................................................................................................................................................10
1.首页.........................................................................................................................................................................................11
欢迎使用OWASP测试指南3.0............................................................................................................................................11
关于OWASP...........................................................................................................................................................................14
2.导言..........................................................................................................................................................................................17
测试原理................................................................................................................................................................................19
测试技术解释........................................................................................................................................................................22
安全需求测试推导................................................................................................................................................................28
3.OWASP测试框架....................................................................................................................................................................41
概述........................................................................................................................................................................................41
第1阶段:开发开始前进行测试........................................................................................................................................41
第2阶段:定义和设计过程中进行测试...............................................................................................................................42
第3阶段:开发过程中进行测试..........................................................................................................................................43
第4阶段:发展过程中进行测试..........................................................................................................................................44
第5阶段:维护和运行..........................................................................................................................................................45
2
OWASP测试指南v3.0
4WEB应用渗透测试.................................................................................................................................................................47
4.1说明简介..........................................................................................................................................................................47
4.2信息收集..........................................................................................................................................................................53
4.2.1测试:蜘蛛,机器人和爬虫(OWASP-IG-001)...............................................................................................................54
4.2.2搜索引擎发现/侦查(OWASP-IG-002)...........................................................................................................................56
4.2.3应用入口识别(OWASP-IG-003)....................................................................................................................................58
4.2.4WEB应用指纹测试(OWASP-IG-004)...........................................................................................................................61
4.2.5应用发现(OWASP-IG-005)...........................................................................................................................................69
4.2.6错误代码分析(OWASP-IG-006)...................................................................................................................................75
4.3配置管理测试..................................................................................................................................................................79
4.3.1SSL/TLS测试(OWASP-CM-001)....................................................................................................................................80
4.3.2数据库监听测试(OWASP-CM-002).............................................................................................................................88
4.3.3基础结构配置管理测试(OWASP-CM-003).................................................................................................................92
4.3.4应用配置管理测试(OWASP-CM-004).........................................................................................................................96
4.3.5文件扩展名处理测试(OWASP-CM-005)...................................................................................................................100
4.3.6过时的、用于备份的以及未被引用的文件(OWASP-CM-006)...............................................................................102
4.3.7基础结构和应用管理界面(OWASP-CM-007)..........................................................................................................107
4.3.8HTTP方法和XST测试(OWASP-CM-008)...................................................................................................................109
4.4认证测试........................................................................................................................................................................114
4.4.1加密信道证书传输 (OWASP-AT-001).......................................................................................................................115
4.4.2用户枚举测试(OWASP-AT-002)................................................................................................................................119
4.4.3默认或可猜解(遍历)用户帐户(OWASP-AT-003).....................................................................................................124
4.4.4暴力破解测试(OWASP-AT-004).................................................................................................................................127
3
4.4.5认证模式绕过测试(OWASP-AT-005)........................................................................................................................133
4.4.6记住密码和密码重置弱点测试(OWASP-AT-006).....................................................................................................137
4.4.7注销和浏览器缓存管理测试(OWASP-AT-007)........................................................................................................140
4.4.8CAPTCHA测试(OWASP-AT-008)................................................................................................................................144
4.4.9多因素认证测试(OWASP-AT-009)............................................................................................................................146
4.4.10竞争条件测试(OWASP-AT-010)..............................................................................................................................151
4.5会话管理测试................................................................................................................................................................153
4.5.1会话管理模式测试(OWASP-SM-001).......................................................................................................................154
4.5.2COOKIES属性测试(OWASP-SM-002).........................................................................................................................163
4.5.3会话固定测试(OWASP-SM_003)...............................................................................................................................166
4.5.4会话变量泄漏测试(OWASP-SM-004).......................................................................................................................169
4.5.5CSRF测试(OWASP-SM-005).......................................................................................................................................172
4.6授权测试........................................................................................................................................................................178
4.6.1路径遍历测试(OWASP-AZ-001).................................................................................................................................178
4.6.2绕过授权模式测试(OWASP-AZ-002)........................................................................................................................183
4.6.3提权测试(OWASP-AZ-003).........................................................................................................................................184
4.7业务逻辑测试(OWASP-BL-001)....................................................................................................................................186
4.8数据验证测试................................................................................................................................................................192
4.8.1反射式跨站脚本测试(OWASP-DV-001)....................................................................................................................195
4.8.2存储式跨站脚本测试(OWASP-DV-002)....................................................................................................................200
4.8.3基于DOM的跨站脚本检测(OWASP-DV-003).........................................................................................................206
4.8.4FLASH跨站脚本测试(OWASP-DV-004)......................................................................................................................209
4.8.5SQL注入(OWASP-DV-005)..........................................................................................................................................214
4
OWASP测试指南v3.0
4.8.5.1ORACLE测试............................................................................................................................................................222
4.8.5.2MYSQL测试.............................................................................................................................................................230
4.8.5.3SQLSERVER测试......................................................................................................................................................236
4.8.5.4MSACCESS检测.......................................................................................................................................................245
4.8.5.5检测PostgreSQL......................................................................................................................................................248
4.8.6LDAP注入(OWASP-DV-006).......................................................................................................................................254
4.8.7ORM注入(OWASP-DV-007).......................................................................................................................................257
4.8.8XML注入(OWASP-DV-008).........................................................................................................................................258
4.8.9SSI注入(OWASP-DV-009)..........................................................................................................................................266
4.8.10XPATH注入(OWASP-DV-010)...................................................................................................................................269
4.8.11IMAP/SMTP注入(OWASP-DV-011).........................................................................................................................270
4.8.12代码注入(OWASP-DV-012)......................................................................................................................................276
4.8.13OS指令执行(OWASP-DV-013).................................................................................................................................277
4.8.14缓冲区溢出检测(OWASP-DV-014)..........................................................................................................................280
4.8.14.1堆溢出....................................................................................................................................................................281
4.8.14.2栈溢出....................................................................................................................................................................284
4.8.14.3格式化字符串........................................................................................................................................................288
4.8.15潜伏式漏洞检测(OWASP-DV-015)..........................................................................................................................291
4.8.16HTTPSplitting/Smuggling测试(OWASP-DV-016)....................................................................................................295
4.9阻断服务测试................................................................................................................................................................298
4.9.1SQL通配符攻击测试(OWASP-DS-001)......................................................................................................................299
4.9.2锁定用户账户(OWASP-DS-002).................................................................................................................................301
4.9.3缓冲溢出(OWASP-DS-003).........................................................................................................................................303
5
4.9.4用户指定型对象分配(OWASP-DS-004).....................................................................................................................304
4.9.5将用户输入作为循环计数器(OWASP-DS-005).........................................................................................................305
4.9.6将用户写入的数据写到磁盘(OWASP-DS-006).........................................................................................................306
4.9.7释放资源失败(OWASP-DS-007).................................................................................................................................307
4.9.8存储过多会话数据(OWASP-DS-008).........................................................................................................................308
4.10WEB服务测试.............................................................................................................................................................309
4.10.1WS信息收集(OWASP-WS-001)................................................................................................................................310
4.10.2WSDL测试(OWASP-WS-002)...................................................................................................................................317
4.10.3XML结构测试(OWASP-WS-003)..............................................................................................................................321
4.10.4XML内容级别测试(OWASP-WS-004)......................................................................................................................326
4.10.5HTTPGET参数/REST测试(OWASP-WS-005)............................................................................................................328
4.10.6调皮的SOAP附件(OWASP-WS-006).......................................................................................................................329
4.10.7重现测试(OWASP-WS-007)......................................................................................................................................332
4.11AJAX测试.....................................................................................................................................................................334
4.11.1AJAX漏洞(OWASP-AJ-001)......................................................................................................................................335
4.11.2检测AJAX(OWASP-AJ-002)......................................................................................................................................339
5.撰写报告:评估实际风险..............................................................................................................................................345
5.1如何评估实际风险........................................................................................................................................................345
5.2如何书写这个测试报告................................................................................................................................................352
附录A:测试工具.................................................................................................................................................................357
附录B:推荐读物.................................................................................................................................................................360
附录C:漏洞检测向量.........................................................................................................................................................362
附录D:编码注入.................................................................................................................................................................368
6
OWASP测试指南v3.0
前言
软件的不安全问题也许是我们这个时代最为重要的技术挑战。安全问题是目前制约信息技术发展的关键。在 OWASP
团队,我们努力使不安全软件成为这个世界上不正常、不规范的产品,而这份 OWASP测试指南正是实现这个目标
的重要一步。
毫无疑问的是没有进行安全测试就无法建立一个安全的应用环境。然而,许多的软件开发组织的标准软件开发流程
中却并不包含安全测试这一步骤。由于攻击者能够利用无数的方法来攻破应用程序,而安全测试不可能测试全部的
攻击方法,所以安全测试其自身并非是衡量应用安全最为有效的方法。但是,安全测试具有独特的能力绝对说服反
对者确实存在安全问题。因此,在任何相信自己所生产和使用的软件的公司,安全测试在这些公司中起着核心作
用。
总体而言,OWASP的各个指南是对开发及维系安全的应用程序很好的出发点。开发者指南 能指导你如何设计和开
发安全的应用程序,而代码检测指南则会告诉你如何为代码作安全检测,而测试指南会指导你如何验证你的应用
程序的安全性。我极力推荐你使用这些指南在你的应用程序开发。
谁有需要
软件开发者–软件开发者需要使用这份指南来确保你所递交的代码没有可攻击的弱点。因为底层的测试者或者安全
小组不可能比你自己更了解你所开发的软件,因此你不能依靠他们来帮你测试。没有人能够比你自己更加有效地测
试你所开发的应用程序。代码安全绝对是你自己的责任。
软件测试者–软件测试者应该使用这份指南来增强你的测试能力。长期以来,安全测试作为一项黑色艺术并未得到
公开,所以OWASP一直致力于将这部分知识免费对每个人开放。这本指南中描述的很多案例并不复杂,也没有用
到特殊的技能或者工具。你可以通过学习这些安全知识来帮助你们公司并增强你的职业技能。
安全专家–安全专家的主要职责是确保应用程序中没有安全弱点的存在。你可以通过这份指南来确保安全测试的全
面性和严密性。永远不要满足于只找到几个漏洞,你的工作是保证这个应用程序的整体安全。同时,我们也强烈建
议你们使用OWASP应用安全验证标准(ASVS)。
OWASP 指南
OWASP已经完成好几本普及应用安全基础知识的指南:
OOOOWWWWAAAASSSSPPPP应用安全基础参考(AAAASSSSDDDDRRRR)--ASDR涵盖了所有应用安全中重要准则、威胁代理、攻击手段、应用弱点、安
全对策、技术冲击和商业冲击的基本定义和描述。这是所以指南的基础参考,在其它篇章中也经常被提及。
OOOOWWWWAAAASSSSPPPP开发者指南—开发者指南包含了软件开发者看重的所有安全控制。这些安全控制是软件开发者必须在应用程
序中创建的“主动”保护。在面对数以百计的软件弱点时,一系列有力的安全控制措施可以有效的阻止它们。
OOOOWWWWAAAASSSSPPPP测试指南—你正在阅读的这本测试指南囊括了应用安全测试的所有程序和工具。这本指南最好的用处是可以
作为综合应用安全验证的一部分。
7
OOOOWWWWAAAASSSSPPPP代码检测指南—代码检测指南与测试指南配合使用时效果最佳。用代码检测验证应用程序通常比测试要更节
约成本。你需要为你正在工作的应用安全选择一个最有效率的信道。
总的来讲,OWASP指南是创建和维持安全应用中一个伟大的起步。OWASP强烈建议你能将这些手册作为应用安全
测试的一部分。
为什幺选择 OWASP
写成一本这样的指南是艰巨的工作,因为它汇集了数百位世界各地的专家的专业技能。测试安全漏洞有许多不同的
方式,但是这本指南却在怎样快捷、准确、有效地测试方面获得了权威人士的一致同意。
这本指南完全免费地向公众开放十分重要。安全问题不应该是躲在暗处,以至于只有少数人能操作。许多现有的安
全指南只是详细地阐述了问题的严重性,但并没有提供足够的信息来让人们找到、诊断或者解决安全问题。创建这
本指南的目的是使需要它的人能掌握这些专业知识。
这本指南必须能在开发者和软件测试者中推广起来。全世界似乎没有足够的应用安全专家来对所有问题做重要批
示。应用安全最开始的责任肯定是落在软件开发者的肩上。如果开发者没有测试他的软件的话,软件中没有安全代
码也并不奇怪。
保证信息及时更新是这本指南至关重要的方面。通过采用 Wiki方式,OWASP团队能逐渐发展和扩大这本指南中的
信息,这样才能跟上应用安全威胁快速发展的步伐。
注:Wiki是一种在网络上开放、可供多人协同创作的超文本系统,由「Wiki之父」沃德·坎宁安(Ward
Cunningham)于 1995年所创。
优先级
你最好将这份指南看作是一系列寻找不同类型安全漏洞的技术指引。但并不是所有的技术都是同等重要的,请不要
将这本指南当成一本核对清单来使用。
应用安全测试最重要的方面可能就是让你时刻牢记你必须在有限的时间内尽可能多地覆盖应用程序的各个方面。郑
重提醒:请不要简单的看几眼这本书就开始测试,理想的做法是:通过建立一些安全威胁模型来决定你的公司最关
心的安全问题是什幺。你最终应该拥有一张包含优先次序的待测试的安全清单。
下一个步骤你应该决定如何验证这些要求。有很多不同的选择:你可以使用手动测试或者手动代码检测;你也可以
使用自动化的漏洞扫描或自动化的代码扫描(静态分析);你甚至可以使用与开发者和架构师共同检测或讨论安全
架构的方法。最重要的是判断并选择一种能够最准确、最高效地对特定应用程序进行检测的技术。
自动化工具的作用
自动化检测方法是吸引人的。因为他们似乎提供了一种短时间进行合理覆盖的检测手段。但是在应用安全中这些假
设远远没有在网络安全中真实。
8
OWASP测试指南v3.0
第一,因为这些工具是通用的,他们的覆盖面不完全——它们并不是专门针对您的自定义代码设计的。这意味着,
即使它们可以找到部分一般性问题,但是它们对你的应用程序没有足够的了解,无法对可能存在的大多数安全漏洞
进行侦测。此外,根据我们的经验,最严重的安全问题往往不具有代表性,而是深度隐藏在你的业务逻辑和定制应
用设计中。
其次,自动化工具在检测速度方面并不一定比手动检测快。实际运行的工具也许并不会花费特别多的时间,但是在
工具运行前后所花费的时间很多。安装过程中,你需要使检测工具了解应用程序所有输入输出的数据——可能包括
数以千计的字段名。然后,可能需要花费大量的时间来逐个分析数以万计的漏洞报告,而这些漏洞报告往往并没有
什幺问题。
如果当前最主要的任务是尽可能快地发现和消除最严重的安全漏洞,那幺针对不同的安全弱点选择最具有效果的技
术十分重要。在某些特定的问题上,自动化工具是十分有效的。明智地选择并使用自动化工具能够有效支持你的整
个开发过程以开发出安全性更高的代码。
行动呼吁
如果你正在从事软件开发工作,我强烈建议你熟悉这份文档中的安全测试指引。如果您发现错误,请在讨论页中添
加你的标注或自行对文档进行改动。你的意见将帮助到成千上万正在使用这份指南的人们。
欢迎任何个人或者团体加入我们,这样我们才能够继续创作出像这份测试指南以及所有 OWASP其它著作一样的材
料。感谢所有过去以及未来为这份指南做出贡献的人们,你们的工作将有助于推进世界各地的应用程序安全。
JeffWilliams
2009年1月18日
9
致谢与译者声明
本指南为业界首套系统的介绍应用安全测试的指导性文档。
数十位自愿者经过半年的辛苦工作,终于完成 OWASP测试指南的翻译及校对。
OWASP 测试指南中文版修订
项目进展 时间 主要参与人
OWASP测试指南中文V0.1 2009.7-2009.10 Frank
Aaron
OWASP测试指南中文V0.2 2009.10-2009.11 RIP
OWASP测试指南中文V0.3 2009.11-2009.1 Eric
翻译及校对人员(姓氏排名)
• 沈巍(Microsoft)
• Aaron(DBAPPSECURITY)
• 王超(Microsoft)
• 程琼(Microsoft)
• 韦炜(Microsoft)
• FrankFan(DBAPPSECURITY)
• 张柏明(Microsoft)
• 贺佳琳(Microsoft)
• 趙嘉言(Microsoft)
• 李伟荣(Microsoft)
• RIP(OWASPChinaChair)
声明
• 由于译者及校对人员水平有限,并不保证译文完全正确,请参照英文版以准。
• 非常感谢您的支持,有任何问题,请及时邮件到[email protected]。
10