0) 原文參考
1) Harbor簡介
Harbor是一個用於存儲和分發Docker鏡像的企業級Registry服務器,通過添加一些企業必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。
作爲一個企業級私有Registry服務器,Harbor提供了更好的性能和安全。提升用戶使用Registry構建和運行環境傳輸鏡像的效率。
2) 原理概述
該漏洞是一個垂直越權漏洞,因註冊模塊對參數校驗不嚴格,可導致任意管理員註冊。攻擊者註冊管理員賬號後可以接管Harbor鏡像倉庫,從而寫入惡意鏡像,最終可以感染使用此倉庫的客戶端等。
3) 影響範圍
Harbor1.7.6之前版本和Harbor1.8.3之前版本
4) 環境搭建
從這裏下載:
https://github.com/goharbor/harbor/releases
修改裏面的配置文件harbor.cfg(1.7.0版本的,別的版本不一定是這個配置文件,還有可能是別的:如1.8.2版本的配置文件爲harbor.yml,具體情況具體分析):
vim harbor.cfg
這裏面我只修改了hostname這個參數,我改成了我的ip(如果想修改別的參數,參考:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md)
修改完之後,保存退出,進行安裝:
./install.sh
正常安裝情況下的效果,如圖:
啓動harbor:
5) 漏洞利用
首先我們訪問:192.168.1.134(我配置的hostname)
進入註冊用戶界面,輸入註冊信息,點擊註冊抓包:
發送到重放模塊
添加我們的poc:
"has_admin_role":true
點擊go
發現提示成功創建
爲了驗證,我們利用這個賬號再次註冊,發現:
用創建的這個賬戶進行登錄,看一下我們通過POC創建的用戶的權限:
成功,是管理員權限
6) 修復方式
升級Harbor版本到 1.7.6 和 1.8.3
參考鏈接:
https://www.cnblogs.com/lanyincao/p/11571059.html
https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
https://blog.51cto.com/lzlutao/2388635?source=dra