CWE

普遍的弱点

社区开发的软件和硬件弱点类型清单

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

CWE-180:不正确的行为顺序:在规范之前验证

弱点ID:180
抽象:变体
结构:简单的
查看自定义信息:
+描述
该软件在规范化之前验证输入,这阻止了该软件在规范化步骤后检测到无效的数据。
+扩展描述
这可以由攻击者使用来绕过验证和发射攻击,这些攻击暴露了原本可以预防的弱点,例如注射。
+关系
部分帮助该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 名称
Childof 根据基础 - 仍然主要独立于资源或技术的弱点,但有足够的细节来提供特定的检测和预防方法。基本水平的弱点通常用以下维度的2或3来描述问题:行为,财产,技术,语言和资源。 179 不正确的行为顺序:早期验证
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行
+适用的平台
部分帮助该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

语言

班级:不是特定语言的(不确定的患病率)

+常见后果
部分帮助该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
范围 影响 可能性
访问控制

技术影响:旁路保护机制

+示例的例子

示例1

以下代码尝试通过对允许列表进行检查,然后返回规范路径来验证给定输入路径。在这种特定情况下,如果路径以字符串“/safe_dir/”开头,则认为该路径是有效的。

(不良代码)
示例语言:爪哇
字符串路径= getInputPath();
if(path.startswith(“/safe_dir/”))
{
文件f =新文件(路径);
返回f.GetCanonicalPath();
}

上述代码的问题在于,验证步骤发生在发生规范化之前。攻击者可以提供“/safe_dir/../”的输入路径,该路径将通过验证步骤。但是,规范化过程将双点视为父级目录的遍历,因此何时将路径变为“/”。

为了避免此问题,应在进行规范化后进行验证。在这种情况下,规范化发生在文件对象的初始化期间。下面的代码解决了问题。

(好代码)
示例语言:爪哇
字符串路径= getInputPath();
文件f =新文件(路径);
if(f.getCanonicalPath()。startswith(“/safe_dir/”))
{
返回f.GetCanonicalPath();
}

+观察到的例子
参考 描述
产品允许远程攻击者通过包含“*”(通配符或星号)字符的HTTP请求查看受限制的文件。
产品执行安全检查后,产品将修改文件名扩展名的前两个字母,这使远程攻击者可以通过使用.ATS扩展名而不是.HTS扩展名的文件名绕过身份验证。
处理无法转换的字符时,数据库会消耗额外的字符,该字符可以从查询中删除逃生字符,并使应用程序受到SQL注入攻击的约束。
重叠“ fakechild /../ realchild”
产品检查URI是否为“ <”和其他字面字符,但是在十六进制解码URI之前进行了检查,因此允许使用“%3E”和其他序列。
+潜在的缓解

阶段:实施

策略:输入验证

在经过验证之前CWE-180)。确保应用程序不会解码相同的输入两次(CWE-174)。此类错误可以用来绕过允许列表验证方案,通过检查危险输入后进行检查。
+会员资格
部分帮助此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
自然 类型 ID 名称
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 722 OWASP前十大2004年A1类 - 未验证的输入
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 845 Java的CERT ORACLE SECURE编码标准(2011)第2章 - 输入验证和数据消毒(IDS)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 992 SFP辅助群集:输入转换故障
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1134 Java的SEI CERT ORACLE SECURE编码标准 - 指南00.输入验证和数据消毒(IDS)
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1147 Java的SEI CERT ORACLE SECURE编码标准 - 指南13.输入输出(FIO)
+笔记

关系

这与其他类别重叠。
+分类映射
映射的分类名称 节点ID 合身 映射的节点名称
plover 验证之前
OWASP 2004年前十名 A1 CWE更具体 未验证的输入
Java(2011)的CERT ORACLE SECURE编码标准 IDS01-J 精确的 在验证它们之前将字符串标准化
Java的SEI CERT ORACLE编码标准 IDS01-J 精确的 在验证它们之前将字符串标准化
+内容历史记录
+提交
提交日期 提交者 组织
2006-07-19 plover
+修改
修改日期 修饰符 组织
2008-07-01 埃里克·达奇(Eric Dalci) 雪茄
更新的势_METIGATIONS,time_of_introduction
2008-08-15 VeraCode
建议OWASP前十名2004年映射
2008-09-08 CWE内容团队 MITER
更新的关系,其他_notes,分类_ mappings,类型
2008-10-14 CWE内容团队 MITER
更新的描述
2009-05-27 CWE内容团队 MITER
更新其他_notes,关系_notes
2010-02-16 CWE内容团队 MITER
更新了示范_examples
2011-03-29 CWE内容团队 MITER
更新的势_MINEIGATIONS
2011-06-01 CWE内容团队 MITER
更新的common_conconquence,关系,分类_mappings
2012-05-11 CWE内容团队 MITER
更新了示范示例,obsoved_examples,Related_attack_patterns,关系,分类_mappings
2014-07-30 CWE内容团队 MITER
更新的关系
2017-01-19 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新了适用的_platforms,functional_areas
2019-01-03 CWE内容团队 MITER
更新的关系,分类_mappings
2019-06-20 CWE内容团队 MITER
更新相关的_attack_patterns
2020-02-24 CWE内容团队 MITER
更新的关系,类型
2020-06-25 CWE内容团队 MITER
更新了示范_examples,势_mitigations
+先前的输入名称
改变日期 先前的输入名称
2008-04-11 验证之前
提供更多信息 - 请选择其他过滤器。
页面最后更新:2022年10月13日