The SpiderLabs Research Team is pleased to announce the release of the ModSecurity XSS Evasion Challenge for the community.
The purpose of this challenge is to show possible XSS defenses by using ModSecurity and to identify any weaknesses.
Challenge SetupThe form on this page is vulnerable to reflected XSS. Data passed within the test parameter (either GET or POST) will be reflected back to this same page without any output encoding/escaping.
XSS Defense #1: Inbound Blacklist Regex FiltersWe have activated updated XSS filters from the OWASP ModSecurity Core Rule Set (CRS).
XSS Defense #2: JS Sandbox InjectionThis defensive layer uses ModSecurity's Data Modification capability (@rsub operator) to insert Gareth Heyes' (@garethheyes) JS Sandbox called MentalJS to the beginning of html responses.
It is important to understand what a JS sandbox is and how it works. You may be able to execute JS code however it is in a sandboxed environment. For example - preventing a JS alert popup box is not the goal here but rather protecting DOM elements from being accessed.
Challenge GoalsYour challenge is twofold:
1. Filter EvasionYou must execute a reflected XSS attack accessing one of the DOM elements listed below WITHOUT triggering an XSS filter alert. XSS Fitler Alerts will be displayed below.
- Trigger the youWon JS function
- Access document.location that is not undefined or sandboxed
- Access document.cookie that is not undefined or sandboxed
If you are successful, please notify us at any of the following places:
Each winner will receive a free copy of The Web Application Defender's Cookbook: Battling Hackers and Protecting Users
Blackhat Arsenal Participation
If you happen to be in Las Vegas this week for Blackhat USA, stop by the Arsenal Demos on Thursday afternoon as ModSecurity will be participating. You can try to hack at this challenge live in person!