Skip to content

Instantly share code, notes, and snippets.

@paulbrodner
Last active September 1, 2022 10:17
Show Gist options
  • Select an option

  • Save paulbrodner/c8a4e5197e052089ce61b6ef7f91e5ae to your computer and use it in GitHub Desktop.

Select an option

Save paulbrodner/c8a4e5197e052089ce61b6ef7f91e5ae to your computer and use it in GitHub Desktop.

Open Web Application Security Project(OWASP)

automated tools

2021 -Top 10

  • summary
    • a weakness that allows an attacker to gain access to user accounts (2017)
  • vulnerabilities
    • Violation of the principle of least privilege or deny by default, where access should only be granted for particular capabilities, roles, or users, but is available to anyone.
    • Bypassing access control checks by modifying the URL (parameter tampering or force browsing), internal application state, or the HTML page, or by using an attack tool modifying API requests.
    • Permitting viewing or editing someone else's account, by providing its unique identifier (insecure direct object references)
    • Accessing API with missing access controls for POST, PUT and DELETE.
    • Elevation of privilege. Acting as a user without being logged in or acting as an admin when logged in as a user.
    • Metadata manipulation, such as replaying or tampering with a JSON Web Token (JWT) access control token, or a cookie or hidden field manipulated to elevate privileges or abusing JWT invalidation.
    • CORS misconfiguration allows API access from unauthorized/untrusted origins.
    • Force browsing to authenticated pages as an unauthenticated user or to privileged pages as a standard user.
  • summary
    • known previously as Sensitive Data Exposure occur when important stored or transmitted data is compromised (2017)
  • vulnerabilities
    • Is any data transmitted in clear text? This concerns protocols such as HTTP, SMTP, FTP also using TLS upgrades like STARTTLS. External internet traffic is hazardous. Verify all internal traffic, e.g., between load balancers, web servers, or back-end systems.
    • Are any old or weak cryptographic algorithms or protocols used either by default or in older code?
    • Are default crypto keys in use, weak crypto keys generated or re-used, or is proper key management or rotation missing? Are crypto keys checked into source code repositories?
    • Is encryption not enforced, e.g., are any HTTP headers (browser) security directives or headers missing?
    • Is the received server certificate and the trust chain properly validated?
    • Are initialization vectors ignored, reused, or not generated sufficiently secure for the cryptographic mode of operation? Is an insecure mode of operation such as ECB in use? Is encryption used when authenticated encryption is more appropriate?
    • Are passwords being used as cryptographic keys in absence of a password base key derivation function?
    • Is randomness used for cryptographic purposes that was not designed to meet cryptographic requirements? Even if the correct function is chosen, does it need to be seeded by the developer, and if not, has the developer over-written the strong seeding functionality built into it with a seed that lacks sufficient entropy/unpredictability?
    • Are deprecated hash functions such as MD5 or SHA1 in use, or are non-cryptographic hash functions used when cryptographic hash functions are needed?
    • Are deprecated cryptographic padding methods such as PKCS number 1 v1.5 in use?
    • Are cryptographic error messages or side channel information exploitable, for vulnerabilities in the form of padding oracle attacks?
  • summary
    • occurs when invalid data is sent by an attacker into a application in order to make the application do something it was not designed to do (2017)
  • vulnerabilities
    • User-supplied data is not validated, filtered, or sanitized by the application.
    • Dynamic queries or non-parameterized calls without context-aware escaping are used directly in the interpreter.
    • Hostile data is used within object-relational mapping (ORM) search parameters to extract additional, sensitive records.
    • Hostile data is directly used or concatenated. The SQL or command contains the structure and malicious data in dynamic queries, commands, or stored procedures.
  • summary
    • exploit unpatched flaws or access default accounts, unused pages, unprotected files and directories, etc to gain unauthorized access or knowledge of the system (2017)
  • vulnerabilities
    • Missing appropriate security hardening across any part of the application stack or improperly configured permissions on cloud services.
    • Unnecessary features are enabled or installed (e.g., unnecessary ports, services, pages, accounts, or privileges).
    • Default accounts and their passwords are still enabled and unchanged.
    • Error handling reveals stack traces or other overly informative error messages to users.
    • For upgraded systems, the latest security features are disabled or not configured securely.
    • The security settings in the application servers, application frameworks (e.g., Struts, Spring, ASP.NET), libraries, databases, etc., are not set to secure values.
    • The server does not send security headers or directives, or they are not set to secure values.
    • The software is out of date or vulnerable.
  • summary
    • relates to components that pose both known and potential security risks ()
  • vulnerabilities
    • CWE-1104: Use of Unmaintained Third-Party Components
    • If you do not know the versions of all components you use (both client-side and server-side). This includes components you directly use as well as nested dependencies.
    • If the software is vulnerable, unsupported, or out of date. This includes the OS, web/application server, database management system (DBMS), applications, APIs and all components, runtime environments, and libraries.
    • If you do not scan for vulnerabilities regularly and subscribe to security bulletins related to the components you use.
    • If you do not fix or upgrade the underlying platform, frameworks, and dependencies in a risk-based, timely fashion. This commonly happens in environments when patching is a monthly or quarterly task under change control, leaving organizations open to days or months of unnecessary exposure to fixed vulnerabilities.
    • If software developers do not test the compatibility of updated, upgraded, or patched libraries.
    • If you do not secure the components’ configurations (see A05:2021-Security Misconfiguration).
  • summary
    • known as Broken Authentication includes Common Weakness Enumerations (CWEs) related to identification failures.
  • vulnerabilities
    • Permits automated attacks such as credential stuffing, where the attacker has a list of valid usernames and passwords.
    • Permits brute force or other automated attacks.
    • Permits default, weak, or well-known passwords, such as "Password1" or "admin/admin".
    • Uses weak or ineffective credential recovery and forgot-password processes, such as "knowledge-based answers," which cannot be made safe.
    • Uses plain text, encrypted, or weakly hashed passwords data stores (see A02:2021-Cryptographic Failures).
    • Has missing or ineffective multi-factor authentication.
    • Exposes session identifier in the URL.
    • Reuse session identifier after successful login.
    • Does not correctly invalidate Session IDs. User sessions or authentication tokens (mainly single sign-on (SSO) tokens) aren't properly invalidated during logout or a period of inactivity.
  • summary
    • related to software updates, critical data, and CI/CD pipelines without verifying integrity.
  • vulnerabilities
    • where an application relies upon plugins, libraries, or modules from untrusted sources, repositories, and content delivery networks (CDNs).
    • An insecure CI/CD pipeline can introduce the potential for unauthorized access, malicious code, or system compromise
  • summary
    • known as Insufficient logging and monitoring is the bedrock of nearly every major incident. Attackers rely on the lack of monitoring and timely response to achieve their goals without being detected.
  • vulnerabilities
    • Auditable events, such as logins, failed logins, and high-value transactions, are not logged.
    • Warnings and errors generate no, inadequate, or unclear log messages.
    • Logs of applications and APIs are not monitored for suspicious activity.
    • Logs are only stored locally.
    • Appropriate alerting thresholds and response escalation processes are not in place or effective.
    • Penetration testing and scans by dynamic application security testing (DAST) tools (such as OWASP ZAP) do not trigger alerts.
    • The application cannot detect, escalate, or alert for active attacks in real-time or near real-time.
  • summary
    • occur whenever a web application is fetching a remote resource without validating the user-supplied URL. It allows an attacker to coerce the application to send a crafted request to an unexpected destination, even when protected by a firewall, VPN, or another type of network access control list (ACL)
  • vulnerabilities
    • If a network architecture is unsegmented, attackers can use connection results or elapsed time to connect or reject SSRF payload connections to map out internal networks and determine if ports are open or closed on internal servers
  • about
    • "focused on network defense and describes the operational phases in an adversary’s lifecycle, pre and post-exploit and details the specific tactics, techniques, and procedures (TTPs) that advanced persistent threats (APT) use to execute their objectives while targeting, compromising, and operating inside a network."
    • "designed to support cybersecurity by providing a framework for threat modeling, penetration testing, defense development and similar cybersecurity exercises"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment