EYEN
DIVA 8단계 본문
#1 문제 분석
가. 목적
민감정보를 webURL없이 접근해보자
나. 활용
소스코드,adb
#2 취약점 정보
가. 취약점
나. 취약점 확인법
경로 탐색 공격 중 하나일 것이라고 생각했다.
경로 이것저것 넣어보다가 nox 파일시스템에서 jakhar.assem.diva의 데이터 저장소로 가서 다 뒤져보았다.
#3 코드 분석
1.
import android.webkit.WebSettings;
android.webkit.WebSettings: 안드로이드 웹뷰가 웹 페이지를 어떻게 표시하고 동작해야하는지 관리할 수 있는 클래스
웹뷰는 안드로이드 애플리케이션에서 웹 콘텐츠를 표시하고 웹페이지와 상호작용하는 데 사용된다.
Websettings:
- 자바스크립트 사용 설정: setJavaScriptEnabled() 메서드를 사용하여 웹뷰에서 자바스크립트를 사용할 수 있도록 설정합니다.
- 캐시 관리 설정: 웹페이지 로딩 시 캐시를 사용할지 여부를 결정합니다. setCacheMode() 메서드를 사용하여 캐시 모드를 설정할 수 있습니다.
- 화면 크기 조정: setLayoutAlgorithm() 메서드를 사용하여 웹 페이지의 레이아웃 알고리즘을 설정합니다.
- 줌 설정: setSupportZoom() 및 setBuiltInZoomControls() 메서드를 사용하여 확대/축소를 지원하도록 설정할 수 있습니다.
- 웹 페이지 로드 속도 및 데이터 사용량 관리: setRenderPriority() 및 setAppCacheEnabled() 메서드를 사용하여 웹 페이지 로드 속도를 최적화하고 데이터 사용량을 관리할 수 있습니다
2.
import android.webkit.WebView;
android.webkit.webView: 안드로이드 애플리케이션에서 웹 콘텐츠를 표시, 웹 페이지를 제어, 사용자와 상호작용할 수 있는 클래스
Webview:
- 웹페이지 로딩: loadUrl() 메서드를 사용하여 지정된 URL의 웹페이지를 로드합니다.
- HTML 코드 로딩: loadData() 또는 loadDataWithBaseURL() 메서드를 사용하여 HTML 코드를 로드합니다.
- 웹페이지 제어: 뒤로가기, 앞으로가기, 새로고침 등과 같은 기능을 제공합니다.
- JavaScript와 상호작용: addJavascriptInterface() 메서드를 사용하여 JavaScript와 네이티브 코드 간에 상호작용할 수 있습니다.
- 페이지 로딩 상태 확인: WebViewClient를 설정하여 페이지 로딩 상태를 확인하고 필요한 조치를 취할 수 있습니다.
3.
WebView wview = (WebView) findViewById(R.id.ivi2wview);
XML 레이아웃 파일에서 ivi2wview로 정의된 WebView를 찾아 wview에 저장
4.
WebSettings wset = wview.getSettings();
getSettings(): WebView에서 설정을 관리하는 WebSettings 객체를 반환한다
이 객체를 통해 웹 페이지를 어떻게 표시하고 동작할지 구성할 수 있다.
5.
wset.setJavaScriptEnabled(true);
WebView에서 JS를 활성화하는 메서드, 웹페이지의 동적인 기능을 구현하는 데 사용
6.
wview.loadUrl(uriText.getText().toString());
uriText 객체에서 사용자가 입력한 값을 가져와서 스트링으로 바꿔어 wview에 로드함
#4 안드로이드 파일 시스템