CVE-2017-11882漏洞分析报告
漏洞简介:
软件名称及版本:Microsoft Office2016以下
漏洞模块:EQNEDT32.EXE
漏洞编号:CVE-2017-11882
危害等级:高危
漏洞类型:缓冲区溢出
威胁类型:远程
软件简介:
Microsoft Office是微软公司针对Windows操作系统所推出的办公室套装软件,漏洞出现在EQNEDT32.EXE模块中,在Office的安装过程中被默认安装。当插入和编辑数学公式时,EQNEDT32.EXE不是作为Office进程的子进程创建,而是以单独的进程形式存在。所以对Office进程的保护机制无法阻止EQENEDT32.EXE被利用。
漏洞分析及复现过程:
由于EQNEDET32.EXE是被Office进程创建后以单独的进程形式存在所以通过修改注册表的方式设置应用程序以自动启动调试器,
1·在注册表编辑器中定位到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,
2·在Image File Execution Options文件夹中,右击“Image File Execution Options”文件夹,在快捷菜单上单击“新建项”,项名为EQNEDET32.EXE
3·右击“EQNEDET32.EXE”文件夹,在快捷菜单上单击“新建字符串值”,设置字符串名称为debugger 数据数值为调试器的全路径+exe文件。
1·设置进程创建函数的断点 然后运行
查看此时堆栈的情况
VC中函数WinExec的信息如下:
WINSHELLAPI void WINAPI WinExecErrorW(
HWND hwnd, //窗口句柄
int error, //出错信息
LPCWSTR lpstrFileName, //文件名
LPCWSTR lpstrTitle //标题名
);
在堆栈中查看地址信息如下
结合IDA中查看此处的地址
此处的00430C18即为溢出点
进入函数sub_4115A7 F5获得如下伪c代码
继续跟入函数sub_41160F如下
在汇编界面如下
发现使用了了不安全函数strcpy 在进行拷贝的时候未进行长度校验 造成拷贝的时候产生栈溢出。
参考资料:
小白学习CVE-2017-11882漏洞过程
https://bbs.pediy.com/thread-247740.html
隐藏17年的Office远程代码执行漏洞POC样本分析(CVE-2017-11882)
https://www.freebuf.com/vuls/154462.html
上一篇: 抓拍
下一篇: 关于c++类的一些知识的总结