个人发现的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等源码结构,这种一般采用非框架开发,但是也有少部分采用框架类开发,针对此类源码程序的安全监测, 我们要利用公开的漏洞进行测试,如不存 ...
随机推荐
- python 接口(抽象) 多态,鸭子类型, 多继承原理(mro)
抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数 ...
- 安装notepad++之后鼠标右键无Edit with notepad++
在鼠标右键上加入使用notepad++编辑 最近发现一个问题在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现“使用notepad++编辑的选项”,不用着急可以通过简单地修 ...
- 4.nginx动静分离
动静分离,就是将css.js.jpg等静态资源和jsp等动态资源分开处理,以此提高服务器响应速度,提高性能. 核心就是区分动态和静态资源 图片转自:https://www.cnblogs.com/xi ...
- spring框架中的aop技术
1. 什么是AOP, 面向切面编程 AOP为Aspect Oriented Programming的缩写, 意为:面向切面编程,主要是使各部分之间的耦合度降低, 提高程序的可重用性, 同时提高了开发的 ...
- vscode安装golang插件失败问题
vscode安装golang插件失败问题 dlv go-outline go-symbols gocode-gomod gocode 代码补全 godef 代码跳转 golint gopkgs gor ...
- windows 下创建 sqlite 数据库
说明:windows 下执行创建 sqlite 数据库命令后数据库文件不会马上生成,需要创建表以后才会生成. 1.将 sqlite3.exe 文件放在任何位置(如放在 d:\tools )2.在 CM ...
- 制作web安装程序
出处:http://www/i-blog.cn/u/chenli/archives/2006/8.html 本文参考http://blog.csdn.net/libra1983/archive/200 ...
- sencha touch overlay 里使用 list
1 sencha touch 中 list 如果不设置一个固定高度或 flex : 1, list 的内容就不会显示出来. 主要是因为 list 是可滚动的,你不设置高度 ,list 的高度默认就是 ...
- 006-动态生成验证码Servlet代码模板
package checking; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java ...
- Android 开发 命名规范(基础回顾)
标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写. 2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字 ...