个人发现的createProcess调用漏洞
现在的杀毒软件都会杀掉c盘下的program.exe程序,所以某种意义上而言,这个漏洞算不上“漏洞”。
问题描述
眼睛护士版本:3.0.18.301存在createProcess调用漏洞。
详细说明
将精心构造的program.exe放置到C盘根目录下,运行眼睛护士,

右键桌面上的眼睛护士软件的矩形窗口,点击“立即休息”,可以看到C盘根目录下的program.exe程序被执行!
主要原因是:createprocess的第一个参数设为NULL,commandLine参数没有做“”包含,导致精心放置在系统目录下的 “C:\Program.exe”被加载执行。
漏洞证明
1.下载最新版本eyefoo


2.使用DEV-C++构造program程序,如下:
#include<stdio.h>
int main()
{
printf("12345678910\n");
getchar();
getchar();
return 0;
}
将编译生成的program.exe程序扔到c盘根目录下
运行眼睛护士软件,可以看到桌面上有如下矩形窗口:

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

3.漏洞调试
使用OllyDbg,附加到eyefoo进程

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

在可执行模块中找到KERNEL32模块。
右键“显示名称”,在其中找到createProcessW调用,

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

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

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

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

即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
利用上述链接,进行跟进漏洞审核过程。
个人发现的createProcess调用漏洞的更多相关文章
- 梦想还需有,因它必实现——发现最新版iOS漏洞,OverSky团队专访
梦想还需有,因它必实现——发现最新版iOS漏洞,OverSky团队专访 “成功了!”,随着一句欢呼声在阿里巴巴西溪园区传出,Cydia的图标出现在一部iOS9.3.4的iPhone6上并成功运行 ...
- 【转载】详解CreateProcess调用内核创建进程的过程
原文:详解CreateProcess调用内核创建进程的过程 昨天同学接到了腾讯的电面,有一题问到了CreateProcess创建进程的具体实现过程,他答得不怎么好吧应该是, 为了以防万一,也为了深入学 ...
- 发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象
发现个delphi调用vc写的Dll中包括pchar參数奇怪现象 procedure中的第一行语句不能直接调用DLL的函数,否则会执行报错,在之前随意加上条语句就不报错了奇怪! vc的DLL源代码地址 ...
- 谷歌开发人员在现代Web浏览器中发现严重跨域漏洞
Google谷歌研究人员在现代网络浏览器中发现了一个严重漏洞,该漏洞可能允许您访问的网站从您登录同一浏览器的其他网站窃取您的在线帐户的敏感内容. 由Google谷歌Chrome的开发者支持者Jake发 ...
- 详解CreateProcess调用内核创建进程的过程
昨天同学接到了腾讯的电面,有一题问到了CreateProcess创建进程的具体实现过程,他答得不怎么好吧应该是, 为了以防万一,也为了深入学习一下,今天我翻阅了好多资料,整理了一下,写篇博客,也算是加 ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
- 【Azure 应用服务】Azure Web App的服务(基于Windows 操作系统部署)在被安全漏洞扫描时发现了TCP timestamps漏洞
问题背景 什么是TCP timestamps(TCP 时间戳)? The remote host implements TCP Timestamps, as defined by RFC1323 (h ...
- c++ CreateProcess调用dos命令
// test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> #include &l ...
- 四十三:漏洞发现-WEB应用之漏洞探针类型利用修复
已知CMS 如常见的dedecms,discuz,wordpress等源码结构,这种一般采用非框架开发,但是也有少部分采用框架类开发,针对此类源码程序的安全监测, 我们要利用公开的漏洞进行测试,如不存 ...
随机推荐
- watch深度监测
假设有如下代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type=&q ...
- WorldCount 结对项目
合作者:201631062501,201631062129 代码地址:https://gitee.com/guilinyunya/WorldCount 伙伴博客地址:https://www.cnblo ...
- JavaWeb——Servlet如何调用线程池中的线程?
tomcat线程池与servlet https://blog.csdn.net/qq_27817797/article/details/54025173 https://blog.csdn.net/l ...
- centos 7 下安装nginx-1.15.7
安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装安装 nginx 需要先 ...
- gVim安装vim-template插件后提示Undefined variable vim_template_subtype/Press ENTER or type command to continue
Win7 64位 gVim:version 8.1.1234 vim-template:github链接 安装方式: 直接下载master的zip压缩包,解压后放入本地gVim安装目录的plugin, ...
- CommandBehavior.CloseConnection有何作用
其用在ExecuteReader(c)中,返回对象前不能关闭数据库连接,须用CommandBehavior.CloseConnection: 这是一个关于实际知识点的问题,面试官考查的是应聘者数据库访 ...
- Full Text Search 实现Sort的实现方案
CREATE TABLE dbo.pageStore( ID int NOT NULL, StoreName varchar(50) NULL, OwnerOccupation varchar(50) ...
- Robot Framework环境搭建(问题总结)
Robot Framework+python+wxpython+robotframework-ride+library环境搭建问题总结 因为robotframework的兼容性问题要求很严格,小编在环 ...
- selenium+Python(Page Object 设计模式实例)
以下实例演示了采用了page Object设计模式的方式登录qq空间: 1.创建基础类page:在初始方法__init__()定义驱动的(driver),基本url(base_url)和超时时间(ti ...
- HAProxy与Nginx区别
1)HAProxy对于后端服务器一直在做健康检测(就算请求没过来的时候也会做健康检查):后端机器故障发生在请求还没到来的时候,haproxy会将这台故障机切掉,但如果后端机器故障发生在请求到达期间,那 ...