Web Application Security: Vulnerabilities and Mitigations

Posted by Anonymous and classified in Computers

Written on in English with a size of 1.73 MB

Web Security Fundamentals

Vte60I22Y4rloTJJkNobQnzfKnvzVllIg5VXseVlb8Oo0lemK0wbVL2Ro4ylzQ96mYBvg7I3FlW9EaUPdsbPXfehlUZYxr6v7kaIgqQgAAEIQAACEIBALQHEci2i6bkhhrpMT82oCQQgAAEIQAACEBgPAcTyeLhORKq5E6z84MJENA2FgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwQQyz1pKIoJAQhAAAIQgAAEINA9AcRy98zJEQIQgAAEIAABCECgJwT+L8xpiAEBloqFAAAAAElFTkSuQmCC NF+gw7WaYNgAAAABJRU5ErkJggg== bpX7OFi9HIwAAAABJRU5ErkJggg== aXgG7JY0aGX+AzUxEfBqKaiqwN+Lqr8dhK3JtUSkuu9jiG7CmeBLI0AibpQApn3VjsogYpJsbULXZBVNqNbpV99GfuLaO+y1OBhQCQmAiCfwnQcZEIpS5hYAQEAJCQAgIgVAEJMiQfSEEhIAQEAJCQAiEhYAEGWHBKoMKASEgBISAEBACEmTIHhACQkAICAEhIATCQkCCjLBglUGFgBAQAkJACAgBCTJkDwgBISAEhIAQEAJhIfANRHwpmb9j0SIAAAAASUVORK5CYII= ntAAAAAElFTkSuQmCC wcCnzcg8p0c5gAAAABJRU5ErkJggg==

Common Cross-Site Scripting (XSS) Types

XSS TypeExample PayloadDescription
Reflected XSS<script>alert(1)</script>Injected payload reflected immediately in server response.
Stored XSS<img src="x" onerror="alert(1)">Payload stored on server (e.g., in database), executed later.
DOM-Based XSSURL: #<script>alert(1)</script>Payload executed via client-side JavaScript manipulation.
Event Handler XSS<a onclick="alert(1)">Click</a>Injects event attributes to run JS on user actions.
Attribute Injection"><script>alert(1)</script>Breaks out of HTML attribute to inject malicious code.
JavaScript URI XSS<a href="javascript:alert(1)">Click</a>Runs JS via link clicks using javascript: scheme.
Polyglot Payloads"><svg></svg>Versatile payload working across multiple injection contexts.
Obfuscated XSS<script>alert(String.fromCharCode(88,83,83))</script>Encodes payload to evade filters.

DAST vs SAST: Security Testing Comparison

AspectDAST (Dynamic Application Security Testing)SAST (Static Application Security Testing)
DefinitionTests the running application from the outside (black-box testing).Analyzes source code or binaries without executing the app (white-box testing).
When UsedDuring or after deployment; tests real app behavior in runtime.Early in development; tests code before running.
ScopeFocuses on vulnerabilities exposed in the running app, e.g., XSS, SQLi.Focuses on code-level issues, e.g., buffer overflows, insecure coding patterns.
Test TypeBlack-box; interacts with the app via HTTP, UI, APIs.White-box; parses and analyzes source code or bytecode.
Pros
  • Finds runtime issues
  • Detects environment/configuration problems
  • No access to source code needed
  • Finds vulnerabilities early
  • Provides detailed source info
  • Covers all code paths
Cons
  • Limited to exposed functionality
  • Can't see internal code logic
  • Possible false negatives
  • Can produce false positives
  • Requires source code access
  • May miss runtime/config issues
Common Vulnerabilities FoundXSS, SQL Injection, Authentication flaws, Broken Access ControlSQL Injection, Buffer overflows, Hardcoded secrets, Unsafe functions
Tools ExamplesOWASP ZAP, Burp Suite, IBM AppScan, NetsparkerSonarQube, Fortify, Checkmarx, Veracode, Semgrep
OutputVulnerability reports with URLs, inputs, responsesCode-level findings with line numbers, severity, fix suggestions
Best Use Cases
  • Testing deployed apps
  • Assessing 3rd-party components
  • Verifying fixes on live apps
  • Early development stage
  • Code reviews
  • CI/CD integration

