모의해킹 진행 중 처음보는 피싱 방법을 알게되었다. (실제로 언제부터 사용된지는 모르겠다..)

바로 callbackURL에 @를 넣어서 피싱 사이트로 연결시키는것. (혹은 리다이덱트 URL 등등)

예를 들면 ?callbackURL=https://www.naver.com@google.com 이런식이다.

네이버 링크처럼 보이지만 https://www.naver.com@google.com를 호출해보면 네이버가 아닌 구글로 연결된다.

이렇게 정상적인 도메인 뒤에 @를 넣고 피싱 도메인을 넣으면 피싱 사이트로 연결이 된다.

@는 무엇일까?

HTTP URL은 URI 문법을 따른다.

그럼 URI에서 @는 어떻게 인식되는것일까?

URI에서 @를 붙이면 앞쪽은 사용자정보(인증정보) 뒷쪽을 호스트로 인식한다.

https://www.naver.com@google.com를 예시로 보면

앞쪽의 www.naver.com은 사용자정보(인증정보)가 되는것이고

뒷쪽의 google.com이 호스트가 돼서 구글로 랜딩된다.

Java 에서도 확인 가능

Java의 URI 객체로도 확인이 가능하다.

  URI uri = new URI("https://www.naver.com@google.com")

  System.out.println(uri.getHost());

  // 결과값은 google.com 출력

저렇게 리다이렉트하는 곳에서는 URL을 한 번 검증 해줄 필요가 있다.

참고