Owasp测试4.0手册
测试:简介与目标
这个章节介绍OWASP WEB应用测试方法论,以及说明如何在WEB应用中使用合适的安全测试方法发现和证明漏洞。
什么是WEB应用安全测试?
安全测试是通过有条不紊检验和验证有效的应用安全控制来评估计算机系统或网络系统安全性的方法。整个流程包括积极分析应用的弱点,技术缺陷,或者漏洞。任何被发现的安全问题将被提交给这个系统的所有者,同时被提交的还有对此安全问题所产生影响的评估,以及减小或降低这个问题所产生风险的建议书或技术解决方案。。
什么是漏洞?
漏洞是在系统设计,实现,或操作管理中可以利用的一个缺陷或者一个弱点,它能破坏系统安全策略。
什么是威胁?
威胁是利用漏洞产生的潜在攻击,可能危害应用资产(有价值的资源,如数据库中的数据或文件系统的数据)。
什么是测试?
测试就是证明一个应用的安全需求与它的利益相符合的行为。
这篇指南的编写方法
OWASP的方法是开放与协作:
- 开放: 每个安全专家都能将他/她的经验加入到项目之中。所有东西都是免费的。
- 协作: 每篇文章编写前,每个小组都会举行头脑风暴来更好地分享主意以及为项目建立集体视野。这意味着更好的一致性,更多的听众群以及更高的参与度。
这种方法创建的测试方法论有着如下特点:
- 一致性
- 可重现
- 缜密性
- 有质量控制
被提及的问题都已经完全文档化和被测试。使用一种方法论去测试所有已知漏洞和归档所有安全测试活动是十分重要的。
什么是OWASP测试方法论?
安全测试从不是一门精准的能够定义所有可能需要测试的问题的科学。事实上,安全测试只是适合在一定环境下测试WEB应用安全的一种技术。这个项目的目的是收集所有可能的测试技术并进行解释然后保持更新。OWASP网页应用安全测试是基于黑盒测试方法。测试人员不知道或者仅仅知道一点关于被测试的系统。
测试的模型包括:
- 测试者:执行测试的人员
- 工具和方法:测试指导项目的核心
- 应用:用于测试的黑盒
测试分成2个阶段:
- 阶段1: 被动模式
在被动模式里面,测试人员尽力去明白应用的逻辑并使用系统。可以用工具进行信息的收集。比如http代理器观察http的请求和响应。在这个阶段的最后,测试人员应该了解这个应用所有的控制点(入口)(比如Http头,参数,cookies)。信息收集章节具体解释了如何执行被动模式的测试。
比如,测试者应该看如下的信息:
https://www.example.com/login/Authentic_Form.html
这个展示了一个认证的表单,需要一个用户名和密码。
下面的参数展现了两个测试入口点:
http://www.example.com/Appx.jsp?a=1&b=1
在这种情况下,应用表明了2个入口(参数a和b)。 所有的在这个阶段发现的入口表明了一个测试的点。一个应用的目录树形数据表以及所有的点对于第二个阶段都是很有用的。
- 阶段2: 主动模式
在这个阶段,测试者开始用下面描述的方法测试。
我们将主动测试分成11个子类共91项测试:
- 信息收集
- 配置以及部署管理测试
- 身份鉴别管理测试
- 认证测试
- 授权测试
- 会话管理测试
- 输入验证测试
- 错误处理测试
- 密码学测试
- 业务逻辑测试
- 客户端测试
小编大概看了一下手册,基本都是干货,不管是渗透测试人员还是web开发人员都可研究一番。
- 【Spring开发】—— AOP之方法级拦截
- eclipse tomcat下网页修改不生效
- 【插件开发】—— 14 Site is incorrect!编辑器启动报错!
- Java魔法堂:Date与日期时间格式化
- Java魔法堂:打包知识点之META-INF/MAINFEST.MF
- WordPress快速建站
- 大数据时代下的生活
- 【Spring实战】—— 1 入门讲解
- 博客园小技巧
- JS魔法堂:关于元素位置和鼠标位置的属性
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- Winodws安装系统时,通过安装磁盘进行分区
- Eclipse安装SVN插件
- JS魔法堂:IE5~9的Drag&Drop API
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php中的buffer缓冲区用法分析
- Python虚拟环境的创建和包下载过程分析
- Django视图、传参和forms验证操作
- Django:使用filter的pk进行多值查询操作
- 如何在keras中添加自己的优化器(如adam等)
- python实现将中文日期转换为数字日期
- PHP中使用CURL发送get/post请求上传图片批处理功能
- django filter过滤器实现显示某个类型指定字段不同值方式
- PHP中使用mpdf 导出PDF文件的实现方法
- PyTorch实现重写/改写Dataset并载入Dataloader
- 详细分析Python垃圾回收机制
- PHP实现用session来实现记录用户登陆信息
- django序列化时使用外键的真实值操作
- 网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
- 如何基于Python爬取隐秘的角落评论