이번 문제는 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
이곳을 참고하여
<meta name="referrer" content="no-referrer"/>를 넣어 Referer헤더를 전송하지 않으면
메일이 변경되는 걸 볼 수 있다.
'Portswigger > CSRF' 카테고리의 다른 글
Portswigger - CSRF with broken Referer validation solution (0) | 2023.11.10 |
---|---|
Portswigger - SameSite Lax bypass via cookie refresh solution (0) | 2023.11.01 |
Portswigger - SameSite Strict bypass via client-side redirect solution (0) | 2023.10.30 |
Portswiger - SameSite Lax bypass via method override solution (0) | 2023.10.25 |
Portswigger - CSRF where token is duplicated in cookie solution (0) | 2023.10.23 |