코딩/모음

Session Fixation Attack

josh27 2021. 5. 30. 13:40

유효한 Session Id를 탈취해서 마치 인증된 사용자 인 것 처럼 행동할 수 있는 방법이다. OAuth 1.0 의 취약점으로 알려져있다. 서버가 공격자인지 일반 사용자인지를 구분할 수 없게 된다.

 

대략의 시나리오

  1. 공격자가 사이트에 접속해서 로그인 하여 Session Id를 생성한다.
  2. 여기서 생성한 Session Id 를 사용자에게 전달한다.
  3. 사용자는 이 Session Id 를 가지고 본인의 정보로 로그인을 시도하고 성공한다. 
  4. 이렇게 되면 공격자와 사용자는 동일한 Session Id 를 공유하게 된다.
  5. 공격자는 사용자 처럼 행동할 수 있게 된다.

공격자가 자신의 Session Id 를 사용자에게 전달하는 방법은 다양한데, 일단 피싱 사이트에 접속하게 하여 자신의 Session Id 를 써서 로그인 하도록 할 수 있다. URL 에 표기될 수도 있고, 자바스크립트나 메타 태그를 이용할 수도 있다. 결국 진짜 사이트를 가장한 가짜 사이트로 접속하게 될 때 위험에 노출되는데, 이메일이나 문자로 전달되는 URL 은 항상 의심해야 한다. 

OAuth 1.0 에서의 취약점

OAuth 1.0 에서는 사용자가 Request Token 을 요청하고, 서버가 이를 내려준다. 이후에 사용자에게 로그인을 하게 한다. 이 때 서버가 Request token 이 공격자에게서 부터 온 것인지, 일반 사용자로부터 온 것인지 확인할 길이 없다. (https://www.sans.org/blog/four-attacks-on-oauth-how-to-secure-your-oauth-implementation/ 4. SessionFixation Attack with OAuth 참고)

반응형