昨天的文章中引用了OWASP2013年的江湖排名,今天来看一下TOP中XSS的左邻右舍都是谁,先看一下他们的大名,再进一步介绍
【以下主要翻译自https://www.owasp.org/index.php/Top_10_2013-Top_10】:
A1-Injection 注入
A2-BrokenAuthentication and Session Management 失效的验证和会话管理
A3-Cross-SiteScripting (XSS) 跨站脚本
A4-InsecureDirect Object References 不安全的直接对象访问
A5-SecurityMisconfiguration 不正确的安全配置
A6-SensitiveData Exposure 敏感数据暴露
A7-MissingFunction Level Access Control功能级别访问控制缺失
A8-Cross-SiteRequest Forgery (CSRF) 跨站请求伪造
A9-UsingComponents with Known Vulnerabilities 使用带有已知漏洞的组件
A10-UnvalidatedRedirects and Forwards 未验证的重定向和跳转
下面介绍各个部分主要涉及的内容
A1-Injection 注入
注入类的漏洞产生的原因是由于执行了未经授权的客户本不可信的数据或者命令,此类漏洞主要包含SQL注入, 操作系统命令注入,LDAP注入等。
A2-BrokenAuthentication and Session Management 失效的验证和会话管理
此类漏洞产生的原因主要是由于没有正确处理用户的个性化信息,逻辑中存在缺陷,从而导致第三方用户可以通过某些获取的信息来伪装成为合法用户。
A3-Cross-SiteScripting (XSS) 跨站脚本
此类问题产生的根本原因是由于没有过滤和转义用户的输入信息,而直接显示在页面上。
A4-InsecureDirect Object References 不安全的直接对象访问
此类问题主要是由于访问的资源没有对应的权限控制,比如http://xx/sid=001,如果后台没有权限控制,攻击者可以尝试sid=002,sid=003….
A5-SecurityMisconfiguration 不正确的安全配置
安全的配置包含定义在应用、应用服务器、WEB服务器、数据库服务器、防火墙等一系列软件硬件上规则,只有开放最小的权限给外部,并及时更新软件,才能减少由于不安全的配置导致的攻击行为。
A6-SensitiveData Exposure 敏感数据暴露
对于敏感数据不同的人有不同的定义,但对于像姓名、身份证号、手机号、详细住址、密码之类的内容应该都属于敏感数据,随着大家安全意识地增长,还会有更多的内容被定义为敏感数据,网站需要做到的就是保护好用户交给你的一切数据,切不可再出现明文存放密码的情况。
A7-MissingFunction Level Access Control功能级别访问控制缺失
此类漏洞的原因是前端做了权限的校验,后台却没有做同样的校验,比如当用户没有删除权限时UI设置删除按钮为不可用状态,但后台却没有对删除做权限的控制,一旦用户直接发出了删除按钮对应的请求,后台将执行删除动作。
A8-Cross-SiteRequest Forgery (CSRF) 跨站请求伪造
在用户不知情的情况下,利用合法用户的身份,在合法用户的终端调用请求,此漏洞配合XSS使用威力很大!
A9-UsingComponents with Known Vulnerabilities 使用带有已知漏洞的组件
此漏洞是由于使用的各种组件如lib、框架或者某个模块存在漏洞,而漏洞已经被大家熟知,如struts2的远程执行命令漏洞。
A10-UnvalidatedRedirects and Forwards 未验证的重定向和跳转
此类漏洞由于重定向或者跳转的没有做数据的合法性检查导致,常见的情况为http://XX/login.jsp?backurl=main.jsp,如果后台验证登录后直接转发请求或者重定向到backurl则当用户的请求被第三方修改过后,用户登录后的认证信息就有可能被第三方截获并使用。