程序可信任路径代码执行漏洞
来源:互联网 发布:酷炫的js特效 编辑:程序博客网 时间:2024/06/06 02:10
转自:http://www.2cto.com/Article/201305/208951.html
时间:2012-09-26
【漏洞描述】
在使用CreateProcess函数时,当第一个参数lpApplicationName为NULL,而第二个参数lpCommandLine中包含有空格,且未加双引号时,会导致在执行函数时会被截断,比如:c:\program files\sub dir\program name,程序将会以下列顺序来搜索程序:
c:\program.exe files\sub dir\program name
c:\programfiles\sub.exe dir\program name
c:\programfiles\sub dir\program.exe name
c:\programfiles\sub dir\program name.exe
演示代码:
#include <stdio.h>
#include <windows.h>
int main()
{
char cmd[] = "C:\\Program Files\\test.exe"; // test.exe为命令控制台cmd.exe,而C:\Program.exe为计算器calc.exe
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = TRUE;
CreateProcess(NULL,cmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
return 0;
}
执行后会打开计算器calc.exe,而不是cmd.exe:
点击查看原始尺寸
【漏洞修复】
主要有以下两种修复方式:
1、 将执行命令字符串放置在第1个参数lpApplicationName中:
CreateProcess(cmd,NULL,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
2、当将命令字符串放置在第2个参数时,应用双引号包括进来:
char cmd[] = "\”C:\\Program Files\\test.exe\”";
- 程序可信任路径代码执行漏洞
- FreeBSD telnetd守护程序远程代码执行漏洞
- struts2代码执行漏洞
- Elasticsearch 代码执行漏洞
- [其他] 代码执行漏洞
- 任意代码执行漏洞
- PHP代码执行漏洞
- JBOSS远程代码执行漏洞
- PHP代码执行漏洞总结
- JBOSS远程代码执行漏洞
- PHP代码执行漏洞总结
- thinkphp任意代码执行漏洞
- thinkphp任意代码执行漏洞
- JBOSS远程代码执行漏洞
- Struts2远程代码执行漏洞
- JBOSS远程代码执行漏洞
- PHP代码执行漏洞总结
- Struts2远程代码执行漏洞
- skb_share_check简单解释
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- 设置SQL别名
- SciPy教程 - 稀疏矩阵库scipy.sparse
- EXT框架Web应用Selenium自动化之XPath
- 程序可信任路径代码执行漏洞
- 支持向量机基础
- 进入Material Design时代
- 状态机调度设计学习小结
- iOS7 canPerfomrAction:withSender: 禁止复制 剪切 选择等失效的处理
- 人和人是不一样的
- Openwrt研习笔记三之源码的下载和编译
- js 侧边栏
- perfect shuffle 完美洗牌算法