cwe - 114:过程控制
视图定制的信息:
过程控制漏洞采取两种形式:
第一类型的过程控制漏洞时要么来自不受信任来源的数据进入应用程序和数据被用作一个字符串的一部分代表一个命令执行的应用程序。通过执行命令,应用程序为攻击者提供了特权或能力,否则攻击者不会有。 ![]() ![]()
![]() ![]()
![]() ![]()
![]()
![]() 语言 类:不是特定于语言的患病率(待定) ![]()
示例1 下面的代码使用System.loadLibrary()从本地加载代码库命名库。dll,它通常是在一个标准的系统目录中。
(坏的代码)
例如语言:Java
…
System.loadLibrary (“library.dll”); … 这里的问题是,System.loadLibrary()接受一个库名称,不是一个路径,为库加载。这个函数从Java 1.4.2 API文档表现如下[1]:包含本机代码的文件从本地文件系统加载库文件从一个地方传统。这个过程是随具体的细节。从图书馆名称映射到一个特定的文件名是系统特定的方式完成的。如果攻击者能够放置一个恶意的图书馆。dll更高的搜索顺序文件中的应用程序将加载,那么应用程序将加载恶意复制而不是目的文件。因为应用程序的性质,以更高权限运行,这意味着攻击者的库的内容。dll将以更高权限运行,可能给他们完整的控制系统。 示例2 下面的代码从一个特权应用程序使用一个注册表项来确定目录中安装并加载库文件基于指定的目录的相对路径。
(坏的代码)
例如语言:C
…
RegQueryValueEx(根键,“APPHOME”, 0 0(字节*),大小); char *自由= (char *) malloc (strlen(家)+ strlen (INITLIB)); 如果(自由){ 拷贝字符串(自由、家庭); strcat(自由、INITCMD); LoadLibrary(自由); … 这个例子中的代码允许攻击者任意加载库,与高特权的代码将被执行的应用程序,通过修改注册表键指定一个包含恶意INITLIB版本不同的道路。因为程序不验证值读取环境,如果攻击者可以控制APPHOME的价值,他们可以愚弄应用程序运行恶意代码。 示例3 下面的代码是一个基于web的管理工具,允许用户访问接口,可以更新他们的个人资料。该实用程序自由利用图书馆命名。dll,它通常是在一个标准的系统目录中。
(坏的代码)
例如语言:C
LoadLibrary (“liberty.dll”);
问题是,程序不为liberty.dll指定绝对路径。如果攻击者能够将恶意图书馆命名自由。dll更高的搜索顺序文件中的应用程序将加载,那么应用程序将加载恶意复制而不是目的文件。因为应用程序的性质,以更高权限运行,这意味着攻击者的自由的内容。dll将以更高权限运行,可能让攻击者完全控制系统。攻击的类型,在本例中是有可能的,因为使用的搜索顺序LoadLibrary()如果不指定绝对路径。如果当前目录搜索系统目录之前,一样直到最近版本的Windows,那么这种类型的攻击变得微不足道,如果攻击者可以在本地执行的程序。搜索顺序依赖操作系统版本,和控制新操作系统的注册表键值:HKLM \ system \ CurrentControlSet \ \会话管理器\ SafeDllSearchMode控制
![]()
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |