Gibbon LMS中的任意文件写入导致远程代码执行(CVE-2023-45878)
GibbonEdu Gibbon LMS 25.0.1及更早版本存在任意文件写入漏洞,因为rubrics_visualise_saveAjax.php不需要身份验证。该端点接受img、path和gibbonPersonID参数。img参数预期为base64编码的图像。如果设置了path参数,则定义的路径将用作目标文件夹,并与安装目录的绝对路径拼接。img参数的内容经过base64解码后写入指定的文件路径。这允许创建PHP文件,从而实现远程代码执行(无需认证)。
该脚本提供了一个伪交互式shell。单个PHP文件被上传到远程系统,本地脚本提供一个封装器来直接与其交互。当提交命令时,它将从PHP有效载荷返回HTTP响应。如果远程系统上的有效载荷文件被删除,脚本将检测到404错误页面响应,并执行新的上传并重新提交最后一个命令。
python3 gibbonlms_cmd_shell.py url
python3 gibbonlms_cmd_shell.py http://example.com
此脚本仅供教育目的使用。请负责任地执行渗透测试。