CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.10)
ID

cwe - 74:不当中和下游组件使用的特殊元素的输出(注射)

弱点ID: 74
抽象:
结构:简单的
视图定制的信息:
+描述
产品结构的全部或部分命令,数据结构,或记录使用externally-influenced输入从一个上游组件,但是它不中和或错误中和特殊元素,可以修改它是如何解析或解释当它发送到下游组件。
+扩展描述
软件或其他自动化逻辑有一定的假设分别什么是数据和控制。它是缺乏验证这些假设的用户控制输入导致注入问题。注入问题包含了各种各样的问题,减轻以非常不同的方式,通常试图为了改变过程的控制流。出于这个原因,讨论这些弱点的最有效的方法是注意截然不同的特性,其分类为注入的弱点。需要注意的最重要的问题是,注入所有的问题都有一个共同点,即。,他们允许注入控制平面数据到用户控制飞机。这意味着过程的执行可能被改变通过合法的数据通道发送代码,使用任何其他机制。虽然缓冲区溢出,和许多其他缺陷,包括获得执行进一步的使用问题,注入的问题只需要解析数据。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 707年 不适当的中和
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 75年 未能清洁特殊元素转换为不同的平面(特殊元素注入)
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 77年 不当中和一个命令中使用的特殊元素(“命令注入”)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 79年 中和不当输入在Web页面生成(“跨站点脚本编制”)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 91年 XML注入(又名XPath盲注)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 93年 中和不当CRLF序列(CRLF注入)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 94年 不当控制生成的代码(代码注入)
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 99年 不恰当的控制资源标识符(“资源注入”)
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 943年 不当中和特殊元素的数据查询逻辑
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1236年 不当中和公式元素的CSV文件
光束 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 20. 不正确的输入验证
光束 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 116年 不当的编码或逃避的输出
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 77年 不当中和一个命令中使用的特殊元素(“命令注入”)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 78年 不当使用中和特殊元素在一个操作系统命令(OS命令注入)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 79年 中和不当输入在Web页面生成(“跨站点脚本编制”)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 88年 不当中和一个命令的参数分隔符(“参数注入”)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 89年 不当使用中和特殊元素在一个SQL命令(SQL注入)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 91年 XML注入(又名XPath盲注)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 94年 不当控制生成的代码(代码注入)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 917年 不当中和一个表达式语言语句中使用的特殊元素(表达式语言注入)
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1236年 不当中和公式元素的CSV文件
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关视图”架构概念”(cwe - 1008)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1019年 验证输入
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现 实现:造成这一弱点在建筑安全策略的实施。
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密

技术的影响:读取应用程序数据

注入攻击涉及许多方面的重要信息的披露,数据敏感性和有效性进一步剥削。
访问控制

技术的影响:旁路保护机制

在某些情况下,注射代码控制认证;这可能会导致远程漏洞。
其他

技术的影响:改变执行逻辑

注入攻击的特点是能够显著改变给定的流动过程,在某些情况下,执行任意代码。
完整性
其他

技术的影响:其他

数据注入攻击导致的损失数据完整性在几乎所有情况下的控制平面数据注入总是附带数据召回或写作。
不可抵赖性

技术的影响:隐藏活动

经常unlogged注入控制代码执行的操作。
+利用的可能性
+示范例子

示例1

这个示例代码将把用户的名字和列表,用户的主目录的内容。它受到第一个变种的OS命令注入。

(坏的代码)
例如语言:PHP
$ userName = $ _POST(“用户”);
$命令= ' ls - l /home/ '。美元的用户名;
系统($命令);

$ userName变量不是检查恶意输入。攻击者可以将$ userName变量设置为任意操作系统命令,如:

(攻击代码)
;rm射频/

这将导致美元的命令是:

(结果)
ls - l /home/; rm射频/

因为分号在Unix命令分隔符,操作系统将首先执行ls命令,然后rm命令,删除整个文件系统。

还注意到,这个示例代码是容易受到路径遍历(CWE-22)和不受信任的搜索路径(cwe - 426)的攻击。

示例2

考虑以下项目。它打算执行“ls - l”输入文件名。validate_name()子例程执行验证的输入以确保只允许字母数字和“-”字符,这避免了路径遍历(CWE-22)和操作系统命令注入(cwe - 78)的弱点。只有文件名“abc”或“d-e-f”旨在允许。

(坏的代码)
例如语言:Perl
我的$ arg = GetArgument(“文件名”);
do_listing (arg);

子do_listing {
我的(帧)= @ _;
如果(!validate_name(帧)美元){
打印”错误:名称格式不正确! \ n”;
返回;
}
#构建命令
我的$ cmd =“美元/ bin / ls - l帧”;
系统(cmd);
}

