πŸ’₯
Android Penetration Testing
WEBSITEGITHUBLINKDININSTAGRAM
  • πŸ•΅οΈβ€β™‚οΈOWASP Mobile Top 10
    • OWASP Mobile Top 10 2014
    • OWASP Mobile Top 10 2016
    • OWASP Mobile Top 10 2023
      • Insecure Authentication/Authorization
      • Insecure Communication
      • Inadequate Supply Chain Security
      • Inadequate Privacy Controls
      • Insufficient Input/Output Validation
      • Security Misconfiguration
      • Insufficient Cryptography
      • Insecure Data Storage
      • Insufficient Binary Protections
  • "Let's Dive into the Theory"
  • 😍Theory of Android Penetration Testing
    • πŸ‘‘Basic - Advance
    • πŸ’₯Professional - Expert
    • 🟧Types of Mobile Applications
    • 🟣Android Architecture
    • 🟦Android Show
    • πŸš€Secrets of Android App Creation
    • ♦️Android's Data Treasure Chests
    • πŸ›‘Mysterious .apk File:
    • 🏹Android Pentesting with Cutting-Edge Tools
    • ⬛Android File System
  • "Let's Dive into the Practical"
  • πŸ˜‡Vulnerable Android Application with Practical.
    • πŸ˜‰InsecureShop
      • 😁Vulnerability #1: Insecure Logging
      • πŸ˜‚Vulnerability #2: Hardcoded Credentials
      • πŸ˜†Vulnerability #3: Insecure Data Storage
      • 🀣Vulnerability #4: Lack of SSL Certificate Validation
      • 😍Vulnerability #5: Insufficient URL Validation
      • πŸ˜„Vulnerability #6: Weak Host Validation
      • 😘Vulnerability #7: AWS Cognito Misconfiguration
      • πŸ˜ƒVulnerability #8: Insecure Broadcast Receiver
      • πŸ˜›Vulnerability #9: Use of Implicit intent to send a broadcast with sensitive data
      • 😎Vulnerability #10: Using Components with Known Vulnerabilities
      • 😜Vulnerability #11: Intent Redirection (Access to Protected Components)
      • πŸ˜‚Vulnerability #12: Insecure Webview Properties Enabled
      • πŸ˜†Vulnerability #13: Intercepting Implicit intent to load arbitrary URL
      • πŸ™ƒVulnerability #14: Insecure Content Provider
      • πŸ₯°Reading Material
  • "Let's Dive into the Interview Questions"
  • 😎Important Interview Questions for Android Application Penetration Testing.
    • πŸ₯‡Part - 1
    • πŸ₯ˆPart - 2
    • πŸ₯‰Part - 3
    • πŸ…Part - 4
    • πŸŽ–οΈPart - 5
  • 😘Notes
    • Tools to use
    • Important Reports from Hackerone
Powered by GitBook
On this page
  1. OWASP Mobile Top 10
  2. OWASP Mobile Top 10 2023

Insufficient Input/Output Validation

M5: Improper Credential Usage is a category that covers various types of flaws that allow attackers to access or misuse the credentials that are used by mobile applications to authenticate or authorize users or systems. Credentials are the information or data that prove your identity or authority, such as usernames, passwords, tokens, certificates, keys, etc. For example, when you use your email app to send or receive emails, you need to provide your username and password (credentials) to authenticate yourself to the email server.

Improper credential usage can happen when mobile applications do not handle or protect the credentials that they use or rely on in a secure way. For example, some common flaws are:

  • Hardcoded credentials: Some applications store credentials in the code or configuration files of the app, which means that anyone who can access the app can see or extract the credentials in plain text or clear text. For example, an app that connects to a database might store the database username and password in the code of the app.

  • Exposed credentials: Some applications expose credentials to other apps or systems that are not authorized or trusted. They might store credentials in insecure locations on the device (such as shared preferences or caches), transmit credentials over insecure channels (such as HTTP or SMS), or share credentials with third-party services (such as analytics or advertising) without proper consent or disclosure. For example, an app that uses a third-party service to send push notifications might share the user’s device ID and token with the service without asking for permission or informing the user.

  • Reused credentials: Some applications reuse credentials for different purposes or systems that have different security levels or requirements. They might use the same credentials for multiple apps or services, use the same credentials for authentication and encryption, use the same credentials for different users or roles, etc. For example, an app that uses a social media account to log in might use the same username and password for encryption.

  • Weak credentials: Some applications use credentials that are weak or easy to guess or crack by attackers. They might use credentials that are short, simple, common, predictable, or default, such as β€œ123456” or β€œpassword”. For example, an app that uses a PIN code to lock the app might use a four-digit PIN code that is easy to brute-force.

These flaws can lead to serious consequences, such as data breach, account takeover, privilege escalation, fraud, etc. Therefore, it is very important for mobile applications to implement and enforce proper credential usage mechanisms, such as:

  • Credential encryption: Applications should encrypt the credentials that they store on the device or the server side using secure and up-to-date encryption algorithms (such as AES or SHA) and keys (such as 256-bit or 512-bit). They should also encrypt the credentials that they transmit over the network using secure and up-to-date encryption protocols (such as HTTPS or TLS). For example, an app that connects to a database should encrypt the database username and password using AES-256 and store them in a secure database on the server side.

  • Credential protection: Applications should protect the credentials from unauthorized access or use by other apps or systems using proper access control mechanisms (such as authentication or authorization), proper data retention policies (such as deletion or anonymization), proper data sharing policies (such as consent or disclosure), etc. For example, an app that uses a third-party service to send push notifications should ask for user permission and inform the user before sharing the user’s device ID and token with the service.

  • Credential separation: Applications should separate credentials for different purposes or systems that have different security levels or requirements. They should use different credentials for different apps or services, use different credentials for authentication and encryption, use different credentials for different users or roles, etc. For example, an app that uses a social media account to log in should use a different username and password for encryption.

  • Credential strength: Applications should use credentials that are strong and hard to guess or crack by attackers. They should use credentials that are long, complex, unique, and random. They should also enforce credential expiration, lockout, and change policies. For example, an app that uses a PIN code to lock the app should use a six-digit PIN code that is randomly generated and changed every month.

I hope this explanation helps you understand what M5: Improper Credential Usage is and why it is important. If you want to learn more about this category and how to prevent it, you can check out these resources:

  • [M5-Improper Credential Usage | OWASP Foundation]: The official website of the OWASP Mobile Top 10 project. It contains detailed information about this category and links to other useful resources.

  • [Mobile App Security: How To Secure Your Mobile App Credentials]: A blog post that provides an overview of the best practices for mobile app credential security.

  • [Mobile App Security Testing | Cybrary]: A course that teaches you how to test and secure mobile applications against various security risks.

PreviousInadequate Privacy ControlsNextSecurity Misconfiguration

Last updated 1 year ago

πŸ•΅οΈβ€β™‚οΈ