Study/App

[App]Diva 1. Insecure Logging(디버그 로그 내 정보 노출) + 11. Access Control Issues - Part 3(화면 강제 실행 인증단계 우회)

seomj 2022. 9. 27. 23:56

diva 앱 사용

https://github.com/tjunxiang92/Android-Vulnerabilities/blob/master/diva-beta.apk


디버그 로그 내 정보 노출

신용카드 정보라고 이를 가정했을 때,

logcat 명령어를 통해 앱에서 입력한 정보를 로깅되는 것을 확인할 수 있다.

 

코드에서 확인

Android Application Secure Design/Secure Coding Guidebook에 따르면 Logcat에 출력되지 않도록 권고한다.

민감정보는 Log.e가 아닌 Log.d를 이용해 출력하도록 권고한다.

logcat 로그 정보는 같은 단말의 다른 응용 프로그램에서도 읽기가 허용되지 때문이라고 한다.

 

 

 

출처

https://siriusblack01.tistory.com/232


화면 강제 실행 인증단계 우회

초기 화면으로 pin 번호를 설정할 수 있다.

 

틀린 pin 번호를 입력하면 아래와 같은 화면이 뜬다.

 

옳은 pin 번호를 입력하면 비공개 메모(db)를 확인할 수 있다.

 

AndroidManifest.xml을 확인해보면 exported 값이 true로 설정된 것을 확인할 수 있다.

즉, 앱 외부에서도 접근이 가능하다는 것을 의미한다.

 

NotesProvider파일에서 CONTENT_URI값을 확인해보니 data 저장소에 db형태로 저장하고 불러오는 것을 확인할 수 있다.

 

이제 이를 직접 확인해보자.

해당 파일을 pc로 이동시켰다.

 

그리고 SQLite를 사용하여 확인해 보았다.

 

코드에 나온 uri 경로를 사용해 아래와 같은 명령어로도 확인이 가능하다.

adb shell content query --uri content://jakhar.aseem.diva.provider.notesprovider/notes

 

 

 

출처

https://information-security.tistory.com/495

https://teckk2.github.io/mobile/2020/08/15/DIVA-Access-Control-Issues-3.html