Hysen Labs
Open-source project
Commando-X/vuln-bank-mobile avatar
Commando-X

vuln-bank-mobile

A deliberately vulnerable mobile banking application designed for practicing mobile security testing. Features common vulnerabilities found in real-world applications, making it an ideal platform for security professionals, developers, and enthusiasts to learn mobile penetration testing..

100 stars43 forksTypeScriptLicense varies
01
DEEP OPEN-SOURCE ANALYSIS

A banking app built to be broken into

Vulnerable Bank is an Android app full of deliberate flaws, a frontend for a purposely vulnerable API, aimed at security engineers, penetration testers, and people learning mobile AppSec.

02
DEEP OPEN-SOURCE ANALYSIS

Deliberately insecure

Vulnerable Bank is an intentionally insecure mobile application built for security engineers, penetration testers, and mobile app security learners. The point is to practice and demonstrate real-world exploitation of insecure coding practices. The app acts as a frontend for the Vulnerable Bank API, a purposely vulnerable web API with typical banking features.

03
DEEP OPEN-SOURCE ANALYSIS

The planted flaws

The intentional weaknesses are listed out. An insecure login with hardcoded credentials. A debug API endpoint exposed in the APK. Plaintext storage of credentials and balance in SharedPreferences. Hardcoded JWT tokens in the source code. The README maps these to OWASP Mobile Top 10 categories, so each flaw doubles as a lesson.

04
DEEP OPEN-SOURCE ANALYSIS

Who it is for

The intended uses are practical. Practicing Android security testing with tools like JADX, Frida, MobSF, and Burp Suite. Demonstrating OWASP Mobile Top 10 risks. Building or demoing mobile DevSecOps pipelines. Running capture-the-flag scenarios or internal red team labs. The challenges are concrete: extract the admin JWT, discover the debug API, and find credentials.

05
DEEP OPEN-SOURCE ANALYSIS

Running it and the caveat

For testing on a real device, the API base must be updated with the server IP, and cleartext HTTP traffic must be allowed in the manifest. The app is written in React Native with TypeScript, uses react-native-vector-icons, and is emulator-friendly. Secrets are deliberately placed in the Java or Kotlin source, in SharedPreferences, and in the manifest. The disclaimer is unambiguous: the app is strictly for educational purposes, should not be installed on real production devices or used with real financial data, and all API endpoints are intentionally insecure and belong only in isolated testing environments. The author is described as a security engineer and mobile AppSec educator.

07
DEEP OPEN-SOURCE ANALYSIS

Official sources

08
Community notes

Community notes