본문 바로가기
Portswigger/CSRF

Portswigger - CSRF where Referer validation depends on header being present solution

by jh117jh 2023. 11. 8.
728x90

 

이번 문제는 referer 검증에 따른 csrf에 대한 문제이다.

 

먼저 로그인을 하고 패킷을 잡아보면

Referer헤더를 볼 수 있는데 

 

Referer 헤더란?

Referer 헤더는 웹 브라우저나 웹 애플리케이션에서 웹 페이지 요청 시 해당 요청이 어디서 발생했는지를 나타 내는 정보이다. 이 정보는 웹 서버에게 어떤 웹 페이지나 웹 사이트에서 사용자가 현재 페이지로 이동했는지를 알려 준다.

 

예를 들어 http://www.jhhack.com/1.html이라는 웹페이지에 있는 링크를 클릭하여 http://www.jhhack.com/2.html으로 이동했을 때 referer는 http://www.jhhack.com/1.html 이 된다.  

웹사이트나 웹 애플리케이션 운영 시, Referer 정보는 매우 중요한 역할을 한다. 이 정보를 통해, 웹사이트 운 영자는 어떤 경로를 통해 사용자가 사이트에 접근했는지를 파악할 수 있으며 Referer 정보는 웹 애플리케이션의 보안을 강화하는 데도 사용된다. 예를 들어, 특정 기능이나 페이지는 특정 웹 페이지에서만 접근 가능하도록 설정할 수 있다.

 

그럼 이 Referer헤더를 변조해 보면 어떻게 될까?

 

Referer헤더를 변조 후 요청을 보냈더니

허용되지 않은 헤더라며 에러 메시지가 출력되었다.

 

그렀다면 특정 웹사이트에서만 접근 가능하도록 필터링이 되어있는 것 같은데

Referer 헤더를 삭제시키면 어떻게 될까?

 

https://kku-jun.tistory.com/48

 

Referer Policy 적용하기

혹시 프로젝트를 진행하면서 이미지 url을 통해 접근은 가능하나 개발중인 서비스앱 내부에서는 호출하지 못한 경험이 있는가? 필자는 다음 경험을 Referer policy를 정의하면서 접근할 수 있게 되

kku-jun.tistory.com

 

이곳을 참고하여 

<meta name="referrer" content="no-referrer"/>를 넣어 Referer헤더를 전송하지 않으면 

 

메일이 변경되는 걸 볼 수 있다.

728x90