CVE-2021-46075
Exploit Title: 차량 서비스 관리 시스템 - '다중' 권한 상승으로 인한 CRUD 작업
CVE: CVE-2021-46075
CVSS: 7.2 높음
참조:
설명:
Sourcecodester Vehicle Service Management System 1.0에 권한 상승 취약점이 존재합니다. 직원 계정 사용자는 관리자 리소스에 접근하여 CRUD 작업을 수행할 수 있습니다.
1. 차량 서비스 관리 시스템 - '사용자 목록' (/admin/?page=user/list) (/admin/?page=user/manage_user)
공격 절차:
- 관리자 패널에 접속합니다 http://localhost/vehicle_service/admin
- 브라우저 A(크롬)에서 관리자 계정으로 로그인합니다.
- 브라우저 B(파이어폭스)에서 직원 계정으로 로그인합니다.
- 관리자 계정(크롬)에서 사용자 목록 섹션으로 이동하여 새로 만들기 버튼을 클릭합니다.
- 새 사용자 만들기 링크를 복사합니다. http://localhost/vehicle_service/admin/?page=user/manage_user
- 직원 계정(파이어폭스)에는 사용자 목록 섹션이 없습니다. 직원 계정에 사용자 생성 권한이 없기 때문입니다.
- 복사한 링크를 브라우저 B(파이어폭스)에 붙여넣습니다.
- 이제 사용자 생성 페이지에 접근할 수 있습니다.
- 필수 세부 정보를 입력하고 저장 버튼을 클릭합니다.
- 관리자 계정(크롬)에서 사용자 목록 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=user/list
- 새 사용자가 성공적으로 생성되었습니다.
- 직원 계정이 사용자 목록 페이지와 사용자 생성 페이지에 접근할 수 있습니다.
- 직원 계정이 사용자를 생성, 읽기, 업데이트 및 삭제할 수 있습니다.
2. 차량 서비스 관리 시스템 - '카테고리 목록' (/admin/?page=maintenance/category) (/admin/?page=maintenance/manage_category)
공격 절차:
- 관리자 패널에 접속합니다 http://localhost/vehicle_service/admin
- 브라우저 A(크롬)에서 관리자 계정으로 로그인합니다.
- 브라우저 B(파이어폭스)에서 직원 계정으로 로그인합니다.
- 관리자 계정(크롬)에서 카테고리 목록 섹션으로 이동하여 새로 만들기 버튼을 클릭합니다.
- 새 카테고리 만들기 링크를 복사합니다. http://localhost/vehicle_service/admin/?page=maintenance/manage_category
- 직원 계정(파이어폭스)에는 카테고리 목록 섹션이 없습니다. 직원 계정에 카테고리 생성 권한이 없기 때문입니다.
- 복사한 링크를 브라우저 B(파이어폭스)에 붙여넣습니다.
- 이제 카테고리 생성 페이지에 접근할 수 있습니다.
- 필수 세부 정보를 입력하고 저장 버튼을 클릭합니다.
- 관리자 계정(크롬)에서 카테고리 목록 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=maintenance/category
- 새 카테고리가 성공적으로 생성되었습니다.
- 직원 계정이 카테고리 목록 페이지와 카테고리 생성 페이지에 접근할 수 있습니다.
- 직원 계정이 카테고리를 생성, 읽기, 업데이트 및 삭제할 수 있습니다.
3. 차량 서비스 관리 시스템 - '서비스 목록' (/admin/?page=maintenance/services) (/admin/?page=maintenance/manage_service)
공격 절차:
- 관리자 패널에 접속합니다 http://localhost/vehicle_service/admin
- 브라우저 A(크롬)에서 관리자 계정으로 로그인합니다.
- 브라우저 B(파이어폭스)에서 직원 계정으로 로그인합니다.
- 관리자 계정(크롬)에서 서비스 목록 섹션으로 이동하여 새로 만들기 버튼을 클릭합니다.
- 새 서비스 만들기 링크를 복사합니다. http://localhost/vehicle_service/admin/?page=maintenance/manage_service
- 직원 계정(파이어폭스)에는 서비스 목록 섹션이 없습니다. 직원 계정에 서비스 생성 권한이 없기 때문입니다.
- 복사한 링크를 브라우저 B(파이어폭스)에 붙여넣습니다.
- 이제 서비스 생성 페이지에 접근할 수 있습니다.
- 필수 세부 정보를 입력하고 저장 버튼을 클릭합니다.
- 관리자 계정(크롬)에서 서비스 목록 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=maintenance/services
- 새 서비스가 성공적으로 생성되었습니다.
- 직원 계정이 서비스 목록 페이지와 서비스 생성 페이지에 접근할 수 있습니다.
- 직원 계정이 서비스를 생성, 읽기, 업데이트 및 삭제할 수 있습니다.
4. 차량 서비스 관리 시스템 - '설정' (/admin/?page=system_info)
공격 절차:
- 관리자 패널에 접속합니다 http://localhost/vehicle_service/admin
- 브라우저 A(크롬)에서 관리자 계정으로 로그인합니다.
- 브라우저 B(파이어폭스)에서 직원 계정으로 로그인합니다.
- 관리자 계정(크롬)에서 설정 섹션으로 이동합니다.
- 설정 섹션 링크를 복사합니다. http://localhost/vehicle_service/admin/?page=system_info
- 직원 계정(파이어폭스)에는 설정 섹션이 없습니다. 직원 계정에 설정 접근 권한이 없기 때문입니다.
- 복사한 링크를 브라우저 B(파이어폭스)에 붙여넣습니다.
- 이제 설정 페이지에 접근할 수 있습니다.
- 필수 세부 정보를 입력하고 저장 버튼을 클릭합니다.
- 관리자 계정(크롬)에서 설정 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=system_info
- 세부 정보가 성공적으로 업데이트되었습니다.
- 직원 계정이 설정 페이지에 접근할 수 있습니다.
- 직원 계정이 설정을 업데이트할 수 있습니다.
영향:
원격 공격자가 일반적으로 접근할 수 없는 리소스에 대한 상승된 접근 권한을 얻습니다. 직원 계정 사용자는 관리자 리소스에 접근하여 CRUD 작업을 수행할 수 있습니다.
완화 조치:
다음과 같은 조치를 구현하는 것이 좋습니다.
- 적절한 권한 계정 관리
- 모든 권한 세션 모니터링 및 관리
- 강력한 비밀번호 정책 및 시행
- 사용자 입력 정리 및 데이터베이스 보안