|
知识路径: > 网络信息安全概述 > 网络信息安全目标与功能 > 网站安全需求分析与安全保护工程 > Web应用漏洞分析与防护 >
|
相关知识点:5个
|
|
|
|
OWASP Top 10是国际开放Web应用安全项目组(Open Web Application Security Project,OWASP)推出的前10个Web应用漏洞排名。下面分别介绍2017年版本的OWASP Top 10的漏洞情况。
|
|
|
|
将不受信任的数据作为命令或查询的一部分发送到解析器时,导致产生注入漏洞,如SQL注入漏洞、NoSQL注入漏洞、OS注入漏洞和LDAP注入漏洞。攻击者构造恶意数据输入诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。该漏洞的出现场景举例如下:
|
|
|
|
|
|
|
|
|
|
|
|
攻击者将提交的参数Beijing sales替换为Shenzhen sales(department=*),*字符为LDAP的通配符,变化后为:
|
|
|
|
A2-遭受破坏的认证(Broken Authentication)
|
|
|
Web应用程序存在不限制身份验证尝试、Web会话令牌泄露、Web应用会话超时设置不正确、Web应用口令复杂性不高和允许使用历史口令等问题,从而导致Web应用认证机制受到破坏。攻击者能够破译密码、密钥或会话令牌,或者利用其他开发缺陷来暂时性或永久性地冒充其他用户的身份。
|
|
|
A3-敏感数据暴露漏洞(Sensitive Data Exposure)
|
|
|
许多Web应用程序和API都无法正确保护敏感数据,例如,财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密。这些数据包括传输过程中的数据、存储的数据及浏览器的交互数据。该漏洞的出现场景举例如下:
|
|
|
场景1:一个应用程序使用自动化的数据加密系统加密信用卡信息,并存储在数据库中。但是,当数据被检索时被自动解密,这就使得SQL注入漏洞能够以明文形式获得所有信用卡卡号。
|
|
|
场景2:一个网站上对所有网页没有使用或强制使用TLS,或者使用弱加密。攻击者通过监测网络流量(如:不安全的无线网络),将网络连接从HTTPS降级到HTTP,就可以截取请求并窃取用户会话cookie。之后,攻击者可以复制用户cookie并成功劫持经过认证的用户会话、访问或修改用户个人信息。除此之外,攻击者还可以更改所有传输过程中的数据,例如:转款的接收者。
|
|
|
A4-XML外部实体引用漏洞(XML External Entities,XXE)
|
|
|
许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。该漏洞的出现场景举例如下:
|
|
|
|
|
场景2:攻击者通过将上面的实体行更改为以下内容来探测服务器的专用网络。
|
|
|
|
A5-受损害的访问控制漏洞(Broken Access Control)
|
|
|
未对通过身份验证的用户实施恰当的访问控制,导致访问控制失效。攻击者可以利用这些漏洞访问未经授权的功能或数据。例如,访问其他用户的账户、查看敏感文件、修改其他用户的数据、更改访问权限等。
|
|
|
A6-安全配置错误(Security Misconfiguration)
|
|
|
安全配置错误包括不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息。例如,目录列表在服务器端未被禁用,导致攻击者能列出目录列表;应用程序服务器附带了未从产品服务器中删除的应用程序样例,而这些样例应用程序具有已知的安全漏洞,从而给攻击者提供了漏洞利用机会,给Web服务器带来安全风险。
|
|
|
A7-跨站脚本漏洞(Cross-Site Scripting,XSS)
|
|
|
当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript的浏览器API更新现有的网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
|
|
|
A8-非安全反序列化漏洞(Insecure Deserialization)
|
|
|
非安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括重播攻击、注入攻击和特权升级攻击。
|
|
|
A9-使用含有已知漏洞的组件(Using Components with Known Vulnerabilities)
|
|
|
组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。Web应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御,造成各种攻击并产生严重影响。
|
|
|
A10-非充分的日志记录和监控(Insufficient Logging and Monitoring)
|
|
|
不充分的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统,保持攻击活动连续性或转向更多系统,以及篡改、提取或销毁数据。该漏洞的出现场景举例如下:
|
|
|
场景1:未记录可审计性事件,如登录、登录失败和高额交易。
|
|
|
场景2:没有利用应用系统和API的日志信息来监控可疑活动。
|
|
|
场景3:没有定义合理的告警阈值和制定响应处理流程。
|
|
|
场景4:对于实时或准实时的攻击,应用程序无法检测、处理和告警。
|
|
|
|