LibreOffice < 6.2.5 通过宏/事件远程命令执行 CVE-2019-9848 漏洞复现

2019-08-28 4,621


漏洞背景

       LibreOffice是OpenOffice办公套件衍生版, 同样自由开源,以Mozilla Public License V2.0许可证分发源代码,但相比OpenOffice增加了很多特色功能。LibreOffice拥有强大的数据导入和导出功能,能直接导入PDF文档、微软Works、LotusWord,支持主要的OpenXML格式。软件本身并不局限于Debian和Ubuntu平台,OpenXML格式Windows、Mac、PRM packageLinux等多个系统平台。


漏洞描述

        其中Word文档可以指定预安装的脚本可以在各种文档事件上执行,例如鼠标悬停等。默认情况下,LibreOffice随附LibreLogo,这是一个可编程移动Turtle矢量图形的宏。为了移动海龟,LibreLogo执行自定义脚本代码,该代码在内部转换为python代码并执行。这里的一个大问题是代码没有很好地编译,只是提供python代码作为脚本代码,经常在编译后产生相同的代码


漏洞影响

LibreOffice < 6.2.5   已在6.2.5 版本中修补。
经测试的操作系统:Windows + Linux(受影响)


漏洞复现

0x00 环境搭建

    测试版本  LibreOffice_6.2.4.2 for Windows

    下载地址  https://downloadarchive.documentfoundation.org/libreoffice/old/


0x01 漏洞验证

    Poc  注意英文全小写 否则会报错

import os
os.system('calc.exe')
run # 这里Run代表一个执行动作
  • 新建OpenDocument Word文件

  • 打开文档后输入Python命令的Poc 到文档中.


  • 选中 run文字 再点击菜单栏处 插入-> 超链接

image.png

  • URL 处任意输入好啦,再点击右边的小齿轮

  • 选择事件 鼠标在对象之上  选择宏LibreLogo -> LibreLogo  ->> run 记得双击run   指定操作处有代码后确定


  • 返回到word文档 run已经变成蓝色 鼠标移动到run事件上 python 命令执行;

  • 在我们的例子中,打开一个计算器,如下所示:


Success!

本篇文章来自安全脉搏:https://www.secpulse.com/archives/111552.html

漏洞分析

  • 回到刚才添加的这段代码

  • 使用onmouseover事件和与LibreOffice一起安装的python示例。 在分配此脚本(或在LibreOffice 中调用的事件)并保存此文件后,查看创建的文件结构:

vnd.sun.star.script:pythonSamples|TableSample.py$createTable?language=Python&amp;location=share

    这看起来像是从本地文件系统加载一个文件并且假设是正确的

C:\Program Files\LibreOffice\share\Scripts\pythonLibreLogo\LibreLogo.py

        该文件包含createTable函数。所以打开创建的ODT文件并将鼠标移到链接上,令我惊讶的是python文件在没有任何警告对话框的情况下执行。需要注意的是 LibreOffice附带了自己的python解释器,因此不需要实际安装python。所以命令能够被触发。



参考:https://www.libreoffice.org/about-us/security/advisories/cve-2019-9848


本文作者:朋与厌

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/111552.html

Tags:
评论  (0)
快来写下你的想法吧!

朋与厌

文章数:7 积分: 125

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号