문제 정보
Username: natas4
Password: tKOcJIbzM4lTs8hbCmzn5Zr4434fGZQm
URL: http://natas4.natas.labs.overthewire.org
그림 1번은 natas4 사이트에 접속한 결과이다. 해당 페이지를 분석해보니 지금은 접근이 제한되어있다고한다. 왜냐하면 권한을 받으려면 http://natas5.natas.labs.overthewire.org/ 해당 웹 사이트에서 방문을 해야지 접근을 할 수 있는데 우리는 natas5사이트에서 natas4로 오지 않았기 때문이다.
Refresh page를 한번 눌러보도록 하겠다.
Refresh page는 a태그로 natas4의 index.php로 렌더링하고있다. 그렇기 때문에 Refresh page를 클릭하면 그림 2와 같이 나오게 된다.
이 문제를 해결하기 위해서는 referer header에 대해 알아야한다.
레퍼러 헤더는 현재 요청을 보낸 페이지의 절대주소나 부분주소를 포함한다. 만약 링크를 타고 들어왔다면 해당 링크를 포함하고 있는 페이지의 주소가, 다른 도메인에 리소스 요청을 보내는 경우라면 해당 리소스를 사용하는 페이지의 주소가 이 헤더에 포함된다.
referer 헤더는 사람들이 어디로부터 와서 방문 중인지를 인식할 수 있도록 해주며 해당 데이터는 예를 들어, 분석, 로깅, 혹은 캐싱 최적화에 사용될 수도 있다.
Refresh page를 누른 후 패킷들을 확인해보았다. 현재는 referer 헤더에 natas4로 설정이 되어있다.
이것을 http://natas5.natas.labs.overthewire.org/ 로 변환해준다.
referer을 우회하여 natas5의 비밀번호를 획득하였다.
natas5 Credentials
Username : natas5
Password : Z0NsrtIkJoKALBCLi5eqFfcRN82Au2oD
결론
referer 헤더에서 민감한 정보들을 확인할 수 있기 때문에 URL 쿼리 문자열 내에서 민감한 정보를 전송하면 안된다.
referer 헤더에서 중요한 정보를 노출하기 않기 위해서는 Referer-Policy를 사용하여 referer를 남기지 않도록 하는 방법도 있다.
레퍼런스
referer : https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Referer
'OverTheWire WriteUp' 카테고리의 다른 글
OverTheWire Natas [Level6] - WriteUp (0) | 2023.06.13 |
---|---|
OverTheWire Natas [Level5] - WriteUp (0) | 2023.06.11 |
OverTheWire Natas [Level3] - WriteUp (0) | 2023.06.07 |
OverTheWire Natas [Level2] - WriteUp (0) | 2023.06.05 |
OverTheWire Natas [Level1] - WriteUp (0) | 2023.06.03 |