목록전체 글 (553)
Self-Improvement

Sensitive Information in Memory 중요 정보가 메모리에 저장되는데 평문으로 저장될 경우 메모리를 덤프하여 확인할 수 있다. 메모리 덤프하는 방법은 아래의 글에서 확인하면 된다. https://johyungen.tistory.com/657 Fridump3 안드로이드 어플 메모리 덤프 (device not found 에러 해결) Self-Improvement Fridump3 안드로이드 어플 메모리 덤프 (device not found 에러 해결) 본문 AOS/Basis Fridump3 안드로이드 어플 메모리 덤프 (device not found 에러 해결) JoGeun 2021. 10. 28. 16:56 Prev 1 ··· 46 47 48 49 50 51 johyungen.tistor..

Insecure WebView Implementation & External Storage 어플리케이션의 ViewStatement 를 선택하면 이때까지 전송한 명세서를 볼 수 있다. 이는 ViewStatement 클래스 onCreate() 메소드에서 로직을 확인할 수 있다. ADB ADB에서 확인해보면 Statements_jack.html 파일을 확인할 수 있다. 누구나 접근할 수 있는 외부 저장소에 저장한다는 것과 WebView의 설정에서 자바스크립트을 Enabled 해놓았기 때문에 입력값에 스크립트 구문을 삽입하면 동작된다. XSS 스크립트 구문을 삽입한 후 ViewStatement를 확인하면 동작된다.

Rooting Bypas 어플리케이션을 실행하여 로그인하면 루팅된 단말기의 경우 "Rooted Device!!"가 출력된다. PostLogin 클래스의 showRootStatus() 메소드를 보면 IF문에 의해 루팅 단말기를 판별하게 된다. 본인의 것은 루팅된 단말기이지만 루팅 탐지 로직에 안걸려서 "Device not Rooted!!"로 나오게 되는데 이를 역으로 루팅 단말기로 나오게끔 후킹해보자 (코드 패치도 가능하다) FRIDA 루팅을 탐지하는 로직에서 PostLogin 클래스의 doesSuperuserApkExist(), doesSUexist() 메소드의 리턴값에 의해 결정된다. 두개의 메소드의 리턴값이 false로 나왔기 때문에 나의 단말기에는 "Device not Rooted!!"가 출력된다...

Insecure Logging 디버깅을 위한 용도로 Log.v(), Log.2() 등의 로그를 찍는 경우가 있다. 이러한 로그들 중 중요정보가 없는지 확인하는 절차가 필요하며 jadx 에서 "log."으로 검색하면 목록을 볼 수 있다. ADB ADB의 logcat을 이용하여 실제 로그 메시지가 출력되는 것을 확인하며 DoLogin 클래스에서 로그인을 성공할 시 아래와 같은 로그가 출력하게 된다. adb logcat | grep -i successful logcat | grep "$(ps -e | grep "com.android.insecurebankv2" | awk '{print $2}')

Application Backup Enabled AndroidManifest.xml 파일에 allowBackup이 true로 설정되어 있을 경우 ADB를 통해 어플리케이션을 백업하여 내용들을 확인할 수 있다. 단말기가 루팅되지 않은 경우에도 수행이 가능하다. ADB 아래와 같은 ADB 명령어로 어플리케이션을 백업한다. adb backup com.android.insecurebankv2 수행하면 backup.ab 파일이 생성되는데 이를 tar 확장자로 변경하기 위해선 abe.jar 를 사용해야 한다. abe.jar https://github.com/nelenkov/android-backup-extractor/releases Releases · nelenkov/android-backup-extractor A..