웹/웹 보안

검증되지 않은 리다이렉트

비니화이팅 2018. 7. 29. 13:18

검증되지 않은 리다이렉트

오늘은 검증되지 않은 리다이렉트 취약점에 대해서 알아보겠습니다.

 

"검증되지 않은 리다이렉트"란 공격자가 리다이렉트 되는 페이지의 주소를 피싱 사이트로 변조하여 사용자에게 피싱이나 악성코드를 배포하는 사이트로 리다이렉트 시키는 공격기법입니다.

사용자들에게 보이는 화면에는 사용자들이 신뢰할만한 사이트로 보이게 하여 사용자의 클릭을 유도하게 됩니다.

 

공격이 어떤식으로 이루어지는지 살펴보도록 하겠습니다.

아래의 간단한 코드를 이용하여 공격이 이루어지게 됩니다.

<html>
<body>click!!!

<a href="http://공격자의 서버IP/악성스크립트.js">http://www.naver.com</a>
</body>
</html>

 

공격자는 게시판에 위의 코드를 작성합니다.

 

희생자는 공격자가 작성한 게시물을 보고 진짜 네이버의 주소인 줄 알고 클릭하지만 피싱사이트나 악성코드를 배포하는 사이트로 접속하게 됩니다.

 

우클릭하여 보니 네이버의 URL이 아님을 확인할 수 있습니다.

 

 

대응방안

1. 사용자 측면의 주의가 가장 안전합니다. 이동 시 주소창의 URL을 확인하여 진짜 사이트가 맞는지 확인합니다.

2. 서버 측에서는 타 사이트로 자동 전환에 사용할 URL과 도메인들의 화이트 리스트 필터링을 적용합니다.



참고

img태그의 src를 이용하여 사용자가 클릭하지 않고도 바로 악성코드를 설치하게 하는 공격이 있습니다. 이를 Drive by Download공격이라고 합니다. 

페이지에 접속을 하면 해당 페이지의 소스코드 뿐만 아니라 CSS, SWF, JS파일을 다운받게 되는 데 이와 유사하다고 생각하시면 됩니다.