本文档详细分析了 CVE-2022-0482,这是 Easy!Appointments 预约管理软件中存在的一个严重安全漏洞。该漏洞属于 CWE-863 下的授权不正确,允许未经授权的人员在无需适当认证的情况下访问个人身份信息,对数据的机密性和完整性构成重大风险。
Mija Pilkaite
CVE-2022-0482 影响 Easy!Appointments 1.4.3 之前的版本。该漏洞由 Francesco Carlucci 于 2022 年 1 月 30 日首次报告。此漏洞使未经授权的用户能够访问并可能利用该软件管理的敏感数据。
为了分析此漏洞,我们按照以下步骤创建了一个隔离环境:
使用 Ubuntu 22.04 服务器,置于虚拟机或 Docker 容器中。 从官方 GitHub 仓库 下载存在漏洞的 Easy!Appointments 版本(1.4.2 或更早版本)。
在 docker/server/Dockerfile 中将 PHP 版本修改为 8.0。 按照文档配置 config.php。
安装命令:
docker compose up -d
docker exec -it <container_name> bash
apt install git
apt install npm
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
依赖安装:
npm install
php composer.phar install
利用过程包括以下步骤:
启动应用程序,并通过登录 http://localhost/index.php/backend 设置管理员账户。
漏洞存在于端点 /index.php/backend_api/ajax_get_calendar_events 缺乏充分的安全检查。 攻击者可以通过发送带有 "startDate"、"endDate" 和 "csrfToken" 参数的 POST 请求,以 JSON 格式获取预约详情。
可以获取所有客户、预约详情以及服务提供商的详细信息,包括哈希密码。
cve-2022-0482.py [-h] [--startDate STARTDATE] [--endDate ENDDATE] hostname
补丁升级:务必升级至 1.4.3 或更高版本,该版本已修复此漏洞。 安全最佳实践:对敏感端点实施强身份验证和授权检查。
以上来源提供了关于 CVE-2022-0482 漏洞的额外信息和技术细节,对于深入理解和进一步研究该问题至关重要。