Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 취약점진단
- 보안진단원
- hooking script
- Firebase 취약점
- Firebase Real-time Database
- trace intent
- gdb debug
- Frida
- actuator env
- 취약점
- so hooking
- firebasescanner
- http request smuggling
- Android
- source map
- trace cipher
- actuator heapdump
- without frida
- spring boot 취약점
- android hooking
- digest hooking
- gdb memory dump
- 휴대폰 번호 변조
- actuator endpoint
- Android 취약점진단
- native code hooking
- APP 진단
- graphiql
- 무결성 검증 우회
- gdb 메모리 덤프
Archives
- Today
- Total
Und3r__Score__
Android 진단 시 확인해야 하는 Class 및 function 정리 본문
취약점진단/Mobile (Android, iOS)
Android 진단 시 확인해야 하는 Class 및 function 정리
_underscore_ 2024. 3. 21. 18:13Android APP 진단 시 확인해야하는 class와 function을 후킹하여 인자 값이나 return 값을 확인하는 frida hooking 스크립트를 제작하면, 진단 시 확인해야하는 기능 특정이 빠르게 이루어질 것 같다라는 생각이 들었습니다.
그래서 스크립트를 제작하기 전에 먼저 취약점 진단 시 확인해야 하는 항목과 관련된 class와 method를 먼저 리스팅해보고자 합니다.
관련 취약점 | Class | function |
local storage 관련 로직 파악 (파일 내 중요정보 포함 여부, 중요 로직 사용 여부 확인 목적) |
android.content.SharedPreferences | * |
java.io.FileOutputStream | * | |
android.content.Context | getExternalFilesDir() getExternalFilesDirs() getExternalCacheDir() getExternalCacheDirs() getExternalMediaDirs() - deprecated in API level 30 |
|
android.content.Context | getCacheDir() getExternalCacheDirs() |
|
android.database.sqlite.SQLiteOpenHelper | getWritableDatabase() getReadableDatabase() |
|
File Mode를 매개 변수로 사용하는 메서드 확인 (다른 앱에서 파일 읽기/쓰기 가능 여부 확인) deprecated in API level 17 - MODE_WORLD_WRITABLE (1) - MODE_WORLD_READABLE (2) |
android.content.SharedPreferences | getSharedPreferences() |
android.content.Context | openFileOutput() getDir() |
|
android.database.sqlite.SQLiteDatabase | openOrCreateDatabase() | |
암호화 관련 (취약한 암호화 알고리즘 사용, 암호화/복호화 로직 분석 목적) 취약한 암호화 알고리즘 - RC2, RC4, RC5, RC6, MD4, MD5, SHA1, DES |
android.content.pm.Signature |
getInstance() |
javax.crypto.Cipher | getInstance() | |
javax.crypto.Mac | getInstance() | |
java.security.MessageDigest | getInstance() | |
javax.crypto.KeyGenerator | generateKey() | |
동적 broadcasting receiver 사용 시 protectionlevel 확인 | android.content.BroadcastReceiver | registerReceiver() |
Log 내 주요 정보 노출 |
android.util.Log | d() e() i() v() w() wtf() |
java.util.logging.Logger | * | |
StrictMode 설정 확인 | android.os.StrictMode.VmPolicy.Builder | penaltyLog() penaltyDropbox() |
취약한 함수 사용 (외부에서 조작 가능한 값을 사용하는지 확인) |
android.webkit.WebView | loadUrl() |
java.lang.Runtime | exec() | |
인텐트 처리 로직 분석 |
android.app.Activity | setIntent() getIntent() |
android.content.Intent | setData() getData() getDataString() putExtra() getExtras() get*Extra() addFlags() getFlags() setAction() getAction() addCategory() getCategories() parseUri() getScheme() getComponent() |
|
Dynamic code 로드 메소드 확인 |
dalvik.system.DexClassLoader (apk 파일 또는 jar 파일에서 dex 파일 로드) | DexClassLoader() constructor |
dalvik.system.PathClassLoader (로컬 파일 시스템의 파일 또는 디렉터리에서 dex 파일 로드) |
PathClassLoader() constructor | |
dalvik.system.InMemoryDexClassLoader (버퍼에 포함된 dex 파일 로드) | InMemoryDexClassLoader() constructor |
'취약점진단 > Mobile (Android, iOS)' 카테고리의 다른 글
_Frida Hooking Script 04_ 무결성 검증 우회 (0) | 2024.02.21 |
---|---|
_Frida Hooking Script 03_ native code hooking (0) | 2024.02.21 |
_Frida Hooking Script 02_ trace intent, cipher (0) | 2024.02.20 |
_Frida Hooking Script 01_ 휴대폰 번호 변조 (0) | 2024.02.20 |
Firebase Real-time Databases Misconfiguration (0) | 2024.02.20 |