当前位置:首页 > 专题开发/技术/项目 > 信息/网络安全

个人发现的createProcess调用破绽

优良自学吧提供个人发现的createProcess调用破绽,个人发现的createProcess调用漏洞现在的杀毒软件都会杀掉c盘下的program.exe程序,所以某种意义上而言,这个漏洞算不上“漏洞”。

个人发现的createProcess调用漏洞

现在的杀毒软件都会杀掉c盘下的program.exe程序,所以某种意义上而言,这个漏洞算不上“漏洞”。

问题描述

眼睛护士版本:3.0.18.301存在createProcess调用漏洞。

详细说明

将精心构造的program.exe放置到C盘根目录下,运行眼睛护士,

 个人发现的createProcess调用破绽

右键桌面上的眼睛护士软件的矩形窗口,点击“立即休息”,可以看到C盘根目录下的program.exe程序被执行!

主要原因是:createprocess的第一个参数设为NULL,commandLine参数没有做“”包含,导致精心放置在系统目录下的 “C:\Program.exe”被加载执行。

漏洞证明

1.下载最新版本eyefoo

 个人发现的createProcess调用破绽

个人发现的createProcess调用破绽

2.使用DEV-C++构造program程序,如下:

#include<stdio.h>

int main()

{

    printf("12345678910\n");

    getchar();

    getchar();

    return 0;

    }

将编译生成的program.exe程序扔到c盘根目录下

运行眼睛护士软件,可以看到桌面上有如下矩形窗口:

个人发现的createProcess调用破绽

右键该矩形窗口,点击“立即休息”,可以看到C:\program.exe被执行。

个人发现的createProcess调用破绽

3.漏洞调试

使用OllyDbg,附加到eyefoo进程

 个人发现的createProcess调用破绽

打开视图中的可执行模块,

个人发现的createProcess调用破绽

在可执行模块中找到KERNEL32模块。

右键“显示名称”,在其中找到createProcessW调用,

 个人发现的createProcess调用破绽

在地址7674A510处右键设置断点。

此时,回到桌面上眼睛护士的矩形窗口,右键点击“立即休息”,可以看到OllyDbg调试eyefoo执行到了地址7674A510的位置,如下图所示:

 个人发现的createProcess调用破绽

 从图中右下角可以看到如下信息:

 个人发现的createProcess调用破绽

即使用的是UNICODE字符,用的是CreateProcessW调用。其调用的参数信息在图中右下角,如下所示:

个人发现的createProcess调用破绽

可以看到:

createProcessW的第一个参数被设置为NULL,第二个参数传入“C:\Program Files (x86)\EyeFoo3\eyefoo.exe /break”时没有再加上一层双引号。其中/break表示的就是让眼睛护士立即休息。

此时,在OllyDbg程序中继续运行,可以看到,

 个人发现的createProcess调用破绽

即createProcess漏洞被触发,精心构造在C盘根目录下的program.exe程序被执行。

漏洞修复

修复方式有两种:

1.将CreateProcessW的第一个参数由NULL改为cmd。

2.将命令字符串放置在第2个参数时,应用双引号包括进来,如下:

“\“C:\\Program Files (x86)\\EyeFoo3\\eyefoo.exe /break\””

提交到乌云平台

http://www.wooyun.org/bugs/wooyun-2010-0147165/trace/0ca409b12cda790d1340e13f1a15ea49

利用上述链接,进行跟进漏洞审核过程。


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