Alex Concha » wordpress http://alex.buayacorp.com Rambling about everything Mon, 16 Aug 2010 11:50:03 +0000 en hourly 1 http://wordpress.org/?v=3.0.1 Insecure Way to Upgrade to WordPress 2.3 http://alex.buayacorp.com/insecure-way-to-upgrade-to-wordpress-23.html http://alex.buayacorp.com/insecure-way-to-upgrade-to-wordpress-23.html#comments Tue, 25 Sep 2007 14:28:50 +0000 alex http://alex.buayacorp.com/insecure-way-to-upgrade-to-wordpress-23.html As you may already know, WordPress 2.3 has been released yesterday and many folks around the world are sharing their upgrade experiences. The one that caught my attention was the “5 Step Failsafe upgrade for WordPress” published at BlogSecurity.

Not offense intended but I wonder why a blog dedicated to security recommends an insecure backup plugin that can allow anyone to download database backups or any file from the file system.

If you are planning to upgrade your WordPress blog, just try to do manual steps because many backup plugins are very insecure — if you still want to use some of them, deactivate it when the upgrade process is completed.

]]>
http://alex.buayacorp.com/insecure-way-to-upgrade-to-wordpress-23.html/feed 8
Selling exploits http://alex.buayacorp.com/selling-exploits.html http://alex.buayacorp.com/selling-exploits.html#comments Fri, 24 Aug 2007 14:18:39 +0000 alex http://alex.buayacorp.com/selling-exploits.html Today I received a mail from a guy who want to buy some exploits for WordPress.

Hi. I have seen exploits for wordpress at milw0rm uploaded by you. If you have this kind of scripts for newer versions of wordpress i can buy them.

I responded:

Actually I only have one remote exploit for WordPress <= 2.2.2, it lets you retrieve user credentials from affected blogs. How much do you offer?

Actually, I’m not interested in selling exploits because they can be used to compromise many vulnerable blogs — two years ago my Spanish blog was defaced in the same fashion, but I wonder how much cost WordPress exploits.

Let’s see what he’ll respond :)

]]>
http://alex.buayacorp.com/selling-exploits.html/feed 0
SQL Injection in WordPress.com Stats plugin http://alex.buayacorp.com/sql-injection-in-wordpresscom-stats-plugin.html http://alex.buayacorp.com/sql-injection-in-wordpresscom-stats-plugin.html#comments Mon, 06 Aug 2007 15:09:16 +0000 alex http://alex.buayacorp.com/sql-injection-in-wordpresscom-stats-plugin.html Overview

WordPress.com Stats is a plugin developed by Automattic, it lets self-hosted WordPress bloggers use the same traffic metrics system they provide to WordPress.com users. It tracks post and page views, referrers, search terms, and clicks on external links.

While testing this plugin I found a critical SQL Injection vulnerability that may allow an attacker to retrieve credentials from any user of a WordPress blog — the attacker only needs to know a valid user ID.

WordPress.com Stats 1.1 and previous versions are affected.

Technical Details

WordPress.com Stats plugin registers two new methods (wpStats.get_posts and wpStats.get_blog) on the WordPress XMLRPC server. The vulnerable method is wpStats.get_posts that interally maps to stats_get_posts.

php:
function stats_get_posts( $args ) {
list( $post_ids ) = $args;

$r = 'include=' . join(',', $post_ids);
$posts = get_posts( $r );
$_posts = array();

foreach ( $post_ids as $post_id )
$_posts[$post_id] = stats_get_post($post_id);

return $_posts;
}

Due to the lack of validation in stats_get_posts, an attacker can prepare a special XMLRPC request to pass arbitrary parameters and values to get_posts method — it’s posible because get_posts can receive a query string as a parameter.

get_posts accepts the following variables (defined in $defaults array).

php:
function get_posts($args) {
global $wpdb;

$defaults = array(
'numberposts' => 5, 'offset' => 0,
'category' => 0, 'orderby' => 'post_date',
'order' => 'DESC', 'include' => '',
'exclude' => '', 'meta_key' => '',
'meta_value' =>'', 'post_type' => 'post',
'post_status' => 'publish', 'post_parent' => 0
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );

...
}

An attacker can prepare a special XMLRPC call to exploit the vulnerability:

code:
&meta_key=%27) SQL INJECTION HERE/*&meta_value=1

Solution

Upgrade to the latest version or apply the following patch to avoid SQL Injection attacks on WordPress.com Stats plugin.

diff:
Index: stats.php
===================================================================
--- stats.php   (revision 15884)
+++ stats.php   (working copy)
@@ -233,6 +233,7 @@
function stats_get_posts( $args ) {
list( $post_ids ) = $args;

+       $post_ids = array_map( 'intval', (array) $post_ids );
$r = 'include=' . join(',', $post_ids);
$posts = get_posts( $r );
$_posts = array();
 
]]>
http://alex.buayacorp.com/sql-injection-in-wordpresscom-stats-plugin.html/feed 1
Green Lite WordPress theme modified http://alex.buayacorp.com/green-lite-wordpress-theme-modified.html http://alex.buayacorp.com/green-lite-wordpress-theme-modified.html#comments Wed, 18 Jul 2007 04:50:55 +0000 alex http://alex.buayacorp.com/green-lite-wordpress-theme-modified.html In this blog I’m using a custom version of the nice Green Lite theme, since it is a GPL theme, I’m releasing the modified version for everyone who wants it.

I’ve made slight modifications on CSS and HTML structure (I’m not a web designer) and translated most of the italian words that are present in many files — because of the new color scheme in my version, it seems that Green Lite is no longer a suitable name :D

]]>
http://alex.buayacorp.com/green-lite-wordpress-theme-modified.html/feed 0