HI,欢迎您光临本站,秉承服务宗旨,销售只是起点,服务永无止境!
    • 短视频文案
      • 励志哲理
      • 名言美句
      • 情感语录
      • 回复热评
      • 解说文案
    • 短视频素材
      • 情感励志
      • 美食小吃
      • 体育运动
      • 生活人文
      • 妙招好物
      • 风景风光
      • 影音娱乐
      • 颜值时尚
      • 游戏动漫
      • 自然景观
    • 短视频课程
      • 同城课程
      • 带货课程
      • 投放课程
      • 玩法课程
    • 中视频素材
    • 短视频工具
    • 副业项目
资源分享吧
  • 首页
  • CMS模板host
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材
    • PPT模板377
    • 简历模板0
  • 站长学院
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
登录/注册
  • 精品会员专享
  • 会员折扣下载
  • 每日海量更新
立即开通 开通会员抄底价
当前位置:资源分享吧 > 手把手教你如何构造Office漏洞POC(以CVE-2012-0158为例)
也想出现在这里? 联系我们吧

手把手教你如何构造Office漏洞POC(以CVE-2012-0158为例)

作者 : 小编 本文共3752个字,预计阅读时间需要10分钟 发布时间: 2021-06-20 共5.07K人阅读
也想出现在这里? 联系我们吧

下面小编为大家介绍office漏洞CVE-2012-0158就凭借其经典、通用又稳定的漏洞利用经常出现在各种报告中,详细的讲解这个漏洞的原理,以及如何基于原理手动构造出可利用的POC样本。

漏洞原理

关于本漏洞原理,网上有各种分析文章,一般都基于实例样本来定位漏洞的二进制代码并分析原理,这里不作详细的分析过程,直接给出漏洞成因,后面也有少部分的调试演示。这个漏洞发生在office的一个组件MSCOMCTL.OCX,多个版本office的该模块都存在这个漏洞,本文的测试环境均以WINXP+office2007为例。MSCOMCTL.OCX这个漏洞模块是office解析activeX控件用到的一个动态库,如果一个office文档中包含activeX这类控件元素的话,比如按钮、列表、树形控件等,当文档通过office打开时MSCOMCTL.OCX就会被自动载入office程序的进程空间被调用来解析和显示控件。

本漏洞属于经典缓冲区溢出漏洞里的栈内存拷贝溢出漏洞,当office解析到一个被构造好的控件(以ListView列表控件为例),会发生栈内存越界拷贝。以下栈回溯示意图可以代表本漏洞的发生过程:

可以看出,Excel在解析ListView控件的时候,读取并加载了控件的数据流,加载数据流的过程中会调用到一个内部函数ReadBytesFromStreamPadded,该函数的功能类似于memcpy内存拷贝函数,根据参数从指定内存拷贝指定大小数据到目标内存。但仔细往上跟踪就会发现,漏洞并不是出现在这个函数里,而是出现在CObj::load这个函数,下面分析一下这个函数如何出现的漏洞,先贴上IDA关于这个函数的伪代码:

int __stdcall CObj__Load( int a1, void *lpMem)

