IntermediateFREE43 hours
What Is Cross-Site Scripting?
Cross-site scripting (XSS) is a class of security vulnerability that occurs when an application includes untrusted data in its output without proper validation or encoding.
Enroll for free to track your progress through this course.
Curriculum (86 lessons)
- 1. What Is Cross-Site Scripting?
- 2. How XSS Executes
- 3. Proof of Concept
- 4. Types of XSS Vulnerabilities
- 5. Reflected XSS
- 6. Stored XSS
- 7. DOM-Based XSS
- 8. Impact
- 9. Key Takeaways
- 10. What Is Reflected XSS?
- 11. Attack Mechanics
- 12. Delivery Mechanisms
- 13. Impact Assessment
- 14. Identification Methodology
- 15. Common Injection Points
- 16. What Is Stored XSS?
- 17. Attack Flow
- 18. Common Storage Vectors
- 19. Entry and Exit Points
- 20. What Is DOM-Based XSS?
- 21. the Source-Sink Model
- 22. Sources
- 23. Sinks
- 24. Practical Example
- 25. Testing HTML Sinks
- 26. Testing JavaScript Execution Sinks
- 27. Reflected and Stored DOM XSS
- 28. Third-Party Dependencies
- 29. Understanding Injection Context
- 30. XSS Between HTML Tags
- 31. XSS in HTML Tag Attributes
- 32. XSS Into JavaScript
- 33. Terminating the Existing Script
- 34. Breaking Out of JavaScript Strings
- 35. HTML-Encoding in JavaScript Contexts
- 36. XSS in JavaScript Template Literals
- 37. XSS via Client-Side Template Injection
- 38. From Confirmation to Exploitation
- 39. Cookie Theft
- 40. the Basic Approach
- 41. Limitations
- 42. Password Capture
- 43. Technique
- 44. Bypassing CSRF Protections
- 45. the Attack Flow
- 46. Why This Works
- 47. What Is Dangling Markup?
- 48. When to Use Dangling Markup
- 49. Data Capture Mechanisms
- 50. Defensive Mitigations
- 51. What Is Content Security Policy?
- 52. Enabling CSP
- 53. Script Sources
- 54. Image Sources
- 55. Frame Restrictions
- 56. Default Source
- 57. CSP and XSS Mitigation
- 58. CSP Bypass Techniques
- 59. Policy Injection
- 60. Trusted Domains
- 61. Missing Directives
- 62. CSP and Clickjacking
- 63. Defense-in-Depth Approach
- 64. Encode Data on Output
- 65. HTML Context
- 66. JavaScript Context
- 67. URL Context
- 68. CSS Context
- 69. Multiple Contexts
- 70. Validate Input on Arrival
- 71. Whitelisting Over Blacklisting
- 72. Template Engines
- 73. PHP
- 74. JavaScript (Client-Side)
- 75. JQuery
- 76. Response Headers
- 77. Content Security Policy
- 78. Event Handlers
- 79. Event Handlers Without User Interaction
- 80. Event Handlers Requiring User Interaction
- 81. Tags That Execute Script Directly
- 82. Tags for Dangling Markup
- 83. Common XSS Payload Patterns
- 84. Self-Closing Tag Bypass
- 85. Course Structure
- 86. Estimated Duration