• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

20:00 부분에 공격자가 갑자기 어떻게 JSESSIONID를 가지고있는건가요?

23.06.16 19:14 작성 조회수 598

0

PPT 설명이 다 끝나고 실습에 들어가는데 갑자기 JSESSIONID를 공격자가 로그인을 하지않았는데도 가지고 있을수가 있는건가요??

혹시 로그인 과정을 했다고 가정하시고 생략하신건가요?? 그리고 Session ID를 이미 가지고 있는데 Login 페이지를 접근한다는것 자체가 조금 말이 안되는 상황인것 같은데 이 부분에 대해서는 다른 강의에서 다루고 있나요?

 

혹시 생략하신거라면, 어떠한 방식(자막, 공지, etc..)으로든 알려주시면 감사할것 같습니다. 듣는 수강생 입장에서는 "뜬금없이 갑자기 로그인이 되어있네"라는 생각을 할 수밖에 없는것 같습니다. 그렇게되면 그 전에 로그인을 했는데 내가 놓친건가?라고 다시보게되고 저같은 경우에는 왠만해선 질문을 안하려는 성격이여서 계속 제가 놓쳤다고 생각하고 시간을 쓰기때문에 이렇게 뭔가 결국 생략했다라는걸 알게되면 매우 허탈합니다. 그래서 이게 Interrupt가 걸리고 강의에 집중하는데 힘이듭니다.

이런 부분이 한두군데가 아니여서 이렇게 말씀드립니다. 부탁드리겠습니다.

답변 3

·

답변을 작성해보세요.

0

김태희님의 프로필

김태희

질문자

2023.06.17

답변 감사합니다.


인증과 JSESSIONID가 관련이 없다라는걸 답변을 통해서 처음 알게되었고, 추가로 https://inflearn.com/questions/194095 해당 질문이 있는걸 확인하고 더 자세하게 알게 되었습니다. 그러면 처음에 공격자가 받은 JSESSIONID는 Authentication 객체가 없는 Anonymous Role을 가지고 있는 JSESSIONID라고 생각을 해도 되는건가요?

처음에 아무런 인증을 하지 않았을때는 저런 상태에 있다가 사용자가 공격자의 JSESSIONID로 USER라는 Role을 가진 계정으로 인증에 성공하면 Authentication 객체가 서버에 생성이 되고 다음에 똑같은 JSESSIONID로 요청을 하면 해당 Authentication 객체를 가지고 인증여부를 판단하는건가요?

0

김태희님의 프로필

김태희

질문자

2023.06.16

제가 말씀드리는 부분은 공격자라고 가정한 브라우저에서 JSESSIONID를 어떻게 처음에 가지고 있는지에 대한 것을 여쭤보았습니다. 로그인을 하거나 그런 내용이 없고, PPT에 설명이 다 끝나고나서 브라우저 2개가 띄워져 있는데 오른쪽에 갑자기 JSESSIONID가 있는 상태로 있습니다.

 

JSESSIONID는 서버에서 받아와야 하므로 공격자가 서버에 로그인을 했다거나 하는 그런 상황도 같이 껴있어야하는게 아닌가요? 공격자가 서버에 로그인을 해서 JSESSIONID를 우선 공격자 브라우저에 얻어왔다라는 내용이 있어야하는게 아닌가요?

공격자와 사용자가 서로 다른 브라우저를 띄웠기 때문에 서로 다른 세션이 생성된다고 가정하고 있고 공격자는 서버에 로그인 할 필요는 없습니다.

JSESSIONID 는 단지 서버 접속이 이루어지면 발급받는 것이고 발급받은 JSESSIONID 를 사용자의 브라우저에 조작해서 심고 있습니다.

즉 공격자의 브라우저에 생성된 JSESSIONID 를 사용자의 브라우저에 심는다는 내용이 주된 핵심입니다.

JSESSIONID 는 서버에 접속하면 받아오는 값이고 그것을 사용자의 브라우저에 심은 상태에서 사용자가 로그인 할 경우 문제가 된다는 것을 설명하고 있기 때문에 시뮬레이션 과정을 보면 크게 문제 될 것이 없어 보이는데 김태희 님 관점에서는 조금 더 상세한 설명이 필요한 부분이 있을 수 있을 것 같습니다.

이런 부분은 최대한 질의를 통해서 답변해 드리도록 하겠습니다.

0

해당 강의는 공격자가 자신의 세션 쿠키 정보를 임의의 사용자 pc 혹은 브라우저에 몰래 심어 놓은 상태를 가정하고 진행하고 있습니다

물론 어떻게 공격자가 사용자의 브라우저에 심는지는 공격자의 다양한 해킹 여부에 달려 있습니다.

사용자가 공격자의 세션쿠키를 가지고 자신의 서비스에 로그인 한 상태이기 때문에 사용자의 서비스는 결국 공격자와 공유하는 상황이 발생하는 것입니다.

그래서 세선고정보호 기능을 활성화 하게되면 사용자가 로그인 할 경우에 스프링 시큐리티에서 매번 세션쿠키를 새롭게 생성함으로써 공격자의 세션쿠키를 무효화하게 된다는 의미로 설명하고 있습니다.

이전의 강의 내용을 보시면 쿠키를 조작하는 플러그인을 별도로 활용해서 시뮬레이션 하고 있음을 설명하고 있지 않나요?