程序可信任路径代码执行漏洞
2014-12-06 00:16
155 查看
转自: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\”";
时间: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\”";
相关文章推荐
- Windows可信任路径代码执行漏洞
- 友情检测--tomcat管理程序认证上传及代码执行漏洞
- Apache Struts2任意代码执行漏洞(S2-032)检测程序
- 挖洞手记——软媒魔方可信任程序执行漏洞
- FreeBSD telnetd守护程序远程代码执行漏洞
- IE 不能正确处理 MIME 格式邮件附件导致执行攻击者代码漏洞(NIMDA就是利用了此漏洞)
- 用GetModuleFileName获取程序当前执行路径
- IE 5.5 Index.dat 执行任意代码漏洞
- 获取当前程序的执行路径
- 正试图在 OS 加载程序锁内执行托管代码
- 百度搜霸工具条出现下载任意文件执行漏洞 含攻击代码
- ASP程序代码执行时间统计类
- 别让代码执行不必要的路径和让数据绑定执行了多次
- 阿里巴巴支付宝远程代码执行漏洞-0DAY
- ASP程序代码执行时间统计类
- 正试图在 OS 加载程序锁内执行托管代码
- Office远程代码执行漏洞补丁(905413)
- 在DLL中定义MDIChild Form的DLL代码和执行程序代码
- C#指定用户执行程序的示例代码(转载)
- 阿里巴巴支付宝远程代码执行漏洞-0DAY