I have a Qualys web application scan report that says I have a XSS vulnerability. It explains this was detected by requesting a malicious payload and evaluating the response.
When I make the same request, I'm getting a different response that doesn't appear vulnerable.
The request: https://my.site/asection/Some%20Param?"><qss>=
Response the scanner gets:
<a href="/asection/index.cfm?param=A Different Param&"><qss>=" class="current">
Response I get:
<a href="/asection/index.cfm?param=Some Param&%22%3E%3Cqss%3E=" class="current">
Why can't I duplicate the scanner's results? What do I need to do to get a clean scan?
EDIT: Thanks for the advice, all. I'm afraid I'm still stumped here. I've tried making the request from a browser, from python via requests and from wget with the same results (shown above). The headers I'm seeing from Qualys:
GET https://my.site/asection/Some%20%20Param?"><qss>=
Referer: http://my.site/
Cookie: JSESSIONID=48BBDB43C2DAF217644045004E3AF105.cfusion; CFTOKEN=4e91b60205baf756-E6723476-DAFC-BF6E-EB44114CE65CBF13; CFID=7001629;
Host: my.site
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4
Accept: */*
and the headers I'm seeing with wget (via wget -d "https://my.site/asection/Some%20Param?\"><qss>="
GET /asection/Some%20Param?%3E%3Cqss%3E=%0A HTTP/1.1
Referer: http://my.site/
Cookie: JSESSIONID=48BBDB43C2DAF217644045004E3AF105.cfusion; CFTOKEN=4e91b60205baf756-E6723476-DAFC-BF6E-EB44114CE65CBF13; CFID=7001629;
Host: my.site
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4
Accept: */*
Accept-Encoding: identity
Connection: Keep-Alive
I've re-run the scan and it still detects the vulnerability. I've reviewed Why isn't this XSS working?. Are all of my requests getting returned URL Encoded? Is there a tool (or a flag in wget/requests) that will let me suppress this to see the raw response or the decoded response?