[목차]

 

1. Webview 란?

2. Webview Issues 취약점

3. 실습

4. 대응 방안

 

 


 

1. Webview 란?

 

웹뷰는 프레임워크에 내장된 웹 브라우저 컴포넌트로

View의 형태로 앱에 임베딩하는 것을 말하며

쉽게 앱 내에 웹 페이지를 넣는 것을 의미한다.

 

API를 통해서 받은 URL을 호출해 보면

응답 값으로 JSON, XML 같은 데이터 포맷이 아닌

HTML로 들어오게 되는데 이렇게 들어온 데이터는

파싱을 해줄 수가 없기 때문에 해당 HTML 데이터를

처리해 웹 페이지로 보여주는 역할을 한다.

 

ios 버전에 따라 사용되는 웹 뷰는

- WKWebView (iOS 2.0)

- UIWebView (iOS 8.0)

- SFSafariView (iOS 9.0 이상)

세 가지인데

 

버전이 올라갈수록 성능이 좋아지며

DVIA 앱의 경우는 UIWebview 방식으로

설계되었다.

 

 

 

2. Webview Issues 취약점은

 

웹뷰에서 발생하는 인젝션 취약점으로

입력 유효성 검사가 제대로 이루어지지 않아

클라이언트 측 인젝션이 발생하는

취약점이다.

 

유효성 검사가 이루어지지 않아

클라이언트 측에서 코드 삽입이 되므로

디바이스에서 기본 기능 호출 및

악의적인 액티비티 수행이 가능하다.

 

예) XSS

 

 

 

 

 

3. 실습

 

앱에 접속 후 4가지 미션을 살펴본다.

 

 

 

3-1) Hello World 출력

숫자는 출력 되지만 문자는 필터링이 걸려있다.

 

 

 

String.fromCharCode()

함수를 사용해 각 문자를 아스키 번호로

변경해 준 뒤 실행하면

<script>alert(String.fromCharCode(72,101,108,108,111,32,87,111,114,108,100))</script>

 

성공!

 

 

 

4. 대응 방안

 

사용자 입력 값에 대한 유효성 검사 필요 (클라이언트 측 검사)

• NSXMLParser 클래스 또는 libxml2 API와 같이

각 노드에 객체를 제공하는 라이브러리를 사용

• HTML 또는 XML을 수동으로 구성해야 하는 경우

변환해야 하는 특수문자 5개가 존재

 

참고 :

https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html

 

 

 

 

 

 

 

 

 

[도움 출처]

: 보안프로젝트 김태영 팀장 iOS 모바일 앱 모의해킹(기초) 강의

 

728x90
반응형

+ Recent posts