목록전체 글 (553)
Self-Improvement
Insecure Storage of Credentials LoginActivity 클래스 onCreate() 메소드에서 " 나서 R.id.fill_data 버튼을 선택할 시 fillData() 메소드가 실행되어 진다. fill_data 버튼을 "Autofill Credentials" 문자열을 가진 버튼으로 layout 폴더에서 찾게 되었다. fillData() 메소드를 보면 "mySharedPreferences" 파일에서 "EncryptedUsername", "superSecurePassword" 값을 가져온다. 그리고는 아이디는 base64로 디코딩, 패스워드는 AES256로 복호화를 진행하게 된다. 실제 mySharedPreferences 파일 내용을 확인해보면 값들이 존재한다. AES256 복호화 ..
Developer Login LoginActivity 클래스에서 로그인을 수행할 경우 performlogin() 메소드가 실행된다. 이때 DoLogin 클래스를 입력받은 아이디, 패스워드와 함께 호출하게 된다. DoLogin 클래스 onCreate() 메소드에서는 받아온 데이터를 각 this.username, this.password에 저장하고 RequestTask() 호출하게 된다. RequestTask() 에서는 postData()를 실행시키게 된다. postData() 메소드에서는 Endpoint가 "/login", "/devlogin"인 2가지 로그인 방식이 존재한다. 그 중 아이디가 "devadmin" 일경우 "/devlogin"으로 요청하는 구문이 존재하는데 이는 개발자를 위한 숨겨진 계정으로..
Hidden Create User Button for Admins 로그인 화면인 LoginActivity 클래스의 onCreate() 메소드를 보면 is_admin의 값이 "no"일 경우 CreateUser Button을 setVisibility gone으로 숨기고 있다. resources.arsc/res/values/strings.xml 파일의 is_admin 값을 보면 "no"로 설정되어 있다. 코드 패치 LoginActivity 클래스 onCreate() 메소드에서 equals("no")가 아닌 다른값으로 변경하거나 strings.xml 파일의 is_admin 값을 변경하여 숨겨진 버튼을 확인해보자 is_admin 값을 yes로 패치하였다. 어플리케이션을 재설치 후 확인하였더니 "Create Use..
Login Bypass AndroidManifest.xml 파일에는 액티비티가 선언되어 있으며 이때 exported 설정값이 true이거나 태그 안에 exporter 설정이 안되어 있으면 기본값으로 true로 설정되는데 이때 해당 액티비티를 권한 없이 요청하여 접근할 수 있다. ADB ADB 명령어를 이용하여 해당 액티비티를 요청하면 된다. adb shell am start -n com.android.insecurebankv2/.PostLogin // Drozer Drozer로의 방법은 아래의 명령어를 수행하면 된다. adb forward tcp:31415 tcp:31415 drozer console connect // 취약점 출력 run app.package.attacksurface com.androi..
InsecureBankv2 https://github.com/dineshshetty/Android-InsecureBankv2 GitHub - dineshshetty/Android-InsecureBankv2: Vulnerable Android application for developers and security enthusiasts to learn ab Vulnerable Android application for developers and security enthusiasts to learn about Android insecurities - GitHub - dineshshetty/Android-InsecureBankv2: Vulnerable Android application for develop....