본문 바로가기
보안 및 개발/WEB

Session 변조 - getSession()

by CH@3M 2021. 3. 5.

세션 삭제에 대한 예외처리 미흡으로 발생.

세션을 지우면 권한이 없어서 조회가 안되던 데이터를 조회할 수 있는 취약점 발견 시 조치방안

 

1. getSession(), getSession(true)
 - HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로 세션 생성

2. getSession(false)
 - HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로 생성하지 않고 null 반환

3. 사용 예

HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
위는 동일한 결과 리턴

새로 생성된 세션인지 확인 : session.isNew()  (새로 생성된 세션이면 true 반환)

getSession(), getSession(true)는 null 체크없이 바로 getAttribute()를 사용해도 무방하지만, getSession(false)는 null을 리턴할수 있기 때문에 null체크를 해야함

 

Ex1)

HttpSession session = request.getSession(false);
if(session == null) {
   throw new HandleException("ERROR");
}

 

Ex2)

HttpSession session = request.getSession(false);
if (session != null)
    User user = (User) session.getAttribute("User");

 

반응형

'보안 및 개발 > WEB' 카테고리의 다른 글

CSRF 취약점 진단 방법  (0) 2020.01.13
[Arachni] Password field with auto-complete  (0) 2020.01.03
[Web] arachni scanner 사용법  (0) 2019.12.23
[APT] 정보수집  (0) 2019.12.18
로그인 구현 시 참고사항  (0) 2019.12.10