描述
攻击者向目标软件提供输入数据,其中包含特殊字符序列设计绕过输入验证逻辑。这个利用依赖于目标使倍数通过输入数据和处理与每个通过“层”的特殊字符。通过这种方式,攻击者可以输入,否则被拒绝伪装成无效通过隐藏层的特殊/转义字符脱光衣服的后续处理步骤。目标是第一个发现的情况下输入验证层之前执行一个或多个解析层。也就是说,用户输入应用程序中可能经历以下逻辑:< parser1 > - - > <输入验证器> - - > < parser2 >。在这种情况下,攻击者将需要提供输入,通过输入验证器,但通过parser2后,将转换成输入验证器应该停止。
攻击的可能性
典型的严重性
执行流程
探索
确定应用程序/系统输入,需要绕过输入验证:攻击者首先需要确定应用程序/系统的输入,输入验证执行,他们想绕过它。
技术 |
在使用一个应用程序/系统,攻击者发现一个输入验证是阻止他们表演一些恶意或未经授权的操作。 |
实验
确定哪些字符编码是接受的应用程序/系统:然后攻击者需要提供不同的字符编码到应用程序/系统,并确定哪些是接受。攻击者需要观察数据编码的应用程序/系统的响应来确定数据是否正确解释。
技术 |
确定哪些转义字符是由应用程序/系统接受。一个常见的反斜杠字符转义字符,“\” |
确定URL编码是否接受应用程序/系统。 |
确定utf - 8编码是否接受应用程序/系统。 |
确定utf - 16编码是否接受应用程序/系统。 |
确定其他编码是否接受应用程序/系统。 |
结合多个编码接受的应用程序。攻击者现在结合编码接受应用程序。攻击者可能会结合不同编码或多次应用相同的编码。
技术 |
结合多次相同的编码,观察其效果。例如,如果特殊字符编码和一家领先的反斜杠,然后下面的编码可能接受的应用程序/系统:" \ \ \ "。两个解析层,这可能会转化为“\”。在第一次解析层,然后,”,“在第二次。如果输入验证层是两个解析层之间,然后“\ \ \ \ \ \”。可能通过测试”。“但仍然会转化为“…”。这可能使目录遍历的攻击。 |
结合多个编码,观察效果。例如,攻击者可能编码“。”“\”。, and then, encode "\." as "\.", and then, encode that using URL encoding to "%26%2392%3B%26%2346%3B" |
利用
利用旁路输入验证的能力:攻击者利用旁路输入验证的能力获得未授权访问系统。可能有许多攻击,还提到了几个例子。
技术 |
获得敏感文件。 |
执行命令注入。 |
执行SQL注入。 |
执行XSS攻击。 |
先决条件
用户输入用于构造在目标系统上执行一个命令或文件名的一部分。 |
上执行多个解析器通过用户提供的数据。 |
技能要求
(级别:中等) 各种逃离计划的知识,比如URL逃脱转义字符编码和XML。 |
指标
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密
访问控制
授权 |
获得特权 |
|
保密 |
读取数据 |
|
缓解措施
迭代方法可能需要输入验证,确保没有危险的人物存在。可能需要在不同的输入验证层实现冗余检查。尽快确保无效的数据被拒绝,不继续工作。 |
确保执行输入验证规范化数据(即数据在其最标准的数据形式)。这将有助于避免棘手的编码在通过过滤器。 |
假设所有的输入是恶意的。创建一个定义所有有效allowlist输入软件系统根据需求规格说明书。输入不匹配allowlist不会被允许进入系统。 |
例子,实例
反斜杠字符multiple-parser问题提供了一个很好的例子。用反斜杠转义字符在字符串,但也用来划定在NT目录文件系统。当执行一个命令注入包括NT路径,通常有一个需要“双逃脱”反斜杠。在某些情况下,一个四逃跑是必要的。
原始字符串:C: \ \ \ \ winnt \ \ \ \ system32系统\ \ \ \ cmd。exe / c
<解析层>
临时字符串:C: \ \ winnt \ \ system32系统\ \ cmd。exe / c
<解析层>
最后的字符串:C: \ winnt \ system32系统\ cmd。exe / c 这个图表显示了每个连续的层解析翻译反斜杠字符。双反斜杠成为一个解析。通过使用四反斜杠,攻击者能够控制最后的结果字符串。 (REF-1] |
分类法映射
CAPEC映射ATT&CK技术利用一个继承模型简化和减少直接CAPEC / ATT&CK映射。继承的映射表示文本说明父CAPEC有相关ATT&CK映射。注意,ATT&CK企业框架不使用一个继承模型的一部分映射到CAPEC。
引用
[REF-1] g·霍格伦德和g·麦格劳。“利用软件:如何打破代码”。addison - wesley。2004 - 02。 |
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attacker_Skills_or_Knowledge_Required、描述描述总结,参考 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances Execution_Flow,移植 |
2021-06-24
(版本3.5) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|