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

漏洞分析CVE-2023-21716

2023-3-14 17:16
9831

背景

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的值超出了正常范围,从而引起了越界写操作。

 

图片描述

参考

8d9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6j5L8Y4g2$3k6i4u0K6x3o6l9%4i4K6u0r3b7#2k6q4i4K6u0V1x3U0l9J5x3#2)9J5k6o6t1I4y4K6p5$3

 

4e6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6Y4P5h3q4S2L8Y4y4S2M7%4c8J5j5g2)9J5c8V1y4h3c8g2)9J5k6o6t1H3x3U0y4Q4x3X3b7J5x3e0M7I4y4R3`.`.

 

bacK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6I4L8$3!0H3i4K6u0W2L8%4u0Y4i4K6u0r3M7s2g2T1L8r3W2U0j5i4c8A6L8$3&6K6i4K6u0r3j5%4k6W2i4K6u0V1x3U0l9J5x3#2)9J5k6o6t1I4y4K6p5$3i4K6u0V1M7Y4c8X3i4K6u0V1k6X3!0F1N6s2c8T1L8q4)9J5k6h3#2V1

 

76fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6D9k6h3q4J5L8W2)9J5k6h3#2A6j5%4u0G2M7$3!0X3N6q4)9J5k6h3y4G2L8g2)9J5c8X3g2F1i4K6u0V1N6i4y4Q4x3V1k6%4K9h3&6V1L8%4N6K6i4K6u0V1K9r3q4J5k6s2N6S2M7X3g2Q4x3V1k6V1M7X3W2$3k6i4u0K6i4K6u0r3k6r3g2T1N6h3N6Y4k6i4u0Q4x3V1k6Y4k6X3I4S2k6%4y4Q4x3X3c8S2L8X3c8Q4x3X3c8H3j5h3N6W2K9r3g2S2M7l9`.`.

 

dcbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6y4K9h3y4J5L8%4y4G2k6Y4c8p5L8$3y4K6i4K6u0r3N6$3W2F1k6r3!0%4M7#2)9J5k6r3c8J5K9i4k6W2M7W2)9J5k6r3c8G2j5%4y4Q4x3V1k6T1L8r3!0T1i4K6u0r3M7%4c8S2k6$3W2F1k6#2)9J5c8Y4N6A6L8X3c8G2N6%4y4Q4x3X3c8V1M7X3W2$3k6i4u0Q4x3X3c8V1L8$3y4K6i4K6u0V1M7s2u0Q4x3V1k6V1k6h3u0#2k6$3N6W2M7W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3X3b7I4x3g2)9J5k6q4)9J5k6q4)9J5k6r3g2F1j5h3u0D9K9h3&6Y4i4K6u0V1M7r3q4Y4k6g2)9J5k6r3S2W2j5i4m8Q4x3X3c8$3k6i4u0A6k6X3W2U0j5i4c8A6L8$3&6Q4x3X3g2E0k6l9`.`.

 

5a5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Z5k6h3I4H3i4K6u0W2P5o6j5@1k6r3u0Y4i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3V1k6D9j5i4c8W2M7%4c8Q4x3V1k6A6L8Y4c8J5L8$3c8#2j5%4c8A6L8$3&6Q4x3V1k6r3L8%4u0E0j5i4c8@1K9h3&6Y4i4K6u0W2K9s2c8E0L8l9`.`.

 

eb4K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4Q4x3X3c8B7N6h3#2H3i4K6u0W2j5$3!0E0i4K6u0r3b7@1W2e0y4K6N6Q4x3V1k6m8f1@1#2Q4x3V1k6p5j5i4c8S2g2s2W2H3k6i4y4Q4x3V1k6f1y4K6N6Q4y4h3j5H3x3U0M7H3i4K6g2X3M7$3g2^5N6q4)9#2k6X3g2^5j5h3#2H3L8r3g2Q4y4h3k6E0L8%4k6K6P5q4)9J5k6h3S2@1L8b7`.`.

 

c32K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7q4)9J5k6i4N6W2K9i4S2A6L8W2)9J5k6i4q4I4i4K6u0W2j5$3!0E0i4K6u0r3M7#2)9J5c8W2c8y4j5@1#2#2K9h3W2d9e0p5N6i4g2e0u0&6d9s2A6D9L8%4y4S2y4q4p5`.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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