취약점 분석 – 불충분한 인가
정의 로그인한 사용자가 자신의 권한 범위를 넘어 민감 기능 또는 데이터에 접근 가능한 상태입니다. 예시 일반 사용자가 /admin URL에 접근해 관리자 기능을 사용할 수 있음 위험성 권한 상승, 정보 유출, 서비스 조작 방어법 서버 측 권한 확인, 리소스 접근 제어 구현
정의 로그인한 사용자가 자신의 권한 범위를 넘어 민감 기능 또는 데이터에 접근 가능한 상태입니다. 예시 일반 사용자가 /admin URL에 접근해 관리자 기능을 사용할 수 있음 위험성 권한 상승, 정보 유출, 서비스 조작 방어법 서버 측 권한 확인, 리소스 접근 제어 구현
정의 사용자 로그아웃 또는 일정 시간 경과 후에도 세션이 유효한 상태입니다. 예시 로그아웃 후 브라우저를 다시 열면 계속 로그인 상태 유지 위험성 세션 탈취 시 장시간 재사용 가능 방어법 로그아웃 시 세션 삭제, 세션 타임아웃 설정
정의 공격자가 고정된 세션 ID를 미리 발급하고, 피해자가 해당 세션으로 로그인하게 만드는 공격입니다. 예시 공격자가 URL에 세션 ID 포함하여 링크 전달 → 로그인 후 공격자가 세션 탈취 위험성 세션 탈취 후 피해자 권한 도용 방어법 로그인 시점에 세션 재생성, URL에 세션 ID 전달 금지
정의 스크립트 또는 봇을 이용하여 로그인 시도, 게시글 등록 등 반복적인 요청을 자동으로 보내는 공격입니다. 예시 로그인 페이지에 봇을 이용해 수천 건의 계정/비밀번호 조합 입력 위험성 서비스 마비, 계정 탈취, 부정 사용 방어법 CAPTCHA, 속도 제한(Rate Limiting), Bot 탐지
정의 사용자 행동 흐름(상태 전이)에 대한 검증이 없어, 중간 단계를 건너뛰고 민감 기능에 접근 가능한 상태입니다. 예시 결제 진행 없이 결제 완료 페이지 접속 가능 위험성 금전적 손실, 업무 로직 우회 방어법 요청 흐름 및 상태 확인 로직 구현, 서버 측 상태 검사
정의 사용자 업로드 기능을 통해 악성 파일을 업로드하고, 실행 가능하게 만드는 취약점입니다. 예시 webshell.php 업로드 후 URL로 직접 접근해 실행 위험성 원격 코드 실행, 서버 탈취, 백도어 설치 방어법 확장자/타입 제한, 실행권한 제거, 업로드 디렉토리 분리
정의 파일 다운로드 기능에서 사용자가 직접 파일명을 조작해 서버의 민감 파일을 다운로드할 수 있는 취약점입니다. 예시 위험성 내부 소스코드, 설정 파일, 민감 데이터 유출 방어법 경로 정규화, 화이트리스트 적용, 사용자 정의 경로만 허용
정의 관리자 페이지가 일반 사용자에게 노출되어 직접 접근 가능한 상태입니다. 예시 /admin, /cms, /manager 주소 접근 시 로그인 없이 열림 위험성 설정 변경, 사용자 삭제, 시스템 조작 방어법 경로 숨김, IP 제한, 인증 필수 적용
정의 ../ 등을 이용해 서버의 상위 디렉토리까지 접근해 민감 파일을 조회하는 공격입니다. 예시 /download?file=../../config/config.php 위험성 소스 코드, 비밀번호, 설정 파일 유출 방어법 입력 경로 정규화, 상위 디렉토리 접근 차단, 파일명 제한
정의 사용자의 위치 정보를 동의 없이 수집하거나 외부에 노출하는 행위입니다. 예시 브라우저에서 자동으로 GPS 위치 정보를 수집 후 로그에 저장 위험성 개인정보 침해, 사용자 추적 방어법 위치 정보 수집 시 명시적 동의, 암호화 저장 및 전송