TeamH4C

[빡공팟 5기] W5 : DVWA 실습 - Weak Session IDs

이유갬 2022. 10. 23. 02:23

[Weak Session IDs 의 정의]

세션 ID 취약점, 세션 ID 는 사용자 인증 정보를 담고 있는 것으로 이를 통해 서버가 유저를 확인하고 인증하는 것이다.

따라서 세션이 재중복 되거나, 세션 타임아웃 등이 존재하지 않으면 사용자 정보를 이용하여 악의적인 행위가 가능하게 되는 것이다.

 

[실습 내용]

세션 ID 취약점에 대해 실습해보자!


[초기 화면]

- 버튼을 누를 때마다 새로운 쿠키를 불러온다고 한다.

- 한번 더 클릭하니 이렇게 나온다.

- 다시 한 번 눌러보니 숫자가 계속 1씩 증가한다.

[View Source]

- 소스코드를 확인해보니 요청 메소드를 POST 형식으로 서버에 전달하는데, 이때 마지막 session_id 가 존재하지 않으면 마지막 세션 아이디를 0 으로 셋팅하고 1씩 증가시킨 후 쿠키의 값에 대입한다.

- 그리고 setcookie 를 이용하여 dvwaSession 을 그 값으로 셋팅한다.

- 필자가 소스 코드를 보며 쿠키가 어떻게 생성됐는지 알듯이

이런 식으로 쿠키가 어떤 식으로 생성되고 다음에는 뭐가 생성되는지 알 수 있다는 것은

실제로 적용한다면 사용자 인증 정보의 쿠키를 예상하여 그 사용자의 인증 정보를 이용하여 사용자가 원치 않는 행위를 할 수 있다.

- 이러한 취약점을 보안하는 방법은 공격자가 세션 ID 를 알기 쉽게 생성하면 안된다는 것이다.