CWE

常见的弱点

社区开发的软件和硬件弱点类型列表

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

CWE-939:自定义URL方案处理程序中的授权不当

弱点ID:939
抽象:根据
结构:简单的
查看自定义信息:
+描述
该产品将处理程序用于自定义URL方案,但不能正确限制哪些参与者可以使用该方案调用处理程序。
+扩展描述
移动平台和其他架构允许使用自定义URL方案来促进应用程序之间的通信。就iOS而言,这是唯一进行应用间通信的方法。该实施是由开发人员的自由裁量权,可能会在应用程序中打开安全缺陷。一个示例可能是潜在的危险功能,例如通过自定义URL方案修改文件。
+关系
部分帮助该表显示了与这种弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与观点“研究概念”相关(CWE-1000)
自然 类型 ID 姓名
Childof 班级班级 - 以非常抽象的方式描述的弱点,通常与任何特定的语言或技术无关。比支柱弱点更具体,但比基本弱点更一般。班级弱点通常用以下维度的1或2来描述问题:行为,属性和资源。 862 缺少授权
部分帮助该表显示了与这种弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“软件开发”视图相关(CWE-699)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1212 授权错误
部分帮助该表显示了与这种弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
+与“建筑概念”的视图相关(CWE-1008)
自然 类型 ID 姓名
成员 类别类别 - 包含共享共同特征的其他条目的CWE条目。 1011 授权演员
+介绍模式
部分帮助引言的不同模式提供了有关如何以及何时引入这种弱点的信息。该阶段识别可能发生介绍的生命周期中的一个点,而音符提供了与给定阶段中引言有关的典型情况。
阶段 笔记
执行 实现:这种弱点是在实施建筑安全策略期间引起的。
+适用的平台
部分帮助该清单显示可能出现给定弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。

技术

课程:移动(不确定的患病率)

+示例

示例1

该iOS应用程序使用自定义URL方案。URL方案中的替换Filetext操作允许外部应用程序与文件IncomingMessage.txt接口,并用查​​询字符串的文本字段替换内容。

外用

(好代码)
示例语言:Objective-C
nsstring *strimurl = @“ appscheme:// repleentfiletext?file = incomingMessage.txt&text&text = hello”;
nsurl *url = [nsurl urlwithstring:stringurl];
[[uiapplication sharedApplication] openurl:url];

应用URL处理程序

(不良代码)

- (bool)应用程序:( uiapplication *)应用程序handeropenurl :( nsurl *)url {
如果(!url){
返回no;
}
NSSTRING *action = [url host];
if([[[Action iSequalToString: @“ repenterfiletext”]){
nsdictionary *dict = [self parsequerystringExampleFunction:[url查询]];
//此功能将将内容写入指定文件
fileObject *objectfile = [self writeTofile:[dict objectforkey: @“ file”] withText:[dict objectforkey: @“ text”“”];
}
返回是;
}

处理程序对谁可以使用其功能没有限制。可以使用任何调用URL处理程序的方法来调用处理程序,例如嵌入在Safari打开的网页上的以下恶意iframe。

(攻击代码)
示例语言:html
<

攻击者可以托管一个恶意网站,其中包含iframe和欺骗用户通过精心设计的网络钓鱼电子邮件进入该网站。由于Safari会自动执行IFRAME,因此当处理程序执行IFRAME代码时,不会提示用户,该代码自动调用URL处理程序,用恶意网站列表替换书签文件。由于替换filetext是一种潜在的危险操作,这是一种修改数据的动作,因此在WriteTofile之前应进行理智检查:withText:function。

示例2

这些Android和iOS应用程序在使用特定的URL方案中拦截了WebView中的URL加载,并执行特殊操作,从而允许WebView中的JavaScript与应用程序通信:

(不良代码)
示例语言:爪哇
// 安卓
@Override
public boolean shopsoverriesurlloalloading(WebView视图,字符串URL){
if(url.substring(0,14).equalsignorecase(“示例Cheme:”)){
if(url.substring(14,25).equalsignorecase(“ getuserinfo”)){
WritedAtatoView(视图,用户数据);
返回false;
}
别的{
返回true;
}
}
}
(不良代码)
示例语言:Objective-C
// ios
- (boo)webview :( uiwebview *)exwebview shopsstartloadwithrequest :( nsurlrequest *)exrequest navigationType :( uiwebviewnavigation type)exnavigationpe)
{
nsurl *url = [Exrequest URL];
if([[[url方案] iSequalTostring:@“示例”])
{
NSString *functionString = [url ResourcesPecifier];
if([[functionString HASPREFIX:@“ SpecialFunction”]))
{

//使数据在WebView中可用。
uiwebview *webview = [self Writedatatoview:[url查询]];
}
返回no;
}
返回是;
}

然后,可以通过在URL中传递参数来启动“本机代码”:

(攻击代码)
示例语言:JavaScript
window.location =示例Cheme:// method?parameter = value

由于该应用程序没有检查源,因此加载在本网络浏览中的恶意网站对API的访问与受信任的网站相同。

+观察到的例子
参考 描述
URL方案的操作替换不需要用户提示,允许远程攻击者执行不希望的操作。
URL方案具有跟随动作和喜爱,允许远程攻击者迫使用户执行不希望的动作。
+潜在的缓解

阶段:建筑和设计

利用用户提示弹出窗口来授权潜在的有害操作,例如修改数据或处理敏感信息的操作。

在设计URL方案中的操作功能时,请考虑是否应访问所有移动应用程序,还是应用程序允许列表与应用程序接口的允许列表是适当的。

+参考
[Ref-938] Guillaume Ross。“策划隐私和安全”。2013-11-11。<http://brooksreview.net/2013/11/guest-post_scheming-for-privacy-and-security/>。
+内容历史记录
+提交
提交日期 提交者 组织
2014-01-14 CWE内容团队 MITER
+修改
修改日期 修饰符 组织
2017-01-19 CWE内容团队 MITER
更新的关系
2017-11-08 CWE内容团队 MITER
更新的模式_OF_INTRODUCTION,参考,关系
2020-02-24 CWE内容团队 MITER
更新了适用的_platforms,关系
2020-06-25 CWE内容团队 MITER
更新的势_MINEIGATIONS
2021-03-15 CWE内容团队 MITER
更新了示范_examples
2023-01-31 CWE内容团队 MITER
更新的描述
提供更多信息 - 请选择其他过滤器。
页面最后更新:2023年1月31日