[TOC]
0x00 快速入门 OWASP是什么? 描述: Open Web Application Security Project (OWASP)开源Web应用安全项目(OWASP)是一个在线开放的社区,致力于帮助各企业组织开发、购买和维护可信任的应用程序。使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策。目前OWASP全球拥有250个分部近7万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
并且每三年都会颁布相应的TOP 10风险分析,帮助网络安全IT从业人员了解安全标准以及风险管控,所以在web应用安全世界里有一个权威性的名词叫做OWASP我将它看做是做安全开发的标准;
OWASP 发布的标准:
[TOC]
0x00 快速入门 OWASP是什么? 描述: Open Web Application Security Project (OWASP)开源Web应用安全项目(OWASP)是一个在线开放的社区,致力于帮助各企业组织开发、购买和维护可信任的应用程序。使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策。目前OWASP全球拥有250个分部近7万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
并且每三年都会颁布相应的TOP 10风险分析,帮助网络安全IT从业人员了解安全标准以及风险管控,所以在web应用安全世界里有一个权威性的名词叫做OWASP我将它看做是做安全开发的标准;
OWASP 发布的标准:1 2 3 4 5 6 OWASP Mobile Top 10 Risks:十大移动安全漏洞 Top 10 Proactive Controls:构建安全Web应用的十大控制措施 OWASP Application Security Verification Standard(ASVS):应用程序的安全验证标准 OWASP Enterprise Security API(ESAPI) OWASP Testing Guide:OWASP 测试指南 OWASP Developer Guide:OWASP 开发指南
风评框架 OWASP 风险评级框架
风险=可能性×影响
weiyigeek.top-风险评级框架
DREAD安全风险评估模型
Damage potential
Reproducibility
Exploitability
Affected users
Discoverability
Common Vulnerability Scoring System(CVSS) 通用漏洞评分系统: https://www.first.org/cvss/calculator/3.0 基础分+环境分+临时分
附录: OWASP官网:http://www.owasp.org 中国区官网:http://www.owasp.org.cn
0x01 Owasp Top 10 描述:将按照每年从高到低进行排序并且解释相应的漏洞;
2013年 TOP10.未验证的重定向和转发
weiyigeek.top-未验证的重定向与转发
TOP9.使用含有已知漏洞的组件
使用含有已知漏洞组件的意思是程序员在开发WEB应用的时候使用了一些含有漏洞的组件;事实上,大多数的应用都存在这些问题。因为大多数的开发团队并不会把及时更新组件/库作为他们的工作重心
比如含有漏洞的框架库Struct2以及Apache和Spring组件中曾存在认证绕过和远程代码执行漏洞;导致注入攻击,数据的泄露,甚至主机被完全托管
TOP8.跨站请求伪造(CSRF)
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是CSRF是一种Web应用攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作。
比如构建表单让管理员用户点击从而建立一个管理员账户;
TOP7.功能级访问控制缺失
访问控制确实其实很好理解,就是网站的开发人员没有对网站的敏感目录进行权限的限制,导致任何人都可以访问这个敏感的url下载或者浏览铭感信息;即匿名用户可以访问未受保护的私人网页;
漏洞允许攻击者访问未经授权的功能,比如网站sqlback路径下存放数据库的备份文件被下载backup.sql,管理性的功能是这类攻击的主要目标比如后台管理页面禁用JavaScript查看订单(新颖)
TOP6.敏感信息泄露
针对与敏感信息泄露来说,一般是发生在对应该采取加密措施的数据没有进行加密(不安全的密钥生成或密钥存储)。或者是在加密的情况下,采用的脆弱的加密算法加密形同虚设。
比如说用户的信用卡信息就应该以加密的形式存放在数据库中,以及网站报错将物理路径以及数据库账号密码泄露。这些加密信息通常包括很多敏感数据,比如认证凭证,个人隐私数据,信用卡信息等
TOP5.安全配置错误
安全配置错误可以发生在应用的任何层面,包括平台web服务器、应用服务器、数据库、框架和自定义的代码,为了有效防范安全配置错误导致遭到入侵的风险,开发人员应该和系统的管理员共同努力,以确保整个系统的正确配置;同时建议企业安全人员需要定期对企业资产进行收集与扫描,检测补丁是否完全、错误的配置、默认账户的使用和启动了不必要的服务等等;
比如:说web应用上存在默认的账户,存在不在业务范围内的网页(测试页面),网站漏洞没有及时打上补丁,该收到保护的文件没有做权限的控制等等错误的安全配置。手动配置错误、临时配置(或根本不配置)、不安全的默认配置、开启S3 bucket、不当的HTTP 标头配置、包含敏感信息的错误信息、未及时修补或升级(或根本不修补和升级)系统、框架、依赖项和组
危害:未授权访问应用程序文件或系统数据, 未授权的执行功能;
TOP4.不安全的直接对象引用
TOP3.跨站脚本攻击
XSS(跨站脚本)是最普遍的web应用安全漏洞。当应用程序发送给浏览器的页面中包含用户提供的数据,而这些数据没有经过适当的验证或转义(escape),就会导致跨站脚本漏洞。
DOM based XSS : 2005年Amit Klein提出来基于 DOM 的跨站点脚本不需要依赖于服务器端响应的内容,如果某些 HTML 页面使用了document.location、document.URL 或者 document.referer 等 DOM 元素的属性,攻击者可以利用这些属性植入恶意脚本实施基于 DOM 的跨站点脚本攻击。
比如盗取系统管理的cookie从而进行登录;
TOP2.失效的身份认证和会话管理(Weak authentication and session management)
攻击者可以利用认证或会话管理功能中的泄露或漏洞(比如暴露的账户、密码、或会话ID)来假冒用户。失效的身份认证和会话管理漏洞一般出现在退出、密码管理、超时、记住我、秘密问题、帐户更新等等。
比如:一般我们登陆一个网站之后会生成一串cookie值,这串cookie相当于是我们在这个网站上的通行证,而失效的身份认证和会话管理漏洞就是指cookie并没有随着我们的不访问而失效。一旦成功,攻击者能执行受害用户的任何操作。因此特权账户是常见的攻击对象
TOP1.注入攻击
注入漏洞发生在应用程序将不可信的数据作为命令或者查询语句的一部分,被发送到解释器时发生的。攻击者利用有针对性的解释器语法发送简单的、基于文本的攻击。几乎任何数据源都能成为注入载体,包括内部来源。
注入漏洞的本质是原本代码拼接了用户可控数据,导致原本代码语义混淆而导致的安全缺陷。
注入分为很多不同的种类:
SQL注入: 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
SOAP以及LDAP注入等等
总结:ESAPI与OWASP TOP 10
weiyigeek.top-ESAPI
2017年 TOP10.不足的日志记录和监控
缺乏可以防止或者明显延迟恶意活动和破坏安全检测,事件响应和数字取证的安全措施;不足的日志记录和监控,以及事件响应集成的丢失或无效,使得攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据
比如:攻击者使用通用密码进行用户扫描并能获取所有使用此密码的账户。对于其他账户而言,将仅有一次失败的登陆尝试记录。一段时间以后攻击者可以用另一个密码再次进行此活动(保留破解)。
TOP9.使用含有已知漏洞的组件
TOP8.不安全的发序列化
当应用程序接收到恶意的序列化对象时,会出现不安全的反序列缺陷。不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,也可以重播、篡改或删除系列化对象以欺骗用户、进行注入攻击和提升权限
比如:weblogic 反序列化
TOP7.跨站脚本攻击
TOP6.安全配置错误
TOP5.失效的访问控制;
TOP4.外部实体(XXE注入)
许多较早的或配置不佳的XML处理器评估了XML文档中的外部实体引用。外部实体可以通过URI文件处理器、在Windows服务器上未修复的SMB文件共享、内部端口扫描、远程代码执行来实施拒绝服务攻击,
例如:XXE Entity注入
TOP3.敏感信息泄露 TOP2.失效的身份认证和会话管理 TOP1.注入
总结2013与2017对比图:
weiyigeek.top-
参考网站: