티스토리 뷰
Deeplink
- 특정 페이지에 도달할 수 있는 링크를 의미함.
=> 즉, 모바일 웹상에 있는 링크나 그림을 클릭할 경우
기기 내 관련 앱이나 사전에 정의된 특정 페이지가 실행되는 모바일 기술
- 웹에서 사용되는 http://, https:// 와는 다르게 모바일 어플리케이션마다 각자 생성한 프로토콜을 사용하고 있어
검증이 미흡한 경우 취약점 발생 가능성 존재
- URL 스킴 방식 : 앱에 URl 스킴(scheme) 값을 등록하여 딥링크 사용
- 앱링크(App Link) : Android 제공 - 도메인 주소를 이용한 딥링크 사용
- 유니버셜 링크(Universal Link) : iOS 제공 - 도메인 주소를 이용한 딥링크 사용
android에서 URL Scheme 방식의 딥링크를 사용하기 위해
AndroidManifest.xml에서 data 태그에 host, scheme 정의 필요
<activity android:name="com.silver35.example">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="velog.io/silver35" android:scheme="http"/>
</intent-filter>
</activity>
InsecureShop.apk 파일 디컴파일 후,
AndroidManifest.xml 파일에서
data 태그에 host가 com.insecureshop, scheme이 insecureshop로 정의됨을 확인
com.insecureshop.WebViewActivity
onCreate 함수에 intent0을 선언한 뒤
intent.getData()로 uri를 가져오고 uri0 변수가 null인지 확인함
만약 uri0이 null이 아니면 경로에 /web이 있는지 확인하고
=>있으면 url 파라미터 값을 data 변수에 저장
그렇지 않으면 /webview가 있는지 확인하고
=>url 파라미터 값을 data 값에 저장
/web과 /webview를 모두 포함하지 않으면
=>앱 종료
포함하고 있으면
=>webview.loadUrl(data)를 통해 웹 페이지가 로드 됨
따라서, 위의 앱에서 임의의 웹페이지를 로드하기 위해 아래와 같이 URL을 작성함
insecureshop://com.insecureshop/web?url=https://damti.tistory.com/
insecureshop://com.insecureshop/webview?url=https://damti.tistory.com/
nox로 앱 실행 후,
adb의 am 명령을 이용해 임의의 url로 리다이렉션을 하도록 실행
adb shell am start -W -a android.intent.action.VIEW -d "insecureshop://com.insecureshop/web?url=https://damti.tistory.com/"
의도한 url로 이동하는 것을 확인할 수 있음
참고 출처
https://velog.io/@silver35/Android-Open-redirect-vulnerability-Using-Deeplink
'보안 > App' 카테고리의 다른 글
[DVIA-v2] Bypassing Biometrics (0) | 2023.07.05 |
---|---|
[DVIA-v2] Side Channel Data Leakage (0) | 2023.07.04 |
[DVIA-v2] Runtime Manipulation(Login Method 1) (2) | 2023.07.03 |
[DVIA-v2] Local Data Storage (0) | 2023.06.26 |
[DVIA-v2] Jailbreak Test 1,2 (0) | 2023.06.12 |
- Total
- Today
- Yesterday
- iOS 15 jailbreak
- Touch bypass
- IoTGoat
- Pasteboard
- Local Data Storage
- UserDefaults
- YapDatabase
- Jailbreak iOS
- Objection
- Runtime Manipulation
- SNOMED
- InsecureShop
- 케이쉴드주니어
- Couchbase Lite
- deep learuning
- 탈옥 우회
- Face ID bypass
- Keystroke logging
- Webkit Caching
- SNOMED CT Mapping
- IoT Analysis
- Data Leakage
- Android 7.0
- SNOMED CT
- K-Shield Jr 9기 단기
- LAContext
- 케쉴주
- core data
- Android
- dvia-v2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |