본문 바로가기
Portswigger/CSRF

Portswigger - CSRF with broken Referer validation solution

by jh117jh 2023. 11. 10.
728x90

 

이번 문제는 참조자 검증이 손상되었다는데 아마 검증방법에 취약점이 존재하는 것 같다.

 

로그인 후 이메일 변경하는 요청을 repeater로 보내면

 

Referer이 https://0a5900d104be0f428659adb40023007f.web-security-academy.net/my-account?id=wiener인걸 볼수있다.  

초록 부분 변경
빨간 부분 변경

 

https://0a5900d104be0f428659adb40023007f.web-security-academy.net/my-account?id=wiener 

 

위 두 사진의 차이점을 보면

1번은 referer링크에서 초록 부분을 변경했고 2번은 빨간 부분을 변경해 보았다.

테스트 결과 초록 부분은 변경을 해도 상관없지만 빨간 부분은 한글자라도 변경되거나 추가되면 오류메시지가 출력되게 된다.

 

아마 referer헤더에 웹사이트 url주소가 포함되어 있으면 필터링을 통과할 수 있는 것 같다. (화이트 리스트 방식)

 

이제 사용자에게 요청을 보내야 되는데 위에 밑줄 친 url부분이 referer헤더에 들어갈 url이다.

 

 

url에 웹사이트 주소를 추가해 준 뒤

 

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

 

Referer Policy 적용하기

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

kku-jun.tistory.com

 

여기를 참고해 모든 주소를 전달해 주면 

 

 

문제가 풀리는 걸 확인할 수 있다.

728x90