
NYCU(National Yang Ming Chiao Tung University, 대만)의 "네트워크 보안" 수업 기말 프로젝트입니다. "EasyAppointments" 소프트웨어의 CVE를 악용합니다.
이 문서는 Easy!Appointments 예약 소프트웨어에서 식별된 심각한 보안 취약점인 CVE-2022-0482에 대한 상세 분석을 설명합니다. CWE-863에 해당하는 잘못된 권한 부여와 관련된 이 결함은 적절한 인증 없이 개인 식별 정보에 대한 무단 접근을 허용하여 데이터 기밀성과 무결성에 심각한 위험을 초래합니다.
Mija Pilkaite
CVE-2022-0482는 1.4.3 이전 버전의 Easy!Appointments에 영향을 미칩니다. 이 취약점은 2022년 1월 30일 Francesco Carlucci에 의해 처음 보고되었습니다. 이 취약점으로 인해 권한이 없는 사용자가 소프트웨어에서 관리하는 민감한 데이터에 접근하고 잠재적으로 악용할 수 있습니다.
이 취약점을 분석하기 위해 다음 단계를 사용하여 격리된 환경을 구성했습니다:
가상 머신 또는 Docker 컨테이너 내에서 Ubuntu 22.04 Server를 사용합니다. 공식 GitHub 저장소에서 취약한 버전(1.4.2 이하)의 Easy!Appointments를 다운로드합니다.
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 취약점에 대한 추가 정보와 기술적 세부 사항을 제공하며, 문제에 대한 더 깊은 이해와 추가 연구에 중요합니다.