Lucene search
K

WordPress FV Flowplayer 7.2.0.727 Cross Site Scripting Vulnerability

🗓️ 22 Sep 2018 00:00:00Reported by waraxeType 
zdt
 zdt
🔗 0day.today👁 66 Views

WordPress FV Flowplayer 7.2.0.727 XSS Vulnerability with Base64 Decodin

Code
Reflected XSS in FV Flowplayer Wordpress plugin
================================================================

Author: Janek Vind "waraxe"
Date: 20. September 2018
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-107.html

Target description:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FV Player is a free, easy-to-use, and complete solution for embedding FLV or MP4
videos into your posts or pages. With MP4 videos, FV Player offers 98% coverage
even on mobile devices.

https://wordpress.org/plugins/fv-wordpress-flowplayer/
https://foliovision.com/player

Vulnerable version: 7.2.0.727
Fixed version: 7.2.1.727
Active installations: 40 000+

###############################################################################
Reflected XSS in "models/flowplayer.php"
###############################################################################

Reason:
  * Insufficient sanitization of user-supplied data
Attack vector:
  * User-supplied GET parameter "fv_player_preview"
Preconditions:
  * Must be logged in as user with "manage_options" privileges (usually admin)


PHP script "models/flowplayer.php" line 2012:
------------------------[ source code start ]----------------------------------
 <?php if( isset($_GET['fv_player_preview']) && !empty($_GET['fv_player_preview']) ) :
    
    if( !is_user_logged_in() || !current_user_can('manage_options') ){
      ?><script>window.parent.jQuery(window.parent.document).trigger('fvp-preview-complete');</script><?php
      wp_die('Please log in.');
    }
    $shortcode = base64_decode($_GET['fv_player_preview']);
..
        if(preg_match('/src="[^"][^"]*"/i',$shortcode)) {
..
          echo do_shortcode($shortcode);          
------------------------[ source code end ]------------------------------------

We can see that vulnerable PHP script expects user-supplied GET parameter "fv_player_preview"
to be as base64 encoded string. This parameter goes through base64 decoding and resulting
text string is used for output without additional checking or sanitization. As result
we have Reflected XSS vulnerability.

Testing:

For successful testing log in as Wordpress admin or other user with "manage_options"
privileges and then open following URL in web browser:

http://localhost/wp498/?fv_player_embed=1&fv_player_preview=c3JjPSJ3YXJheGUiPHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4

Javascript alert with "XSS" message pops up confirming Reflected XSS vulnerability.

"c3JjPSJ3YXJheGUiPHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4" string in URL is base64
encoded version of the string "src="waraxe"<script>alert('XSS')</script>" with
trailing "=" removed, because PHP function "base64_decode()" does not care about it.

By the way, this Reflected XSS vulnerability allows bypassing anti-XSS filters in
all modern web browsers thanks to base64 encoding.


Disclosure timeline:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
19.09.2018 -> First email sent to developers
19.09.2018 -> Got first response email from developers
19.09.2018 -> Sending detailed information to developers
20.09.2018 -> Found problems are fixed, new version available
20.09.2018 -> Waraxe advisory released
 
Contact:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
[email protected]
Janek Vind "waraxe"
 
Waraxe forum:  http://www.waraxe.us/
Personal homepage: http://www.janekvind.com/

#  0day.today [2018-09-22]  #

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation