目錄
一、    漏洞背景
二、    漏洞描述
三、    影響版本
四、    漏洞重複
#五、    漏洞分析利用
六、    修復建議
首頁 運維 安全 Gogs任意使用者登入漏洞實例分析

Gogs任意使用者登入漏洞實例分析

May 11, 2023 pm 04:43 PM
gogs

一、    漏洞背景

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管理員)

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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)