子validate_name {
我(名字)美元= @ _;
如果($ name = ~ / ^ \ w \[-] + /美元){
返回(1);
}
其他{
返回(0);
}
}

然而,validate_name()在船底文件名,用“-”开始。敌人可以供应一个文件名“基于“增大化现实”技术”,产生“ls - l ar”命令(cwe - 88),从而得到一个完整的清单整个递归目录及其所有子目录的。

有几个可能的缓解措施的弱点。一是重构代码完全避免使用系统(),而不是依赖内部函数。

另一个选择可能是添加一个”——“参数ls命令,如“ls - l——”,所以,任何剩余的参数作为文件名,导致任何领先的“-”被视为一个文件名的一部分而不是另一个选择。

另一个修复可能是改变正则表达式中使用validate_name迫使文件名的第一个字符是字母或数字,如:

(好的代码)
例如语言:Perl
如果($ name = ~ / ^ \ w (\ w \] +美元/)……
+观察到的例子
参考 描述
面向依赖管理工具可以避免OS命令注入在生成Git命令但是允许注入可选参数和输入从少量开始,可能允许代码执行。
规范的操作系统命令的例子注入。CGI程序并不中和“|”元字符当调用一个电话本程序。
注入sed脚本语法(sed注入)
链:不当输入验证(CWE-20)在用户参数,导致操作系统命令注入(cwe - 78),利用每中钢协KEV在野外。
产品并不中和$ {xyz}风格表达式,允许远程代码执行。(log4shell漏洞)
+潜在的缓解措施

阶段:需求

编程语言和支持技术可能会选择不受这些问题。

实施阶段:

利用一个适当的混合allowlist和denylist解析从所有输入过滤器控制平面的语法。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 727年 OWASP十大2004类别A6 -注塑缺陷
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 929年 OWASP十大2013类别A1 -注射
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 990年 SFP二级集群:污染输入命令
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1347年 OWASP十大2021类别A03:2021 -注射
+笔记

理论

许多人只注射治疗作为输入验证问题(CWE-20),因为很多人并不区分结果/攻击(注射)和阻止攻击成功的保护机制。然而,输入验证只是一个潜在的保护机制(输出编码是另一个),还有一个链接关系不当的执法不当输入验证和其他组件的消息结构。其他问题没有直接关系输入验证,如竞争条件,同样可以在消息结构的影响。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
注入问题(“数据”用作别的)
OWASP十大2004 A6 CWE更具体 注塑缺陷
软件故障模式 SFP24 污染输入命令
+引用
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-08-15 Veracode
建议OWASP 2004年排名前十的映射
2008-09-08 CWE内容团队 主教法冠
更新Common_Consequences、描述关系,Other_Notes, Relationship_Notes, Taxonomy_Mappings Weakness_Ordinalities
2009-01-12 CWE内容团队 主教法冠
更新的关系
2009-05-27 CWE内容团队 主教法冠
更新的名字,Related_Attack_Patterns
2009-07-27 CWE内容团队 主教法冠
更新的关系
2009-10-29 CWE内容团队 主教法冠
更新描述,Other_Notes
2010-02-16 CWE内容团队 主教法冠
更新的关系
2010-04-05 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2010-06-21 CWE内容团队 主教法冠
更新描述、名称
2010-12-13 CWE内容团队 主教法冠
更新Common_Consequences Relationship_Notes
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2014-02-18 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2014-06-23 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-01-19 CWE内容团队 主教法冠
更新的关系
2017-05-03 CWE内容团队 主教法冠
更新Potential_Mitigations Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Applicable_Platforms、Causal_Nature Likelihood_of_Exploit Modes_of_Introduction,关系
2018-03-27 CWE内容团队 主教法冠
更新的关系
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2019-06-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2020-02-24 CWE内容团队 主教法冠
更新引用,Relationship_Notes、关系、Theoretical_Notes
2020-06-25 CWE内容团队 主教法冠
更新Potential_Mitigations
2020-08-20 CWE内容团队 主教法冠
更新Related_Attack_Patterns、人际关系
2021-10-28 CWE内容团队 主教法冠
更新的关系
2022-04-28 CWE内容团队 主教法冠
更新Demonstrative_Examples Related_Attack_Patterns
2022-06-28 CWE内容团队 主教法冠
更新Observed_Examples
2022-10-13 CWE内容团队 主教法冠
更新Observed_Examples
2023-01-31 CWE内容团队 主教法冠
更新描述
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 注射
2009-05-27 未能清理数据到一个不同的平面(又名“注入”)
2010-06-21 未能清理数据到另一个平面(“注入”)
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日