Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- base64
- logstash
- lord of sql injection
- 파이썬
- NTFS
- 인시큐어뱅크
- CTF-d
- Volatility
- foremost
- 2018
- InsecureBank
- SQL Injection
- vulnhub
- Strings
- ctf
- Openstack
- 안드로이드
- igoat
- kibana
- XSS
- otter
- Docker
- beebox
- ESXi
- MFT
- elasticsearch
- frida
- Reflected XSS
- Suninatas
- diva
Archives
- Today
- Total
Information Security
런타임 조작 취약점 본문
정의
- 앱이 실행되는 도중 메모리상에 악의적인 행동을 하는 취약점
발생 위치
- 메모리
영향
- 메모리상에서 데이터 변조를 할 수 있다.
진단
모든 기능이 메모리상에 올라가야 런타임 조작이 가능하기 때문에 jdb에 사용할 인시큐어 디버깅 포트 번호를 확인했다.
adb를 통해 디버깅 포트를 로컬 포트로 포트포워딩해준 후 jdb 명령어를 통해 로컬 디버깅 포트로 연결한다.
로그인하지 않고 패스워드를 변경하기 위해서는 ChangePassword 액티비티를 컴포넌트 취약점을 사용하여 강제로 실행시켜야 한다.
그림 1-3처럼 명령어를 실행하면 ChangePassword 화면이 나타난다.
ChangePassword 클래스의 스마일코드 86번째 줄에 breakpoint를 설정했다. this.uname에 jack으로 메모리를 조작했다.
왼쪽은 dinesh 로그인 했을 때 username이 dinesh로 보여준다. 오른쪽은 그림 1-6처럼 username을 jack으로 메모리 조작한 것을 보여준다.
username을 jack으로 메모리 조작 후 Password를 변경해보았다.
dinesh로 로그인 상태에서 jack의 Password 변경된 것을 확인할 수 있다.
대응방안
- AndroidManifest.xml 파일의 디버깅 관련 옵션을 false 설정한다.
'모바일 > InsecureBank 분석' 카테고리의 다른 글
인자 전달값 조작 (0) | 2019.07.14 |
---|---|
안전하지 않은 HTTP 통신 (0) | 2019.07.14 |
안드로이드 백업 취약점 (0) | 2019.07.14 |
클립보드 취약점 (0) | 2019.07.14 |
안전하지 않은 로깅 메커니즘 (0) | 2019.07.14 |