웹뷰(WebView)
웹뷰(WebView)
1. 설명
웹뷰(WebView)란 프레임워크에 내장된 웹 브라우저 컴포넌트로 뷰(View)의 형태로 앱에 임베딩하는 것을 말한다. 즉, WebView는 앱 내에 웹 브라우저를 넣는 것이다. 웹 페이지를 보기 위해서 혹은 앱 안에서 HTML을 호출하여 앱을 구현하는 하이브리드 형태의 앱을 개발하는데에도 많이 사용된다. - 출처
2. 앱 분석
jadx를 통해 Oh Bank의 apk 파일을 분석해보면 AndroidManifest.xml 파일에 http://xe.com, https://xe.com 에 대해서 DeepLink가 설정되어 CurrencyRates에 연결되는 것을 확인할 수 있다.
또한 CurrenyRates Class를 살펴보면 onCraete 메소드 코드는 다음과 같이 작성되어 있다.
해당 코드를 보면 기본적으로 Intent를 통해 data가 들어오지 않았을 때는 정상적인 xe.com 페이지를 연결하여 환전에 대한 페이지를 WebView를 통해 앱 내에서 보여준다. 그러나 data가 존재한다면 해당 data에서 URL을 키 값으로 통해 URL을 가져와서 xe.com 페이지가 아닌 해당 URL을 WebView를 통해 앱 내에서 보여주는 것을 알 수 있다.
3. 공격 방법
이와 같은 방식을 이용하여 http://xe.com?url=http://192.168.145.15:3001 처럼 해커의 피싱 사이트가 연결된 URL을 파라메터로 넘겨주어 해당 링크를 Short URL을 이용해 감춘 뒤
다음과 같은 피싱 메세지를 보낸 후 사용자가 해당 링크를 클릭하게 되면
이처럼 Oh Bank를 통해 열리게 되며
Oh Bank 앱 내의 WebView를 통해 피싱 사이트가 열리게 된다. 사용자는 이를 DeepLink를 통해 앱이 실행되었으므로 앱 내의 기능이라 착각할 수 있으며 사용자가 해당 피싱 사이트에서 정보를 입력 후 전송하기 버튼을 누르면
해커의 서버에 해당 내용이 전송되어 저장된다..