Java.com suffered from multiple cross site scripting vulnerabilities.
f43f2c501c3edc319bb1b75fa7176fd0ea09edceb2d1d23e7062ae9c772ff818
######################################################################
# Exploit Title: Java.com RXSS and DOM-XSS
# Date: 01/04/2015
# Author: Yann CAM @ Synetis - ASafety
# Vendor or Software Link: www.java.com
# Version: /
# Category: Reflected Cross Site Scripting and DOM based XSS
# Google dork:
# Tested on: Java.com main domain
######################################################################
Java description :
======================================================================
As of 2015, Java is one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers.
Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle Corporation) and released in 1995 as a core component
of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.
Java.com is the main website to acquire Java JRE or JDK software.
RXSS Vulnerability description - PoC n°1 :
======================================================================
A reflected XSS is available in the java.com main domain.
Through this vulnerability, an attacker could tamper with page rendering, redirect victims to fake Java portals, or capture Java's users credentials such cookies.
It's also possible to forge a fake Java's page with this XSS to provide a backdoored version of softwares to users.
This reflected XSS is on GET "n" variable and is not properly sanitized before being used to his page.
Tested on Firefox 32.0.
PoC:
https://www.java.com/fr/download/faq/index_general.xml?n=20">2</a><script>alert(/Yann CAM @ASafety - www.synetis.com/);</script>
All language template pages (/fr/ and others) are impacted.
DOM-XSS Vulnerability description - PoC n°2 :
======================================================================
A reflected DOM-XSS is available in the java.com main domain.
Through this vulnerability, an attacker could tamper with page rendering, redirect victims to fake Java portals, or capture Java's users credentials such cookies.
It's also possible to forge a fake Java's page with this XSS to provide a backdoored version of softwares to users.
This reflected XSS is based on the interpretation of the URL in the page.
Java.com online documentation provide a "printer icon" to access to the same documentation page but specially designed for printing.
This mechanism is provided by the GET param added to the url "?printFriendly=true".
http://java.com/fr/download/help/uninstall_needolder.xml?printFriendly=true
The page include his own URL (without GET param nor anchor) in the header. This is done by the JS code in the HTML source :
<script type='text/javascript'>document.write(document.location.href.split('?')[0]);</script>
Through this JS code, it's possible to inject Javascript into the page before the "?" char.
To add some javascript before this char without breaking the filename "uninstall_needolder.xml", it's possible to use the "%0a%0d" (\r\n) vector :
uninstall_needolder.xml%0a%0d<script>alert(/Yann_CAM_@ASafety_www.synetis.com/);</script>?printFriendly=true
Tested on Internet Explorer 6.0 (modern browsers not affected).
PoC:
http://java.com/fr/download/help/uninstall_needolder.xml%0a%0d<script>alert(/Yann_CAM_@ASafety_www.synetis.com/);</script>?printFriendly=true
Screenshots :
======================================================================
- http://www.asafety.fr/data/20141025-java.com_DOMXSS-01.png
- http://www.asafety.fr/data/20141025-java.com_DOMXSS-02.png
- http://www.asafety.fr/data/20141025-java.com_DOMXSS-03.png
- http://www.asafety.fr/data/20141025-java.com_Reflected_XSS-01.png
- http://www.asafety.fr/data/20141025-java.com_Reflected_XSS-02.png
Solution:
======================================================================
Fixed by Oracle/Java Security Team.
Additional resources :
======================================================================
- http://www.java.com/
- http://www.oracle.com/
- http://www.oracle.com/technetwork/topics/security/cpujan2015-1972971.html
- http://www.asafety.fr/actualites-news/contribution-java-com-dom-xss-reflected-xss
- http://www.synetis.com
Report timeline :
======================================================================
2014-10-25 : Oracle/Java Team alerted with details and PoC.
2014-10-27 : Oracle/Java response and confirm vulnerabilities.
2014-12-23 : Vulnerabilities seems to be fixed.
2015-04-01 : Public advisory
Credits :
======================================================================
88888888
88 888 88 88
888 88 88
788 Z88 88 88.888888 8888888 888888 88 8888888.
888888. 88 88 888 Z88 88 88 88 88 88 88
8888888 88 88 88 88 88 88 88 88 888
888 88 88 88 88 88888888888 88 88 888888
88 88 88 8. 88 88 88 88 88 888
888 ,88 8I88 88 88 88 88 88 88 .88 .88
?8888888888. 888 88 88 88888888 8888 88 =88888888
888. 88
88 www.synetis.com
8888 Consulting firm in management and information security
Yann CAM - Security Consultant @ Synetis | ASafety
--
SYNETIS | ASafety
CONTACT: www.synetis.com | www.asafety.fr