cwe - 84:中和不当URI编码方案在一个Web页面
描述
web应用程序不当中和用户控制输入可执行脚本,URI编码的伪装。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
观察到的例子
参考 |
描述 |
|
跨站点脚本(XSS)脆弱性在Microsoft Outlook Web Access (OWA)组件交换服务器5.5允许远程攻击者将任意Web脚本或HTML电子邮件消息的编码javascript: URL (“jav& # X41sc& # 0010; ript:”)在一个IMG标记。 |
|
跨站点脚本(XSS)脆弱性在Novell Groupwise WebAccess 6.5在7月11日之前,2005年允许远程攻击者将通过电子邮件任意web脚本或HTML javascript编码URI(例如。“强生# X41vascript”一个IMG标记)。 |
|
编码的脚本在BBcode IMG标记。 |
|
编码的javascript IMG标记。 |
|
编码的javascript IMG标记。 |
潜在的缓解措施
实施阶段:
解决在处理之前所有uri绝对或规范的表示。 |
实施阶段:
仔细检查每个输入参数与严谨积极的规范(allowlist)定义特定字符和格式允许的。所有输入都应该中和,而不仅仅是用户应该指定参数,但请求中所有数据,包括标记属性,隐藏字段,饼干,标题、URL本身,等等。一个常见的错误导致持续的XSS漏洞仅是验证字段将被显示的网站。我们经常遇到数据从请求所反映的应用服务器或应用程序开发团队没有预料到。一个字段,目前不是反映未来的开发人员可以使用。因此,建议验证HTTP请求的所有部分。 |
实施阶段:
使用和指定输出编码可以由下游组件读取输出。常见的编码包括iso - 8859 - 1、utf - 7, utf - 8。如果不指定一个编码,下游组件可能会选择不同的编码,通过假设一个默认的编码或使用自动推断哪些编码,这可能是错误的。编码不一致时,下游组件可能治疗一些特殊字符或字节序列,即使他们没有特别在原始的编码。攻击者就能够利用这种差异,开展注入攻击;他们甚至可以绕过保护机制,假设原编码也被下游组件。
输出编码不一致的问题经常出现在web页面。如果没有指定一个编码在一个HTTP头,web浏览器经常猜测哪些编码使用。这可以打开浏览器微妙的XSS攻击。
|
实施阶段:
使用Struts,编写所有的数据表单bean与bean的过滤器属性设置为true。 |
实施阶段:
帮助减轻XSS攻击用户的会话cookie, HttpOnly设置会话cookie。在浏览器支持HttpOnly特性(比如最近版本的Internet Explorer和Firefox),这个属性可以防止用户的会话cookie访问恶意使用。com的客户端脚本。这不是一个完整的解决方案,因为HttpOnly不是所有浏览器都支持的。更重要的是,XMLHTTPRequest和其他强大的浏览器技术提供读访问HTTP头信息,包括set - cookie HttpOnly标志设置的标题。
|
弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
千鸟 |
|
|
XSS使用脚本通过URI编码方案 |
软件故障模式 |
SFP24 |
|
污染输入命令 |
|