首页
社区
课程
招聘
漏洞分析CVE-2023-21716
发表于: 2023-3-14 17:16 9382

漏洞分析CVE-2023-21716

2023-3-14 17:16
9382

背景

Microsoft Word 是 Microsoft Office 附带的文字处理应用程序。根据默认安装,Microsoft Word 处理多信息文本格式 (RTF) 文档。此类文档主要由基于 7 位 ASCII 的关键字组成,这些关键字一起可以封装各种丰富的内容。CVE-2023-21716 是Microsoft Word在处理RTF字体表时引起的堆溢出漏洞,近期网络上出现了多个poc样本,参考网络上的信息进行复现分析学习了一下漏洞原理。

复现环境

OS 版本: 10.0.19044 暂缺 Build 19044
Office:2016
wwlib.dll:16.0.4266.1001

漏洞复现与分析

参考分析文章发现漏洞发生在wwlib.dll文件的FSearchFtcmap函数中,在office2019中可以获取到wwlib.dll的pdb调试符号文件,但调试时没有复现成功。随后参考360的分析文章下载了office2016,可以调试复现成功。

 

首先选用Xnuvers007的poc脚本:open("exploit.rtf", "wb").write(("{\rtf1{\n{\fonttbl" + "".join([ ("{\f%dA;}\n" % i) for i in range(0,32761) ]) + "}\n{\rt''lch no crash??}\n}}\n").encode('utf-8')) 生成rtf文件样本。

 

为了能准确定位到漏洞触发位置,先要开启页堆PageHeap,

 

图片描述

 

启动word程序,再使用x64dbg附加进程,让进程完全运行起来后,打开生成的rtf样本文件,在样本文件加载过程中,调试器会暂停在触发漏洞的代码位置并打印相应日志记录。
图片描述

 

图片描述

 

在日志中可以看到由于漏洞触发导致的访问异常

 

结合分析文章和调试,可以得知在触发漏洞前几行代码中,rcx是poc样本中的字体库索引0-0x7FF8,而rdx是rcx+0xA后的值,即0xA-0x8002。

 

在漏洞触发点前设置断点,可以打印日志跟踪rcx,rdx以及rbx+rdx*2+4的值,从而分析漏洞发生的原因。

 

在rva为0x38F5F1和0x38F5F8处设置断点。

 

图片描述

 

在0x38F5F1处进行断点设置,打印rcx和rdx寄存器值。

 

图片描述

 

在0x38F5F8处设置断点,打印rbx+rdx*2+4的值。

 

图片描述

 

重新调试运行word程序,打开poc样本文件,就可以从日志中看到rdx在rcx==0x7FF8时,本应取值0x8002,但由于movsx指令的符号扩展,将最高位扩展为1,导致rdx取值为0xFFFFFFFFFFFF8002。在后续运算中rbx+r8*2+4的值超出了正常范围,从而引起了越界写操作。

 

图片描述

参考

https://github.com/Xnuvers007/CVE-2023-21716

 

https://github.com/gyaansastra/CVE-2023-21716

 

https://qoop.org/publications/cve-2023-21716-rtf-fonttbl.md

 

https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags-and-pageheap

 

https://github.com/MicrosoftDocs/windows-driver-docs/blob/staging/windows-driver-docs-pr/debugger/example-11---enabling-page-heap-verification.md

 

https://help.x64dbg.com/en/latest/introduction/Formatting.html

 

http://www.c-jump.com/CIS77/ASM/DataTypes/T77_0270_sext_example_movsx.htm

 

https://mp.weixin.qq.com/s/TMcMuiiRLGWU2yHzlosa4Q


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2023-3-14 17:19 被phyman编辑 ,原因: 调整格式
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//