DzzjaP9K5jigAAAAAElFTkSuQmCC AwDuFStWRD1cx0kBKSAFpIAUkAJSQApIgaJWoFKg+91333WibbjhhkUtniYnBaSAFJACUkAKSAEpIAXKUyD1Y4xt27bNKVZQpDtnazpACkgBKSAFpIAUkAJSQApIgT8pIOiWU0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEpIOiWD0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEpIOiWD0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEpIOiWD0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEpIOiWD0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEpIOiWD0gBKSAFpIAUkAJSQApIgUpWQNBdyQKreSkgBaSAFJACUkAKSAEp8P8AY4UfwUrbmEsAAAAASUVORK5CYII= oJuMK3olS34AAAAASUVORK5CYII= AaxX+9MonyBSAAAAAElFTkSuQmCC

Session Management and CSRF Attacks

Session management involves maintaining stateful information about user interactions across multiple requests. It enables the server to recognize and track users, maintain user-specific data, and provide a personalized experience. Poorly managed web applications can become vulnerable to attacks such as CSRF (Cross-Site Request Forgery) attacks that can cause unintentional changes or forced transactions on behalf of a logged-in user.

GYRuRtx5Le0wzWcZPSCkYkdKbjetsFzNgLPvSH4RovovxmjQ8CmVWcDODw4jez7vEUyMYKhbU5kvupG5zkbgleDcN4OIvyA65jgHGSdyDSdCdZ8fG7haf85VMRapUUBiwIWBSwKmFHAtGYCTwvI5Xj1c0Mb7OrVztpBC7kciuvsaNtQ84DaztrWxt+WrmqqPy4+yqFQtMH+pl1cHpWfcprjXgCt4p0avyvPp+Y73TlUTbaRZ8qPq+vG+ja0Ndhw04zY1vcWBSwKWBSwKGBR4I9IAXNn4gWuur5m4gW+3HqVRQGLAhYFLApYFLAosCIKrBFnIof4KTbHuhLDYoHNqPb0swmVzyqAXBFLrR9ZFLAoYFHAooBFgRdLgf8fiOqrpDd+fHEAAAAASUVORK5CYII= gdIVmlpdf57wQAAAABJRU5ErkJggg== H99FKCft+zXJAAAAAElFTkSuQmCC WwAAAAASUVORK5CYII= wPYD1FmzX30IAAAAABJRU5ErkJggg== JRkLHNK2dpkvdT7N2u4bxT8otZbw+TzmBOtbnC0hu5ZFSXfRTvhdGuPwGrxJeNhBbvIDGwzQ1GurxP0K6GmrEBCIYHIyYgIYTAREQAREQARH4f1wryI4iIAIiIAIiIALhEFDmIByuGlUEREAEREAEIktAwUFkTaeJi4AIiIAIiEA4BBQchMNVo4qACIiACIhAZAkoOIis6TRxERABERABEQiHgIKDcLhqVBEQAREQARGILAEFB5E1nSYuAiIgAiIgAuEQUHAQDleNKgIiIAIiIAKRJaDgILKm08RFQAREQAREIBwCCg7C4apRRUAEREAERCCyBBQcRNZ0mrgIiIAIiIAIhENAwUE4XDWqCIiACIiACESWwD+mShrkrhBonAAAAABJRU5ErkJggg==

Core Principles of Secure System Design

xAY7C2m8u0KAAAAAElFTkSuQmCC wPNDE0z7832BgAAAABJRU5ErkJggg==

#PrincipleCore Idea
1Security by DesignBuild security into architecture from the start
2Security by DefaultDefault settings should be the most secure
3No Security GuaranteeNo system is perfect—focus on deterrence
4Defense in DepthUse multiple layers of security
5Fail SafeDefault to secure behavior on errors
6Least PrivilegeGrant minimum required access
7CompartmentalizeLimit access using need-to-know
8Separation of DutiesRequire multiple people or conditions for sensitive ops
9Economy of MechanismKeep systems simple and understandable
10Complete MediationCheck access every time
11Open DesignSecurity shouldn't rely on obscurity
12Least Common MechanismAvoid shared components between privilege levels
13Psychological AcceptabilityMake security user-friendly
14Usability & ManageabilityEasy for admins to use and maintain securely
15Secure the Weakest LinkStrengthen the most vulnerable parts first
16Leverage Existing ComponentsUse well-tested, secure libraries and tools

wDZqyk1qTemGwAAAABJRU5ErkJggg== wO2pzuGxkDiMwAAAABJRU5ErkJggg==

