Reflected cross-site scripting (XSS) arises when an application receives data in an HTTP request, then includes that data in its response in an unsafe way.
Applications use a range of processing and input validation methods to protect against common XSS payloads. You can use Burp Intruder to enumerate tags and attributes that are permitted by the application. This enables you to craft an XSS payload that will be executed by the application.
Identify a request / response pair with reflected input. For more information, see Identifying reflected input.
You can follow the processes below using the lab Reflected XSS into HTML context with nothing encoded.
Identify whether any tags are permitted:
<>.
Click inside the angle brackets, then click Add ยง twice to add a payload position.
200 status code. This indicates that the tag is permitted. If a tag is filtered out, it has a 400 status code instead.
Identify whether any attributes are permitted:
In Intruder > Positions, update the payload position. Add a tag that you enumerated in the previous step, then add payload markers to test different attributes.
200 status code. This indicates that an attribute is permitted.
You can use the permitted tags and attributes that you identified to construct an attack string. For more information, see Testing for reflected XSS manually.