前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GateOne CVE-2020-35736 任意文件读取漏洞复现

GateOne CVE-2020-35736 任意文件读取漏洞复现

作者头像
洛米唯熊
发布2021-08-24 11:36:38
7970
发布2021-08-24 11:36:38
举报
文章被收录于专栏:洛米唯熊

0x00:简介

GateOne 是一款使用 HTML5 技术编写的网页版 SSH 终端模拟器。基于现代的 HTML5 技术,无需任何浏览器插件、支持多个 SSH 进程、可以嵌入到其他任意应用程序中、支持使用 JavaScript,Python 甚至纯 CSS 编写的插件、支持 SSH 进程副本,打开多个进程而无需重复输入密码、 支持各种服务器端的日志功能,支持 Keberos-based 单点登录甚至活动目录、 支持操作日志记录,具有操作记录回放功能。

0x01:分析

查看文件gateone / core / server.py在第3692行中,您可以找到设置处理程序的位置。

可以看到downloads /没有使用Tornado附带的StaticFileHandler,但是使用的是作者本人编写的方法,该方法可能存在漏洞。

可以在第924行找到get方法的定义:

代码语言:javascript
复制
def get(self, path, include_body=True):
    session_dir = self.settings['session_dir']
    user = self.current_user
    if user and 'session' in user:
        session = user['session']
    else:
        logger.error(_("DownloadHandler: Could not determine use session"))
        return # Something is wrong
    filepath = os.path.join(session_dir, session, 'downloads', path)
    abspath = os.path.abspath(filepath)
    if not os.path.exists(abspath):
        self.set_status(404)
        self.write(self.get_error_html(404))
        return
    if not os.path.isfile(abspath):
        raise tornado.web.HTTPError(403, "%s is not a file", path)

注意关键部分。可以看到该路径被拼写为文件路径,而没有任何过滤。有目录遍历,并且可以读取任何文件。

0x02:复现

使用官方docker镜像构建测试环境。

1、拉取docker镜像

代码语言:javascript
复制
docker pull liftoff/gateone

2、运行docker

代码语言:javascript
复制
#Command
docker run [-d/-t] -p [443]:8000 -h [hostname] --name gateone liftoff/gateone gateone
#For example, if 443 is occupied on the server, please use another unused port.
docker run -t -p 443:48620 -h Rats --name gateone liftoff/gateone gateone
代码语言:javascript
复制
安装后,请访问https:// ip:port.如果浏览器可能报告它不安全,请忽略它。

注:仅做本地环境测试,切勿外部测试。违者后果自负。

文章来源:

代码语言:javascript
复制
https://github.com/liftoff/GateOne/issues/747
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洛米唯熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档