안전하지 않은 세션 관리

밍기적·2023년 1월 4일
0

웹해킹

목록 보기
29/35
post-thumbnail

쿠키 값을 조작하여 다른 인증을 우회하는 방법


먼저 쿠키 수정을 위한 플러그인이 필요합니다

  • 파이어폭스에서 지원하는 Cookie Editor 플러그인을 사용함

쿠키는 각각의 페이지에서 패스워드를 요청하는 것 없이 사용자들을 인증하기 위해 사용됩니다

  • 즉 로그인 후 사용자를 인증하는데 사용됨


테스트를 위해 로그인을 진행합니다

로그인 후 다른 페이지로 이동 시 패스워드를 요청하라는 메시지가 발생하지 않습니다

  • 웹 사이트 내부의 존재하는 페이지를 이동할 때마다 로그인이 되어있다는 것을 확인함

이것은 쿠키를 기반으로 진행합니다

쿠키는 브라우저에 저장되고 웹사이트에서 무언가를 요청할 때마다 쿠키는 해당 웹페이지로 전송되며 인증한 아이디로 이미 알고 있으며 웹사이트를 표시합니다

  • 웹사이트를 닫고 다시 들어가려고 해도 쿠키를 이용하기 때문에 사용자 인증을 진행하고 있음

쿠키에는 만료 날짜가 있으며 정해진 만료시간이 지나면 만료가 됩니다

또한 쿠키는 쉽게 조작할 수 있는 방식으로 작동하고 있습니다

이제 로그인한 사이트에서 쿠키를 확인했습니다

해당 사이트에서 5가지의 쿠키 값이 존재하는 것을 확인했습니다

여기서 중요한 쿠키값들은 uid와 username 입니다

편집을 위해 uid를 먼저 클릭했습니다

현재 로그인된 사용자가 사용하고 있는 uid 쿠키 값은 18이라는 것을 확인할 수 있습니다

  • 즉 사용자 test의 아이디가 18이라는 것을 추측할 수 있음

이 값을 다른 값으로 수정하려고 합니다

uid의 value 값을 1로 변경합니다

그리고 새로고침을 하면 사용자가 admin으로 로그인되어있는 것을 확인할 수 있습니다

간단하게 사용자 아이디 번호인 uid 값을 변경하여 쿠키 수정을 통해 관리자 권한 획득이 가능합니다

이것은 사용되는 쿠키가 매우 간단하기 때문에 발생합니다

실제로는 세션 아이디 또는 토큰을 이용합니다

토큰은 매우 복잡해야 하며 일회용이며 사용자 아이디와 관련 없어야 합니다

또한 동적으로 생성되며 동일한 사용자라도 로그인 시 무작위로 다른 토큰을 할당해야 합니다

하지만 복잡한 토큰과 세션 아이디를 사용하는 것은 중간자 공격에 여전히 취약합니다

  • 토큰이 정말 복잡하더라도 해당 토큰을 캡처한 다음 주입 시도를 할 수 있음

0개의 댓글