세션 보안 분석 (WEB-SE)

WEB-09 세션고정 WEB-SE 세션예측 세션만료
💡 실제 발견 사례: 고양도시관리공사 웹 취약점 진단 결과
- 세션 예측 (58p): PHPSESSID가 단순 숫자 증가 패턴으로 생성됨
- 세션 고정 (63p): 로그인 전후 세션 ID가 변경되지 않음 (session_regenerate_id 미호출)
- 불충분한 세션 만료 (60p): 로그아웃 후에도 세션이 유효함

실습: 개발자도구(F12) → Application → Cookies 에서 PHPSESSID 값을 확인하고,
로그인 전후 값을 비교해보세요.

현재 세션 정보

세션 IDaf9422e40ebf72f4ebc478925e53ad1b
로그인 상태❌ 로그인 안 됨
세션 쿠키PHPSESSID=af9422e40ebf72f4ebc478925e53ad1b
HttpOnly❌ 미설정 (JavaScript 접근 가능)
Secure❌ 미설정 (HTTP에서도 전송)
SameSite❌ 미설정 (CSRF 취약)

📋 세션 예측 실습

세션 ID 패턴: sess_XXXX (XXXX는 숫자)

아래 버튼을 눌러 세션 ID가 어떻게 변하는지 관찰하세요:

🔐 로그인 페이지로 이동 🔄 세션 정보 새로고침

📋 발견된 취약점 체크리스트

#취약점실습 방법KISA 기준
1세션 고정 로그인 전후 PHPSESSID 비교 (변경 안 됨) U-09
2세션 예측 세션 ID가 sess_1234 형태 — 10000개 이내 U-09
3쿠키 보안 속성 HttpOnly/Secure/SameSite 미설정 U-10
4세션 만료 로그아웃 후 세션 쿠키가 그대로 유효한지 U-06

사용자 목록

ID사용자명역할
1 admin user
2 user1 user
3 user2 user
4 guest user