세션 고정 취약점은 사용자 로그인 시 항상 일정하게 고정된 세션ID가 발급되는 경우 해커의 세션 ID 탈취로부터 비인가자의 접근 및 권한 우회가 가능한 취약점을 의미 합니다.
#방법1
세션 생성과 관련된 설정은 각각의 어플리케이션 서버에서 동작하게 되어 있습니다.
또한 로그아웃이나 브라우저의 종료 행위에 따라서 세션을 clear하거나 remove를 해 준다면 세션 아이디 값을 초기화 할 수 있습니다.
아래 샘플코드처럼 사용자의 접속 종료 행위에 대해서는 세션내용을 제거 해 주도록 합니다.
public static void removeSessions(HttpSession session) {
Enumeration<String> names= session.getAttributeNames();
while(names.hasMoreElements()) {
String name = NVL.goStr(names.nextElement());
if(name.length() > 0) session.removeAttribute(name);
}
session.invalidate();
}
#방법2
대부분의 어플리케이션 서버에서는 고정된 세션값을 사용하지 않습니다.
만약 사용중인 어플리케이션 서버에서의 세션값이 항상 고정이라면, 어플리케이션 서버의 버전을 올리는 것 또한 방법이 될 수 있겠습니다.
이상으로 세션고정(SF) 조치 방법에 대해서 간단하게 살펴보았습니다.
궁금한점 또는 틀린 부분은 언제든 연락주세요! 👻
반응형
'웹 취약점(Web vulnerability)' 카테고리의 다른 글
20. 프로세스 검증누락(PV) (0) | 2021.12.09 |
---|---|
19. 자동화 공격(AU) (0) | 2021.12.09 |
17. 불충분한 세션만료(SC) (0) | 2021.12.07 |
16. 불충분한 인가(IN) (0) | 2021.12.07 |
15. 세션 예측(SE) (0) | 2021.12.07 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글