首页 > 运维 > 安全 > 正文

Gogs任意用户登录漏洞实例分析

王林
发布: 2023-05-11 16:43:06
转载
2833人浏览过

一、    漏洞背景

gogs 是一款类似github的开源文件/代码管理系统(基于git),gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 git 服务。使用 go 语言开发使得 gogs 能够通过独立的二进制分发,并且支持 go 语言支持的 所有平台,包括 linux、mac os x、windows 以及 arm 平台。

二、    漏洞描述

gogs是一款极易搭建的自助Git服务平台,具有易安装、跨平台、轻量级等特点,使用者众多。其0.11.66及以前版本中,(go-macaron/session库)没有对sessionid进行校验,攻击者利用恶意sessionid即可读取任意文件,通过控制文件内容来控制session内容,进而登录任意账户。

三、    影响版本

影响版本如下:

Gogs 0.11.66及之前的版本

四、    漏洞复现

(1)    利用ubuntu虚拟机docker克隆vulhub上gogs环境

(2)    执行如下命令启动gogs:docker-compose up -d

(3)    环境启动后,访问http://192.168.49.103:3000/install,即可看到安装页面。安装时选择sqlite数据库,并开启注册功能。

 Gogs任意用户登录漏洞实例分析

 Gogs任意用户登录漏洞实例分析

(4)使用Gob序列化生成session文件data。

(5)然后注册一个普通用户账户,创建项目,并在“版本发布”页面上传刚生成的session文件。

 Gogs任意用户登录漏洞实例分析

(6)通过这个附件的URL,得知这个文件的文件名:./attachments/2eb7f1a2-b5ec-482e-a297-15b625d24a10。然后,构造Cookie:i_like_gogits=../attachments/2/e/2eb7f1a2-b5ec-482e-a297-15b625d24a10,访问即可发现已经成功登录id=1的用户(即root管理员)

ViiTor实时翻译
ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116
查看详情 ViiTor实时翻译

 Gogs任意用户登录漏洞实例分析

五、    漏洞分析利用

首先, 对于每个用户, 我们都可以创建仓库, 通过release功能可以上传任意内容可控的文件, 从而为我们伪造session文件提供了条件.

通过explore功能, 我们能找到很多用户的仓库, 进入某用户的用户资料页面, 我们可以得到构造该用户session的所有需要的资料(uid, username).

 Gogs任意用户登录漏洞实例分析

通过上方file.go的代码, 我们发现, session文件的内容为Gob编码方式, 借鉴P牛写的生成session的payload。

 Gogs任意用户登录漏洞实例分析

由此, 我们可以生成一段session, 通过每个用户均可使用的release上传功能, 我们将我们伪造的session上传至服务器。

默认配置的gogs,release中文件存放的目录结构是attachments/fid[0]/fid[1]/fid。session存放的目录结构是sessions/sid[0]/sid[1]/sid。此外sessions与attachments文件夹均存放在相同的data文件夹下。

 Gogs任意用户登录漏洞实例分析

因为gogs会将session分段, 构造成最终的路径后再进行读取, 而attachments与session在同一文件夹下, 修改session为我们刚刚上传的文件的路径, 即../attachments/1/7/17f4120b-1a0d-416a-b0b0-def4342ded5b, 读取session的函数将路径解析为sessions/././../attachments/1/7/17f4120b-1a0d-416a-b0b0-def4342ded5b也就是我们上传的那个文件, 最终完成任意用户登陆。

六、    修复建议

Gogs可至Github下载编译develop分支,在该分支中此漏洞已经修复,或者升级至最新版本的Gogs。

以上就是Gogs任意用户登录漏洞实例分析的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:亿速云网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号