其他
CVE-2012-3569 VMware OVF Tool格式化字符串漏洞分析
本文为看雪论坛优秀文章
看雪论坛作者ID:Sal_Tay
一
漏洞信息
1、漏洞简述
漏洞名称:VMware OVF Tool格式化字符串漏洞 漏洞编号:CVE-2012-3569 漏洞类型:格式化字符串漏洞 漏洞影响:信息泄露 CVSS评分:9.3(High) 利用难度:Medium 基础权限:不需要
2、组件概述
3、漏洞影响
4、解决方案
二
漏洞分析
1、基本信息
漏洞文件:poc.ovf、exp.ovf(《漏洞战争》配套资料) 漏洞函数:字符串打印函数std::basic_ostream 漏洞对象:ovf文档
2、背景知识
(1) 格式化字符串漏洞
#include<stdio.h>
int main()
{
char a[]="asdasd";
printf(a);
return 0;
}
asdasd
#include <stdio.h>
int main()
{
char a[100];
scanf("%s",str);
printf(str);
return 0;
}
6efe4c6effcc753eca20
printf(str,a,b,c)
栈中的局部变量缓冲区存放字符串本身,而利用多个%s可以访问到局部变量缓冲区,如果输入的字符串是某个地址加上很多%s,当某一个%s访问到缓冲区字符串时,就会认为这个地址指向字符串,并打印这个地址空间的内容直至截断符,这样就做到了任意地址空间的访问。
(2)跳板技术
3、详细分析
(1)基础分析
报告中显示程序访问了错误的地址0x00000000。
(2)静态分析
Ida分析
v36 = v30[5];
v20 = (int (__thiscall **)(_DWORD, _DWORD, _DWORD))(*(_DWORD *)v30[5] + 16);
v21 = (*(int (__thiscall **)(int, int))(*(_DWORD *)v4 + 44))(v4, v19);
v22 = (*v20)(v36, &v28, v21);
v31 = 1;
v23 = v22;
v24 = sub_401A90(&dword_160C7D8, " - ");
v25 = std::operator<<<char,std::char_traits<char>,std::allocator<char>>(v24, v23);
std::basic_ostream<char,std::char_traits<char>>::operator<<(v25, std::endl); //此处没有对参数进行过滤,导致格式化字符串漏洞
v31 = -1;
std::basic_string<char,std::char_traits<char>,std::allocator<char>>::~basic_string<char,std::char_traits<char>,std::allocator<char>>(&v28);
++v19;
result = (*(int (__thiscall **)(_DWORD))(*(_DWORD *)v4 + 36))(v4)
(3)动态分析
①分析poc.ovf
"AAAAAAAAAAAAAAAAAAAAAAAAAA%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%hn"
运行后ESP也被赋值为00120345,而此时00120345处的地址内容为00000000,在接下来的retn指令执行后,eip被修改为00000000,从而导致系统访问00000000这个无效地址,造成报错。
② 分析exp.ovf
三
缓解措施
四
参考文献
看雪ID:Sal_Tay
https://bbs.pediy.com/user-home-917290.htm
# 往期推荐
4. 超级长的IE调试总结:CVE-2013-1347 IE CGenericElement UAF漏洞分析
5. 11个小挑战,Qiling Framework 入门上手跟练
球分享
球点赞
球在看
点击“阅读原文”,了解更多!