{

int result; // eax@1

void *v3; // ebx@1

int v4; // esi@4

int v5; // [sp+Ch] [bp-14h]@1

SIZE_T dwBytes; // [sp+14h] [bp-Ch]@3

int v7; // [sp+18h] [bp-8h]@4

int v8; // [sp+1Ch] [bp-4h]@8

v3 = lpMem;

result = ReadBytesFromStreamPadded(&v5, lpMem, 0xCu ); //第一次正常拷贝,读取数据头

if ( result >= 0 )

{

if ( v5 == \'jboC\' && dwBytes >= 8 ) //漏洞触发条件

{

v4 = ReadBytesFromStreamPadded(& v7, v3, dwBytes); //第二次拷贝,此处调用必然越界

if ( v4 >= 0 )

{

if ( ! v7 )

goto LABEL_8;

lpMem = 0;

v4 = ReadBstrFromStreamPadded(( UINT)&lpMem, (int )v3);

if ( v4 >= 0 )

{

CObj__SetKey((BSTR) lpMem);

SysFreeString((BSTR) lpMem);

LABEL_8:

if ( v8 )

v4 = ReadVariantFromStream(( struct tagVARIANT *)(a1 + 20) , (struct IStream *) v3);

return v4;

}

}

return v4;

}

result = 2147549183;

}

return result;

}

CObj::Load,顾名思义,是CObj对象加载的方法,需要从内存里读取对象数据,所以一开始便从数据流里读取了0x0c个字节到临时变量v5中。接着判断v5的前4个字节是否为”Cobj”来检测是否为要加载的对象类型,并且dwBytes这个变量如果大于8才进行下一步的加载。注意到,dwBytes 这个变量是读取那0x0c个字节的时候一起读取进来的,因为从IDA的变量备注中可以看出dwBytes =[bp-0x0c]落在v5=[bp-0x14]和v5+0x0c=[bp-0x08]的内存区间中,所以这里的一个关键是dwBytes的值可以通过修改数据流被控制。

再看下一步,同样从原来的数据流读取dwBytes个字节到临时变量v7中,v7=[bp-0x08],而dwBytes此时却大于8,所以这个读取拷贝必然会覆盖ebp,发生越界拷贝,形成栈溢出漏洞。根据此分析可以推测,正常情况从控件数据读取出来dwBytes值不会大于8,因为如果大于8的话必然导致栈拷贝异常,那么这个漏洞早就被测试出来了。而且通过IDA里查看此函数的交叉引用会发现,这个函数似乎作用并不大,都是在加载特定几个控件的开头被调用了一下。所以,我怀疑这个漏洞不是所谓的严重的失误,把本来的小于8写成了大于8,就是微软故意留下来的后门漏洞。

构造触发漏洞的POC

经过上面的原理分析,office在解析ListView控件时调用了漏洞函数CObj::Load,该函数在加载CObj对象时根据可被篡改的dwBytes读取指定大小的内存数据到8字节的临时变量,且校验大小时存在后门嫌疑,导致可被利用的缓冲区溢出漏洞。为了检验我们的分析是否正确,下面我们参考上面的栈回朔图构造可触发此漏洞的Excel文档。

首先Excel文档里需要存在一个ListView控件,可以通过Excel软件里面的开发者工具添加,添加完后相当于文档里嵌入了一个空的ListView对象。

接着,还需要往这个对象里面添加ListItems以及ListItem子对象,这样就能使Excel程序调用到CObj::Load函数。但是这里有个问题,ListItem对象无法直接通过Excel操作添加,Excel只能通过ListView控件的属性添加列表标题,没有直接办法添加列表内容。解决办法是通过编写Excel支持的VBA程序代码,编译生成一个ListItem对象。

但是这样带来另外一个问题,就是如果文档里边存在VBA这类宏代码,Excel会默认禁止代码执行,这样依旧解析不到ListView控件里的ListItem对象,一个简单的解决办法就是先写好代码编译运行后生成了初始化好的ListView控件,再把所有的生成代码删除后保存即可,因为宏代码会被阻止执行而控件对象不会被阻止解析。

下一步,只要将保存好的文档通过十六进制编辑器打开,定位到CObj对象的数据,修改偏移量为8的dwBytes值为大于8的数值就能触发漏洞。事实上只修改那一个值还无法看到漏洞触发的效果,原因是拷贝函数ReadBytesFromStreamPadded还会接着校验dwBytes的值,幸运的是该校验只是从要拷贝的数据头部读取另一个dwBytes的值,检验两个值是否相等,所以我们只需要把对象数据里的那个数值也修改成相应的大小就可以通过校验从而触发漏洞。

触发漏洞后,由于我们只是简单的用一些随机数据覆盖ebp和相关函数返回地址,所以Excel最终优雅的返回一个我们想要看到的程序错误提示框。

漏洞利用

现在,我们得到了一个可以触发的栈缓冲区溢出漏洞,下面要怎么利用这个漏洞来做一些事情就各显神通了,本文还是给大家弹个计算器来抛砖引玉。

通过上面构造的POC,我们可以修改两个dwBytes的值和后面的数据来控制运行栈的内存布局。为了更好的编排数据,最好通过调试样本去动态修改数据以达到目的,最后只要将内存里编排好的数据拷贝到文档对应的部分即可。而调试过程中,我们的第一目标自然是获取程序控制器,控制eip,这里一般是通过覆盖函数返回值或SEH链指针来实现。由于MSCOMCTRL.DLL没有开启GS保护,我们采取最简单的覆盖函数返回值即可控制eip。然而,为了使程序顺利的走到返回值,我们还需要修改数据,满足一些返回条件,控制程序流程,使之不进入复杂的函数或指令操作集,避免因栈被破坏导致一些异常的发生。

一旦程序顺利到达返回地址,我们便可以根据运行环境做各种事情,比如构造一个rop链绕过dep保护,或者直接跳转到栈空间执行代码,这些对于一个熟悉漏洞利用的人来说都是轻车熟路了。这里有个需求,就是栈内存数据需要有足够大小的空间来容纳无论是rop链还是shellcode,所以需要增加一下ListView控件的数据规模,简单的方法就是添加ListItem的时候把字符串写的足够长。

当所有的必要条件都具备的时候,我们的代码就可以放进栈里执行了,这里我简单使用一个通用的跳转地址直接跳转至栈内存代码执行,由于XP+office 2007默认不开启dep保护,所以我的环境可以顺利弹出计算器。

关于更多的需求比如如何编写rop链绕过office2010以上默认开启的dep保护,我将会在接下去其他的漏洞分享中陆续展开。另外,限于本文是文稿形式,更详细的视频演示也可以访问本人的博客地址(搜索维一零小站)进行参考。

总结

通过本文详细的分析,我们了解到这个漏洞的原理和危害性,由于MSCOMCTL.OCX是基础动态库,影响的应用软件自然比较多,除了office全套装外,sql和其他第三方应用软件,只要存在使用该漏洞库的地方,都有可能被利用。而利用的方法和本文一样,都离不开漏洞的原理,构造的“畸形”数据必须要通过漏洞函数的检验流程,才能最终绕过程序本身的限制,夺取程序的控制权。

技术网络漏洞 漏洞 漏洞分析 网站漏洞检测 网络安全WEB漏洞
1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 手把手教你如何构造Office漏洞POC(以CVE-2012-0158为例)

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html
小编

小编 VIP

分享到:
上一篇
又拍图片管家支付非法充值的漏洞分析及修复方法(图)
下一篇
Nessus扫描漏洞使用教程

发表评论 取消回复

要发表评论,您必须先登录。

最新文章
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
标签云
DEDECMS (483) dedecms教程 (326) eyoucms (270) html (364) html5 (1717) html模板 (733) Linux (1245) linux教程 (1245) wordpress教程 (380) 下载 (277) 代码 (816) 企业网站模板 (874) 企业网站模板下载 (874) 免费企业网站模板 (874) 入侵防御 (270) 公司网站模板 (874) 切换 (502) 动画 (594) 国内网站模板 (324) 图片 (582) 技术网络漏洞 (347) 插件 (447) 效果 (765) 源码 (381) 漏洞 (371) 漏洞分析 (347) 特效 (789) 电脑使用 (4064) 电脑操作 (4064) 短视频素材 (606) 笔记本电脑价格 (4037) 笔记本电脑品牌排行 (4037) 笔记本电脑知识 (4037) 笔记本电脑评测 (4037) 素材 (483) 织梦 (407) 织梦教程 (342) 网站模板 (436) 网站源码 (417) 网站漏洞检测 (347) 网络安全WEB漏洞 (347) 菜单 (299) 视频 (376) 这是 (345) 鼠标 (417)

限时优惠

【阿里云】云产品采购季,助力行业复工。新用户专享1折起,云服务器低至0.75折,更多产品可叠加专属代金券下单
立即查看

相关推荐

PHP注射一路小跑
小编小编

PHP注射一路小跑

  php注射库   \’ or 1=1   \’ or \’1=1   \’/*   \’%23   \’ and password=\’mypass   id=-1...
  • 2.71K
  • 免费
  • 下载
Z-blog跨站脚本攻击漏洞
小编小编

Z-blog跨站脚本攻击漏洞

漏洞说明:Z-Blog是一款基于Asp平台的Blog博客(网志)程序,支持 Wap,支持Firefox,Oprea等浏览器,在国内使用非常广泛,官方主页在http://www.rainbowsoft.org/。Z- blog代码严谨,前台功能简洁,后台...
  • 4.66K
  • 免费
  • 下载
Discuz!NT 2.5最新注入漏洞测试分析(图)
小编小编

Discuz!NT 2.5最新注入漏洞测试分析(图)

Discuz!NT是一款功能强大的基于ASP.net平台的BBS系统,占有不少的市场份额,特别是一些大中型专业社区都采用该系统。最近,ISTO成员在其最新的2.5版本中发现了一个安全漏洞,成功利用此漏洞可以直接修改管理员的密码进入后台,取得管理员权限,...
  • 4.61K
  • 免费
  • 下载
网站受到XSS跨站点脚本攻击的分析及解决方法
小编小编

网站受到XSS跨站点脚本攻击的分析及解决方法

如果用户表单输入一些内容,……特别是一些内容比较多的表单项,且无固定格式 ,如地址,文章内容……此时用户可以输入JS代码等来执行 STEP1:在设计方案上,输入项要尽可能检测格式并限制长度。要有服...
  • 2.85K
  • 免费
  • 下载
  • 3051本站运营(天)
  • 62841用户总数
  • 26548资源数(个)
  • 2近7天更新(个)
  • 82301资源大小(GB)
加入VIP获取全站资源

「资源分享吧」 ZYFX8.CN

国内极具人气的网络源码资源交流学习平台
下载源码文章,学软件教程,找灵感素材,尽在「资源分享吧」

按Ctrl+D收藏本站

找资源就上「 资源分享吧 」

WWW.ZYFX8.CN

资源分享吧

资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,网站以网站源码、网站模板、网页特效为主要内容,以“共享创造价值”为理念,以“尊重原创”为准则。

本站导航
  • 热门标签
  • 网站专题
  • 站点地图
更多导航
  • 申请友链
  • 用户协议
  • 免责声明
快速搜索
    友情链接 自助申请友链
  • RiTheme主题
  • wordpress主题
  • 在线PS修图
  • 源码下载
  • 网站模板
  • 资源分享吧
Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,以“共享创造价值”为理念,以“尊重原创”为准则。
  • 会员特惠
  • 签到
  • 客服

    在线客服

    点我联系

    直接说出您的需求!
    切记!带上资源链接与问题!

    工作时间: 9:30-21:30

  • 更新
    日历
  • 全屏
  • 首页

  • 签到

  • 切换

  • 客服

资源分享吧
  • 登录
  • 注册
or
or
忘记密码?
资源分享吧
  • 首页
  • CMS模板host ►
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码 ►
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材 ►
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材 ►
    • PPT模板377
    • 简历模板0
  • 站长学院 ►
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多 ►
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15 ►
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169 ►
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
文章展示
交易所源码搭建教程java多语言部署
交易所源码搭建教程java多语言部署
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
开通VIP 享更多特权,建议使用QQ登录
账号登录/注册
QQ登录
微博登录
×

    回馈用户限时特惠

    「 资源分享吧 」国内极具人气的网络资源交流学习平台,海量资源每天更新,优质资源畅快下载

    终身SVIP原价 590元,国庆限时活动价仅需 “ 59元 ”,终身免费~~机不可失~~


    立即开通永久会员>>

    xi** 刚刚下载了 2020多用户版