首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2013-3906分析

CVE-2013-3906分析

作者头像
鸿鹄实验室
发布2021-04-15 11:13:31
5250
发布2021-04-15 11:13:31
举报

环境

Windows 7 x86 sp1

office 2007

msf生成poc

使用msf生成poc

use exploit/windows/fileformat/mswin_tiff_overflow
set payload windows/exec 
set cmd calc

分析

加载POC,在win7+office2007不能断在虚表调用错误的地方,在xp+office2010则可以。

win7+office2010没有OG.dll。

继续栈回溯,[edx]是一对数字的开始,他们44个数字相加,当与参数size进行计算式发生整数溢出:

申请0大小的堆空间成功:

继续分析发生了栈溢出,同时将原来的虚表给覆盖掉了,size和Src都是作为参数传进来的:

构造POC

关键调用流程

判断为6即jpeg压缩调用 `function`
    |_sub_B4982 
        |_sub_B499F 根据第一个数值查找给定数字的字段
        |    |_sub_D9D13
        |_sub_D9E6A

【function函数】经过分析,需要将Compression=6 表示JPEG压缩。

【sub_D9D13】继续分析发现函数,查找514字段也就是JPEGInterchangeFormatLength (514): eSHORT

【sub_D9E6A】判断 enum TAGTYPE typ 使其等于4。

259 Compression COMP value = 6

514 JPEGInterchangeFormatLength TAGTYPE typ = 4

JPEGInterchangeFormatLength value = ??(控制后面计算的加数)但是要大于4

513 JPEGInterchangeFormat TAGTYPE typ = 4

改造过程需要涉及的主要字段为:

Compression(压缩标志字段)

JPEGInterchangeFormat(JPEG压缩格式的数据头SOI)

JPEGInterchangeFormatLength(数据头的长度SOI_SIZE)

StripByteCounts(压缩数据size数组)


StripOffsets(压缩数据偏移数组)

ImageLength(图像数据的长度)

RowsPerStrip(压缩块容量)

参考

https://bbs.pediy.com/thread-225993.htm

https://weiyiling.cn/one/cve_2013_3906_ms13-096

https://www.freebuf.com/vuls/31968.html

http://www.binvul.com/viewthread.php?tid=376

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿鹄实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • msf生成poc
  • 分析
  • 构造POC
  • 参考
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档