STRIDE Threat Modeling Framework

+ZvCTpbKpBVawQFQAApAASgABaAAFIACUAAKQAEoYEQBQJoRGWEECkABKAAFoAAUgAJQAApAAShgRgFAmhkdYQUKQAEoAAWgABSAAlAACkABKGBEAUCaERlhBApAASgABaAAFIACUAAKQAEoYEYBQJoZHWEFCkABKAAFoAAUgAJQAApAAShgRAFAmhEZYQQKQAEoAAWgABSAAlAACkABKGBGgf8fidOInVy29EQAAAAASUVORK5CYII=

STRIDE CategoryThreat DescriptionCommon Attack ExamplesMitigation Strategies
S – SpoofingPretending to be something or someone elseStolen credentials, forged tokens- Strong authentication (MFA)
- Use secure tokens
- Certificate validation, mutual TLS
T – TamperingUnauthorized modification of data or codeData injection, unauthorized config changes- Data integrity checks (hash, signatures)
- Input validation and sanitization
- Code signing and integrity verification
R – RepudiationDenying having performed an actionUser denies transaction, logs deleted- Implement audit logs with non-repudiation
- Use digital signatures
- Maintain tamper-proof logs
I – Information DisclosureExposing sensitive info to unauthorized usersData leaks, verbose error messages- Encrypt sensitive data at rest and in transit
- Access control and least privilege
- Mask error messages
D – Denial of Service (DoS)Making service unavailable or slowFlooding, resource exhaustion- Rate limiting and throttling
- Use of CAPTCHAs
- Redundancy and failover mechanisms
E – Elevation of PrivilegeGaining higher access rights than allowedExploiting vulnerabilities to escalate privilege- Enforce strict access control policies
- Use role-based access control (RBAC)
- Patch vulnerabilities promptly

Z0hEJfyOlNwCgoBCIyEwCQIYFspmI2bJEdSqSQ6sQQQwBNbdRg+bAJxFzK7hodNmPQg0G0CbRTAMTRGNYT47XY77UrpEcBdqWnKCQEIQAACEIAABCBQEEAA0xAgAAEIQAACEIAABDpFAAHcqeqmsBCAAAQgAAEIQAACCGDaAAQgAAEIQAACEIBApwgggDtV3RQWAhCAAAQgAAEIQAABTBuAAAQgAAEIQAACEOgUAQRwp6qbwkIAAhCAAAQgAAEIIIBpAxCAAAQgAAEIQAACnSKAAO5UdVNYCEAAAhCAAAQgAAEEMG0AAhCAAAQgAAEIQKBTBBDAnapuCgsBCEAAAhCAAAQggACmDUAAAhCAAAQgAAEIdIoAArhT1U1hIQABCEAAAhCAAAQQwLQBCEAAAhCAAAQgAIFOEUAAd6q6KSwEIAABCEAAAhCAAAKYNgABCEAAAhCAAAQg0CkCCOBOVTeFhQAEIAABCEAAAhBAANMGIAABCEAAAhCAAAQ6RQAB3KnqprAQgAAEIAABCEAAAghg2gAEIAABCEAAAhCAQKcIIIA7Vd0UFgIQgAAEIAABCEAAAUwbgAAEIAABCEAAAhDoFAEEcKeqm8JCAAIQgAAEIAABCCCAaQMQgAAEIAABCEAAAp0igADuVHVTWAhAAAIQgAAEIAABBDBtAAIQgAAEIAABCECgUwQQwJ2qbgoLAQhAAAIQgAAEIIAApg1AAAIQgAAEIAABCHSKAAK4U9VNYSEAAQhAAAIQgAAEEMC0AQhAAAIQgAAEIACBThFAAHequiksBCAAAQhAAAIQgAACmDYAAQhAAAIQgAAEINApAgjgTlU3hYUABCAAAQhAAAIQQADTBiAAAQhAAAIQgAAEOkUAAdyp6qawEIDy9MhqAAAAd0lEQVQABCAAAQhAAAIIYNoABCAAAQhAAAIQgECnCCCAO1XdFBYCEIAABCAAAQhAAAFMG4AABCAAAQhAAAIQ6BQBBHCnqpvCQgACEIAABCAAAQgggGkDEIAABCAAAQhAAAKdIoAA7lR1U1gIQAACEIAABCAAgf8PWmvIuZatE1wAAAAASUVORK5CYII=

Related entries: