티스토리 뷰
Runtime Manipulation
– 앱이 실행될 때 흐름 조작 및 정보 유출 등이 가능한 취약점
(ex. 탈옥 탐지 우회 => 런타임 조작 취약점으로 볼 수 있음)
– 런타임 조작을 사용하여
-> 인스턴스 변수를 수정하고,
-> 로컬 로그인 검사를 우회하고,
-> 무차별 강제 핀 코드 사용 가능
1. 주소값+반환값 확인 or 클래스 검색
2. 응답 값 변조
DVIA 앱> Runtime Manipulation > Login Method 1
데이터 미 입력 후 로그인 시도 시 에러 메시지 확인
입력한 계정정보가 맞지 않는 경우 에러 메시지
-> 어느 경우든 로그인 시 입력 값을 검증하기 때문에, 키워드는 Login이 될 수 있음
DVIA-v2에 Objection을 로드함
objection --gadget DVIA-v2 explore
관련될 수 있는 클래스를 검색함.
현재 Swift 함수 이름을 알고 있으므로 login으로 검색
ios hooking search classes login
검색 결과, 48개 클래스를 반환함.
그 중에 LoginValidate 클래스를 Objection에서 확인함
ios hooking watch class LoginValidate
해당 클래스 내에 두 가지 메소드가 있음을 알 수 있음
(agent) Watching method: + isLoginValidated
(agent) Watching method: + validateCode:viewController:
Login Method 1 버튼을 다시 누르면,
아래와 같이 출력됨
-> 클래스의 Login Method 1 메소드가 호출된다는 것을 알 수 있음.
반환되는 값을 확인함
ios hooking watch method "+[LoginValidate isLoginValidated]" --dump-args --dump-return
버튼을 다시 누르면 다음 출력이 표시됨
(agent) [p2itp5paimj] Called: +[LoginValidate isLoginValidated] 0 arguments(Kind: class) (Super: NSObject)
(agent) [p2itp5paimj] Return Value: 0x0
=> 따라서 로그인에 실패 시, 해당 메소드의 값은 0임.
연결하고 반환 값을 1로 설정하겠음.
(0x1로 변경 시도 시 실패했지만, 0x1 대신 true를 사용하면 명령이 작동함.)
true로 변경하는 명령은 다음과 같음.
ios hooking set return_value "+[LoginValidate isLoginValidated]" true
이제 버튼을 다시 클릭하면 Login Method 1로그인 화면을 건너뛰었다는 메시지가 표시됨
후킹 및 변경된 값을 보여주는 출력을 확인함.
(agent) [p2itp5paimj] Called: +[LoginValidate isLoginValidated] 0 arguments(Kind: class) (Super: NSObject)
(agent) [p2itp5paimj] Return Value: 0x0
(agent) [3so3hzb0hbz] +[LoginValidate isLoginValidated] Return value was: 0x0, overriding to 0x1
참고 출처
https://philkeeble.com/ios/reverse-engineering/iOS-Runtime-Manipulation/
'보안 > App' 카테고리의 다른 글
[DVIA-v2] Bypassing Biometrics (0) | 2023.07.05 |
---|---|
[DVIA-v2] Side Channel Data Leakage (0) | 2023.07.04 |
[Android] Open redirect vulnerability Using Deeplink (2) | 2023.06.29 |
[DVIA-v2] Local Data Storage (0) | 2023.06.26 |
[DVIA-v2] Jailbreak Test 1,2 (0) | 2023.06.12 |
- Total
- Today
- Yesterday
- IoTGoat
- SNOMED
- Android 7.0
- 케쉴주
- YapDatabase
- Webkit Caching
- Touch bypass
- K-Shield Jr 9기 단기
- LAContext
- IoT Analysis
- 케이쉴드주니어
- Pasteboard
- Android
- core data
- InsecureShop
- dvia-v2
- SNOMED CT
- UserDefaults
- iOS 15 jailbreak
- Jailbreak iOS
- Face ID bypass
- Runtime Manipulation
- Couchbase Lite
- Objection
- SNOMED CT Mapping
- deep learuning
- Keystroke logging
- 탈옥 우회
- Local Data Storage
- Data Leakage
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |