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