신뢰되지 않는 사이트로 리다이렉션
신뢰되지 않는 사이트로 리다이렉션은 애플리케이션이 외부에서 받은 URL을 확인하지 않고 사용자를 그 주소로 이동(Redirect)시키는 취약점입니다. 흔히 오픈 리다이렉트(Open Redirect)라고 부릅니다. 많은 웹 사이트는 로그인 후 원래 보던 페이지로 돌아가도록 redirect, returnUrl, next 같은 URL 파라미터에 이동할 주소를 담아 둡니다. 이 값을 검증하지 않으면 사용자를 어떤 주소로든 보낼 수 있게 됩니다.
공격자는 신뢰할 수 있는 웹 사이트 주소 뒤에 악성 사이트 주소를 붙인 링크를 만들어 피해자에게 보냅니다. 피해자는 링크 앞부분의 익숙한 도메인을 보고 안심하고 클릭합니다. 하지만 실제로는 공격자가 만든 가짜 사이트로 이동합니다. 공격자는 이렇게 사용자의 신뢰를 이용합니다. 피싱 사이트에서 계정 정보를 입력하게 하거나 악성 프로그램을 설치하게 만들 수 있습니다.
이 취약점을 막으려면 이동할 수 있는 도메인이나 경로를 허용 목록(Allowlist)으로 관리해야 합니다. 목록에 없는 외부 URL로는 이동하지 못하게 해야 합니다. 외부 사이트로 꼭 이동해야 한다면 다른 사이트로 이동한다는 안내 화면을 먼저 보여주는 것이 좋습니다.
대표 사례는 다음과 같습니다. 2021년 Microsoft 보안팀은 공격자들이 정상 웹 사이트의 오픈 리다이렉트 기능을 이용해 사용자를 가짜 Microsoft 365 로그인 페이지로 보내고 계정 정보를 탈취한 대규모 피싱 공격을 분석해 공개했습니다.

