먼저 쿠키 수정을 위한 플러그인이 필요합니다
쿠키는 각각의 페이지에서 패스워드를 요청하는 것 없이 사용자들을 인증하기 위해 사용됩니다
테스트를 위해 로그인을 진행합니다
로그인 후 다른 페이지로 이동 시 패스워드를 요청하라는 메시지가 발생하지 않습니다
이것은 쿠키를 기반으로 진행합니다
쿠키는 브라우저에 저장되고 웹사이트에서 무언가를 요청할 때마다 쿠키는 해당 웹페이지로 전송되며 인증한 아이디로 이미 알고 있으며 웹사이트를 표시합니다
쿠키에는 만료 날짜가 있으며 정해진 만료시간이 지나면 만료가 됩니다
또한 쿠키는 쉽게 조작할 수 있는 방식으로 작동하고 있습니다
이제 로그인한 사이트에서 쿠키를 확인했습니다
해당 사이트에서 5가지의 쿠키 값이 존재하는 것을 확인했습니다
여기서 중요한 쿠키값들은 uid와 username 입니다
편집을 위해 uid를 먼저 클릭했습니다
현재 로그인된 사용자가 사용하고 있는 uid 쿠키 값은 18이라는 것을 확인할 수 있습니다
이 값을 다른 값으로 수정하려고 합니다
uid의 value 값을 1로 변경합니다
그리고 새로고침을 하면 사용자가 admin으로 로그인되어있는 것을 확인할 수 있습니다
간단하게 사용자 아이디 번호인 uid 값을 변경하여 쿠키 수정을 통해 관리자 권한 획득이 가능합니다
이것은 사용되는 쿠키가 매우 간단하기 때문에 발생합니다
실제로는 세션 아이디 또는 토큰을 이용합니다
토큰은 매우 복잡해야 하며 일회용이며 사용자 아이디와 관련 없어야 합니다
또한 동적으로 생성되며 동일한 사용자라도 로그인 시 무작위로 다른 토큰을 할당해야 합니다
하지만 복잡한 토큰과 세션 아이디를 사용하는 것은 중간자 공격에 여전히 취약합니다