🇰🇷 한글 설명
Python Food Ordering System V1.0의 /api/myapp/index/user/info 엔드포인트에서 적절한 접근 제어가 부재하여, 공격자가 ID 파라미터를 조작하여 인가되지 않은 사용자의 개인정보, 주문 기록 등 민감한 데이터에 접근할 수 있습니다. 인증 없이 단순한 ID 값 변경만으로 임의의 사용자 정보 유출이 가능합니다.
💡 쉬운 설명
음식 주문 앱의 사용자 정보 조회 페이지에서 권한 확인이 없어서, 자신의 ID 대신 다른 사람의 ID 숫자를 입력하면 그들의 개인정보를 볼 수 있습니다. 마치 남의 우편함을 열어서 내용을 읽을 수 있다는 뜻입니다.
🇺🇸 원문 (English)
The python_food ordering system V1.0 has an unauthorized vulnerability that leads to the leakage of sensitive user information. Attackers can access it through https://ip:port/api/myapp/index/user/info?id=1 And modify the ID value to obtain sensitive user information beyond authorization.
📍 영향받는 시스템
Python Food Ordering System V1.0
⚔️ 공격 벡터
GET 요청으로 https://ip:port/api/myapp/index/user/info?id=[임의의 숫자]에 접근하여 ID 파라미터 조작으로 다른 사용자 정보 조회
🛡️ 대응 방법
API 엔드포인트에 세션/토큰 기반 인증 검증 추가, 현재 인증된 사용자만 자신의 정보 접근 가능하도록 서버단 필터링 구현, 입력값 유효성 검사 강화
🔧 검증 코드
명령어 실행 후 'VULNERABLE' 메시지가 나오면 권한 검증 없이 데이터 접근 가능한 취약점 확인, 'PROTECTED'가 나오면 적절한 접근 제어가 적용된 상태입니다.
curl -s -k 'https://ip:port/api/myapp/index/user/info?id=999' -H 'Cookie: sessionid=' | grep -qE 'name|email|phone' && echo 'VULNERABLE: Unauthorized access allowed' || echo 'PROTECTED: Access denied'