WordPress 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution
转自:鬼仔's Blog
=============================================
- Release date: November 11th, 2009
- Discovered by: Dawid Golunski
- Severity: Moderately High
=============================================
I. VULNERABILITY
-------------------------
WordPress <= 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution
II. BACKGROUND
-------------------------
WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards,
and usability. WordPress is both free and priceless at the same time. More simply, WordPress is
what you use when you want to work with your blogging software, not fight it.
III. DESCRIPTION
-------------------------
WordPress allows authorised users to add an attachment to a blog post.
It does not sanitize provided file properly before moving it to an uploads directory.
The part of the code responsible for uploading files looks as follows:
wp-admin/includes/file.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | line 217: function wp_handle_upload( &$file, $overrides = false, $time = null ) { // All tests are on by default. Most can be turned off by $override[{test_name}] = false; $test_form = true; $test_size = true; // If you override this, you must provide $ext and $type!!!! $test_type = true; $mimes = false; // A properly uploaded file will pass this test. There should be no reason to override this one. if (! @ is_uploaded_file( $file['tmp_name'] ) ) return $upload_error_handler( $file, __( 'Specified file failed upload test.' )); // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter. if ( $test_type ) { $wp_filetype = wp_check_filetype( $file['name'], $mimes ); extract( $wp_filetype ); if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) ) return $upload_error_handler( $file, __( 'File type does not meet security guidelines. Try another.' )); if ( !$ext ) $ext = ltrim(strrchr($file['name'], '.'), '.'); if ( !$type ) $type = $file['type']; } else { $type = ''; } // A writable uploads dir will pass this test. Again, there's no point overriding this one. if ( ! ( ( $uploads = wp_upload_dir($time) ) && false === $uploads['error'] ) ) return $upload_error_handler( $file, $uploads['error'] ); $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback ); // Move the file to the uploads dir $new_file = $uploads['path'] . "/$filename"; if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) { return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) ); } ---[cut ]--- From the above code we can see that provided filename gets checked with: $wp_filetype = wp_check_filetype( $file['name'], $mimes ); Here is how the wp_check_filetype() function looks like: wp-includes/functions.php: line 2228: function wp_check_filetype( $filename, $mimes = null ) { // Accepted MIME types are set here as PCRE unless provided. $mimes = ( is_array( $mimes ) ) ? $mimes : apply_filters( 'upload_mimes', array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'tif|tiff' => 'image/tiff', 'ico' => 'image/x-icon', 'asf|asx|wax|wmv|wmx' => 'video/asf', 'avi' => 'video/avi', line 2279: $type = false; $ext = false; foreach ( $mimes as $ext_preg => $mime_match ) { $ext_preg = '!\.(' . $ext_preg . ')$!i'; if ( preg_match( $ext_preg, $filename, $ext_matches ) ) { $type = $mime_match; $ext = $ext_matches[1]; break; } } return compact( 'ext', 'type' ); } |
We can see that type of the file gets set to a predefined MIME type that matches supplied
extension, and that the extension is obtained from a regexp that matches a mime ext. string after
the LAST dot.
If extension is not on the list $type and $ext will be set to FALSE and wordpress will
produce an error ("File type does not meet security guidelines. Try another").
Let's look at the other check that is performed on the filename before a file gets uploaded,
that is a call to the following function:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback ); wp-includes/functions.php: line 2096: function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) { // sanitize the file name before we begin processing $filename = sanitize_file_name($filename); ---[cut, code that only matters if uploaded file already exists]--- line 2126: return $filename; } To have a complete view on file sanitization performed by wordpress we need to look into the sanitize_file_name() function: wp-includes/formatting.php: line 601: function sanitize_file_name( $filename ) { $filename_raw = $filename; $special_chars = array("?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0)); $special_chars = apply_filters('sanitize_file_name_chars', $special_chars, $filename_raw); $filename = str_replace($special_chars, '', $filename); $filename = preg_replace('/[\s-]+/', '-', $filename); $filename = trim($filename, '.-_'); return apply_filters('sanitize_file_name', $filename, $filename_raw); } |
This function removes special characters shown above, replaces spaces and consecutive dashes with
a single dash, trims period, dash and underscore from beginning and end of the filename.
The sanitization process appears quite extensive however it does not take into account files that
have multiple extensions.
It is possible to upload a file containing an arbitrary PHP script with an extension of '.php.jpg'
and execute it by requesting the uploaded file directly.
The execution of the PHP code despite the .php.jpg extension is possible because Apache
allows for multiple extensions. Here is a quote from Apache docs regarding this matter:
"
Files can have more than one extension, and the order of the extensions is normally irrelevant.
For example, if the file welcome.html.fr maps onto content type text/html and language French then
the file welcome.fr.html will map onto exactly the same information. If more than one extension is
given that maps onto the same type of meta-information, then the one to the right will be used,
except for languages and content encodings. For example, if .gif maps to the MIME-type image/gif
and .html maps to the MIME-type text/html, then the file welcome.gif.html will be associated with
the MIME-type text/html.
Care should be taken when a file with multiple extensions gets associated with both a MIME-type
and a handler. This will usually result in the request being handled by the module associated with
the handler. For example, if the .imap extension is mapped to the handler imap-file
(from mod_imagemap) and the .html extension is mapped to the MIME-type text/html, then the file
world.imap.html will be associated with both the imap-file handler and text/html MIME-type.
When it is processed, the imap-file handler will be used, and so it will be treated as a
mod_imagemap imagemap file.
"
IV. PROOF OF CONCEPT
-------------------------
Browser is enough to replicate this issue. Simply log in to your wordpress blog as a low privileged
user or admin. Create a new post and use the media file upload feature to upload a file:
test-image.php.jpg
containing the following code:
1 2 3 | <?php phpinfo(); ?> |
After the upload you should receive a positive response saying:
test-vuln.php.jpg
image/jpeg
2009-11-11
and it should be possible to request the uploaded file via a link:
http://link-to-our-wp-unsecured-blog.com/wp-content/uploads/2009/11/test-vuln.php.jpg
thus executing the PHP code it contains.
In the above code example, a php info page will be shown.
V. BUSINESS IMPACT
-------------------------
An attacker that has already obtained login details (for example by stealing user's cookies with
an XSS attack) to the blog as one of the existing users could exploit this vulnerability to get
access to the system in the Apache user's context.
From there he could use local bugs to further escalate the privileges. Apache account would be
enough in most cases to view the source codes and gain access to the databases.
Some wordpress users of the 2.8.5 release have reported that some php files have been added to
their wordpress directory. It could be possible that they have been hit by this bug. Therefore it
is important to take some countermeasures as soon as possible.
VI. SYSTEMS AFFECTED
-------------------------
Most likely all of the wordpress releases contain this bug. Including the current hardened stable
release 2.8.5 and the beta version.
VII. SOLUTION
-------------------------
Vendor has been informed about the bug. Currently wordpress developers and contributors are in
the process of bug hunting and fixing reported bugs in beta versions before the new stable release,
so hopefully it should not take long for them to take this problem into account.
You can apply the temporary solutions for this problem which I provide below before an official
patch is made.
You can create a .htaccess file in the uploads dir (wordpress/wp-content/uploads) with
the following content:
deny from all
order deny,allow
allow from all
Adjust allowed file extensions in the brackets if necessary.
This will prevent Apache from serving files with double extensions inside the uploads directory.
Alternatively you can try to patch the source code yourself by editing the
wp-admin/includes/file.php file and the wp_handle_upload() function it contains. An example patch
could be to add the following three lines of code at the line 260:
// Fix Unrestricted File Upload Arbitrary PHP Code Execution bug, return if more than 1 extension provided
if ( count(explode('.', $file['name'])) > 2 );
return $upload_error_handler( $file, __( 'File type does not meet security guidelines. Try another.' ));
VIII. REFERENCES
-------------------------
http://www.wordpress.org
http://httpd.apache.org/docs/2.2/mod/mod_mime.html#multipleext
IX. CREDITS
-------------------------
This vulnerability has been discovered by Dawid Golunski
golunski (at) onet (dot) eu
Greetings go to: robxt, sajanek, xsoti, bart, falcon (for the old time's sake
and complexmind
X. REVISION HISTORY
-------------------------
November 11th, 2009: Initial release
XI. LEGAL NOTICES
-------------------------
The information contained within this advisory is supplied "as-is" with no warranties or guarantees of fitness of
use or otherwise. I accept no responsibility for any damage caused by the use or misuse of this information.
478 Responses
to “WordPress 2.8.5 Unrestricted File Upload Arbitrary PHP Code Execution”
477 Trackback(s)
- Apr 12, 2011: penis enlargement pills
- Apr 17, 2011: penis enhancement
- Jun 12, 2011: Паради
- Aug 17, 2011: oil futures trading
- Sep 9, 2011: canon digital slr camera
- Sep 16, 2011: ADHD diagnosis
- Sep 16, 2011: Cheap flowers delivered
- Sep 16, 2011: biodiesel conversion
- Sep 22, 2011: Symptoms Of Low Vitamin D
- Sep 24, 2011: best online dating
- Sep 27, 2011: mobile dating
- Sep 27, 2011: internet dating
- Oct 3, 2011: Ycvddf
- Oct 4, 2011: what to take for heartburn
- Oct 5, 2011: heartburn at night
- Oct 5, 2011: immediate heartburn relief
- Oct 7, 2011: La Jolla and San Diego CA Homes For Sale
- Oct 11, 2011: mass email
- Oct 11, 2011: dating games
- Oct 11, 2011: online dating reviews
- Oct 17, 2011: Final Countdown
- Oct 17, 2011: Accounting
- Oct 19, 2011: best online dating sites
- Oct 29, 2011: facebookofsex
- Oct 31, 2011: Puss In Boots Full Movie
- Nov 4, 2011: White Fire Doors
- Nov 4, 2011: Watch A Very Harold and Kumar Christmas
- Nov 4, 2011: A Very Harold and Kumar Christmas Full Movie
- Nov 4, 2011: Watch 11-11-11 Online
- Nov 5, 2011: Watch The Rum Diary Full Movie
- Nov 5, 2011: A Very Harold and Kumar Christmas Full Movie
- Nov 5, 2011: basement repair in Spring Meadows OH
- Nov 5, 2011: A Very Harold and Kumar Christmas Full Movie
- Nov 6, 2011: Loreal professional hair color
- Nov 6, 2011: betainvites.com
- Nov 8, 2011: home design
- Nov 9, 2011: Brother DCP-7040
- Nov 9, 2011: Taylor T5
- Nov 9, 2011: Toenail Removal
- Nov 10, 2011: where to go on vacation
- Nov 10, 2011: get rid of acne scars
- Nov 10, 2011: Blackheads
- Nov 10, 2011: Blackheads
- Nov 10, 2011: click submit
- Nov 10, 2011: Free Cocaine Addiction Clinic
- Nov 11, 2011: xhtml
- Nov 11, 2011: url
- Nov 11, 2011: click here
- Nov 11, 2011: what is data mining
- Nov 11, 2011: DISEÑO WEB PARAGUAY
- Nov 11, 2011: name
- Nov 12, 2011: site
- Nov 12, 2011: enter your email
- Nov 12, 2011: sua chua kefir
- Nov 12, 2011: Buy Omron HBF-306C Fat Loss Monitor Black
- Nov 12, 2011: free football picks
- Nov 13, 2011: site
- Nov 13, 2011: facebookofsex
- Nov 14, 2011: enter your email
- Nov 14, 2011: Accounting Basics
- Nov 14, 2011: Accounting Basics
- Nov 14, 2011: Accounting Basics
- Nov 14, 2011: Accounting Basics
- Nov 14, 2011: Accounting Basics
- Nov 14, 2011: How to save my marriage
- Nov 14, 2011: Accounting Basics
- Nov 15, 2011: cheez it coupons
- Nov 15, 2011: Duncan Hines coupons
- Nov 15, 2011: tippmann paintball guns
- Nov 15, 2011: best male enhancement
- Nov 16, 2011: How to SEO
- Nov 16, 2011: fence philadelphia
- Nov 16, 2011: Cheap Kitchen Faucets
- Nov 16, 2011: ecover creator
- Nov 16, 2011: moving long distance
- Nov 16, 2011: Grepolis Cheats
- Nov 16, 2011: Flower of the month club
- Nov 16, 2011: hang pictures
- Nov 16, 2011: credit card comparison
- Nov 16, 2011: sink faucets
- Nov 16, 2011: paperwhite
- Nov 16, 2011: leather sofas for sale
- Nov 16, 2011: kids bathroom accessories
- Nov 16, 2011: exercise for sciatica
- Nov 17, 2011: full size bed frame
- Nov 17, 2011: compare credit cards
- Nov 17, 2011: small sectionals
- Nov 17, 2011: ideas for hanging pictures
- Nov 17, 2011: small sec
- Nov 17, 2011: small sec
- Nov 17, 2011: debt consol
- Nov 17, 2011: nicorette gum coupons
- Nov 17, 2011: dining solutions direct
- Nov 18, 2011: Burlington coat factory coupons
- Nov 18, 2011: Statesville Ice Cream
- Nov 18, 2011: dining solutions direct
- Nov 18, 2011: Angels
- Nov 18, 2011: Protector Tower Defence
- Nov 18, 2011: definition of anxiety
- Nov 18, 2011: clothing
- Nov 18, 2011: Thrifty Car Rental Coupons
- Nov 18, 2011: women
- Nov 18, 2011: Statesville Ice Cream
- Nov 18, 2011: Accounting Basics
- Nov 19, 2011: Statesville Ice Cream
- Nov 19, 2011: Statesville Ice Cream
- Nov 19, 2011: Watch 11-11-11 Full Movie
- Nov 19, 2011: The Girl With The Dragon Tattoo 2011
- Nov 19, 2011: Statesville Ice Cream
- Nov 19, 2011: Statesville Ice Cream
- Nov 19, 2011: 866-826-4101
- Nov 19, 2011: Accounting Basics
- Nov 19, 2011: Asian Tiger Mosquito
- Nov 19, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 19, 2011: Twilight Breaking Dawn Part 2
- Nov 19, 2011: Car Hire Paphos
- Nov 19, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 20, 2011: Twilight Breaking Dawn Part 2
- Nov 20, 2011: Twilight Breaking Dawn Part 2
- Nov 20, 2011: No flour no sugar
- Nov 20, 2011: IBS diet plan
- Nov 21, 2011: sims social
- Nov 21, 2011: How to Curb Hunger
- Nov 21, 2011: Twilight Breaking Dawn Part 2
- Nov 21, 2011: Twilight Breaking Dawn Part 2
- Nov 21, 2011: Twilight Breaking Dawn Part 2
- Nov 21, 2011: amazon coupon code
- Nov 22, 2011: Gem Sapphire unpolished
- Nov 22, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 22, 2011: Twilight Breaking Dawn Part 2
- Nov 22, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 22, 2011: cheap ink toner cartridges
- Nov 22, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 23, 2011: online casino uk
- Nov 23, 2011: Edmonton Homes For Sale
- Nov 23, 2011: Car Insurance Calculator
- Nov 23, 2011: water softener
- Nov 23, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 23, 2011: best way to build credit
- Nov 23, 2011: acupuncture and weight loss
- Nov 24, 2011: personal injury compensation
- Nov 24, 2011: Twilight Breaking Dawn FULL MOVIE
- Nov 24, 2011: fentanyl addiction
- Nov 26, 2011: free ipad apps
- Nov 27, 2011: How come the star tattoo an extremely popular choice?
- Nov 28, 2011: printable payless shoes coupons
- Nov 28, 2011: READY LIFT KIt
- Nov 28, 2011: kinky sex
- Nov 28, 2011: facebook123
- Nov 28, 2011: wheELS FInancing
- Nov 28, 2011: Know BSA Suites Hotel Manila
- Nov 28, 2011: christmas stocking
- Nov 28, 2011: farm accidents
- Nov 29, 2011: iniciar sesion facebook
- Nov 29, 2011: Gold Etfs
- Nov 29, 2011: recipes for smoothies
- Nov 29, 2011: caloriecounter
- Nov 29, 2011: Asian Tiger Mosquito
- Nov 30, 2011: Asian Tiger Mosquito
- Nov 30, 2011: Asian Tiger Mosquito
- Nov 30, 2011: Asian Tiger Mosquito
- Nov 30, 2011: Asian Tiger Mosquito
- Nov 30, 2011: lsd addiction
- Nov 30, 2011: NFL football jersey
- Nov 30, 2011: winter sports
- Nov 30, 2011: gift experiences for couples
- Nov 30, 2011: Asian Tiger Mosquito
- Nov 30, 2011: Asian Tiger Mosquito
- Dec 1, 2011: Facebook Business Page
- Dec 1, 2011: Accounting Basics
- Dec 1, 2011: Accounting Basics
- Dec 1, 2011: Pittsburgh Airport Hotels
- Dec 2, 2011: finance
- Dec 2, 2011: Victoria secret coupons
- Dec 2, 2011: cool games on facebook
- Dec 2, 2011: Asian Tiger Mosquito
- Dec 2, 2011: Asian Tiger Mosquito
- Dec 2, 2011: Accounting Basics
- Dec 3, 2011: solbriller
- Dec 3, 2011: bvlgari sunglasses
- Dec 3, 2011: sbobet
- Dec 3, 2011: fetish porn
- Dec 3, 2011: Accounting Basics
- Dec 3, 2011: Sua tuoi
- Dec 4, 2011: Best Aussie Casinos
- Dec 4, 2011: Amarillo Bricklayer
- Dec 4, 2011: earn money
- Dec 5, 2011: discount tire coupons
- Dec 5, 2011: olive garden coupons
- Dec 5, 2011: dla mezczyzn
- Dec 5, 2011: dildos
- Dec 6, 2011: beauty tips
- Dec 6, 2011: Beats For Sale
- Dec 6, 2011: laminate flooring CT
- Dec 6, 2011: here
- Dec 6, 2011: motorbike crash compensation
- Dec 6, 2011: Angry Birds Seasons
- Dec 7, 2011: Cheap Skip Hire
- Dec 7, 2011: Birth Injury Compensation
- Dec 8, 2011: organize center
- Dec 8, 2011: dowsing
- Dec 8, 2011: wild sex
- Dec 8, 2011: symptoms of adhd
- Dec 9, 2011: image copyright
- Dec 10, 2011: free wow guide
- Dec 10, 2011: Asian Tiger Mosquito
- Dec 11, 2011: Guaranteed Facebook Fans
- Dec 11, 2011: Palm Reading
- Dec 12, 2011: Nokia N8 review
- Dec 12, 2011: dating site in ireland
- Dec 12, 2011: Buy Fan Facebook
- Dec 13, 2011: disney cruiseline
- Dec 13, 2011: URL
- Dec 13, 2011: wireless weather station
- Dec 13, 2011: go local
- Dec 13, 2011: vacations
- Dec 13, 2011: Wedding Rings in White Gold
- Dec 13, 2011: Ball Gowns
- Dec 13, 2011: carpal solution scam
- Dec 14, 2011: Wealthy Affiliate Reviews
- Dec 14, 2011: boys hairstyles
- Dec 14, 2011: no win no fee
- Dec 14, 2011: no win no fee
- Dec 14, 2011: no win no fee accident solicitors
- Dec 14, 2011: work burns claim
- Dec 14, 2011: Asian Tiger Mosquito
- Dec 15, 2011: facebookofsex
- Dec 15, 2011: Facebook Fans Buy
- Dec 15, 2011: what are reverse mortgages
- Dec 16, 2011: forwarded numbers
- Dec 16, 2011: how to spray tan
- Dec 16, 2011: Träningsblogg
- Dec 16, 2011: Income
- Dec 16, 2011: Autoblogging with Blogger
- Dec 16, 2011: Traaningsblogg
- Dec 16, 2011: free xxx
- Dec 16, 2011: incident notification
- Dec 16, 2011: cocaine addiction
- Dec 16, 2011: car accident claim
- Dec 17, 2011: http://www.soniconsultants.com
- Dec 17, 2011: carrera lunette
- Dec 18, 2011: sugarcrm
- Dec 18, 2011: aetna individual dental insurance
- Dec 18, 2011: ray ban
- Dec 19, 2011: sugarcrm mobile
- Dec 19, 2011: social crm
- Dec 19, 2011: Robert
- Dec 19, 2011: food waste disposer
- Dec 19, 2011: dance central kinect
- Dec 19, 2011: divorce
- Dec 19, 2011: parenting classes
- Dec 20, 2011: kolbrin bible
- Dec 20, 2011: como reconquistar
- Dec 20, 2011: jobs jobs jobs
- Dec 20, 2011: hostgator deals
- Dec 20, 2011: Carrier Parts
- Dec 21, 2011: mario games 1001
- Dec 21, 2011: organic supplement
- Dec 21, 2011: best movies ever 2011
- Dec 22, 2011: debt settlement letter
- Dec 22, 2011: buy cheap verizon phones
- Dec 22, 2011: mobile website
- Dec 22, 2011: Design Discussion
- Dec 22, 2011: The Girl With The Dragon Tattoo FULL MOVIE
- Dec 22, 2011: reconquistar
- Dec 22, 2011: Meizitang
- Dec 22, 2011: Cut the Rope
- Dec 22, 2011: hot water system prices
- Dec 24, 2011: MegaVideo
- Dec 24, 2011: blues clubs
- Dec 24, 2011: used crome cleaner
- Dec 24, 2011: used crome cleaner
- Dec 24, 2011: The Girl With The Dragon Tattoo FULL MOVIE
- Dec 24, 2011: technology
- Dec 24, 2011: angry birds game online
- Dec 24, 2011: chat roulette classic
- Dec 24, 2011: The Girl With The Dragon Tattoo
- Dec 24, 2011: distance learning universities
- Dec 24, 2011: online dating business
- Dec 25, 2011: Asian Tiger Mosquito
- Dec 25, 2011: what is seo services
- Dec 25, 2011: Empower Network
- Dec 25, 2011: Asian Tiger Mosquito
- Dec 25, 2011: Asian Tiger Mosquito
- Dec 25, 2011: Buy Facebook Fans
- Dec 26, 2011: reconquistar
- Dec 26, 2011: ammunition for sale
- Dec 26, 2011: Seo Service Indonesia
- Dec 26, 2011: The Big Bang Theory - Season 5 - Episode 11
- Dec 26, 2011: Jasa Seo Gratis
- Dec 26, 2011: Arti Nama
- Dec 27, 2011: Olive Garden coupons
- Dec 27, 2011: klikkaa t�t�
- Dec 27, 2011: como reconquistar
- Dec 27, 2011: private krankenversicherung
- Dec 27, 2011: Shades
- Dec 28, 2011: Window Film
- Dec 28, 2011: pkv wechsel
- Dec 28, 2011: uk lotto
- Dec 28, 2011: prom dress
- Dec 28, 2011: fastest payday loans
- Dec 28, 2011: video production manhattan nyc
- Dec 28, 2011: Fredericksburg Title Company
- Dec 29, 2011: coupons for bed bath and beyond
- Dec 29, 2011: map quest driving maps
- Dec 29, 2011: prams and pushchairs
- Dec 29, 2011: car parking at dublin airport
- Dec 29, 2011: best gas credit cards gas rebate credit cards
- Dec 29, 2011: best department credit cards
- Dec 29, 2011: skinny jeans for short people
- Dec 29, 2011: seo book
- Dec 29, 2011: compare mortgage rates ohio
- Dec 29, 2011: travel credit card deals
- Dec 29, 2011: Home Inspector
- Dec 29, 2011: ebook novel
- Dec 29, 2011: low carb diet
- Dec 29, 2011: Cheap Web Hosting
- Dec 29, 2011: Auto Traffic System INCREDIBLE user-friendly generation technology
- Dec 29, 2011: binary options
- Dec 31, 2011: ganhar dinheiro
- Dec 31, 2011: como ganhar dinheiro
- Dec 31, 2011: personal injury lawyer
- Dec 31, 2011: personal injury claims
- Dec 31, 2011: medical malpractice
- Dec 31, 2011: Emilay
- Dec 31, 2011: Rental Mobil Semarang
- Dec 31, 2011: Hotel Bandungan
- Jan 1, 2012: edible arrangements coupons
- Jan 2, 2012: Susu Kolostrum
- Jan 2, 2012: Cryptomonadales
- Jan 2, 2012: klimat thailand
- Jan 2, 2012: sexy clips
- Jan 2, 2012: wedding photography new york
- Jan 3, 2012: swiss replica watches
- Jan 3, 2012: xbox live online codes
- Jan 3, 2012: wedding photography
- Jan 4, 2012: backlinks
- Jan 4, 2012: hotel map
- Jan 4, 2012: search engine optimisation
- Jan 4, 2012: eMail Software Europe
- Jan 5, 2012: Weight Loss Products
- Jan 5, 2012: Free Chat
- Jan 5, 2012: Chat Stop
- Jan 5, 2012: st george chiropractic | acupuncture
- Jan 5, 2012: 24 Day Challenge Bundle
- Jan 5, 2012: door repair Locust Grove NY
- Jan 6, 2012: cheap canucks tickets
- Jan 6, 2012: incident communications systems
- Jan 7, 2012: crafts
- Jan 7, 2012: Warlock Guide
- Jan 7, 2012: web development norwich
- Jan 8, 2012: free iphone 4s phone
- Jan 8, 2012: friv games 8
- Jan 8, 2012: ipad apps reviews
- Jan 8, 2012: pc games hidden objects
- Jan 8, 2012: facebook of sex
- Jan 9, 2012: american express card home
- Jan 9, 2012: applied bank credit card application
- Jan 9, 2012: best secured credit cards for bad credit
- Jan 9, 2012: apply for credit cards instant approval
- Jan 9, 2012: nielsen credit card report
- Jan 9, 2012: credit card for good credit in uk
- Jan 9, 2012: buy facebook fans scams
- Jan 10, 2012: Pension Advice
- Jan 10, 2012: resume service
- Jan 10, 2012: free paid surveys
- Jan 11, 2012: buy facebook likes
- Jan 11, 2012: site
- Jan 12, 2012: medical negligence claims
- Jan 12, 2012: birth injury solicitor
- Jan 12, 2012: forex robot software
- Jan 12, 2012: hdtv reviews 32 inch
- Jan 13, 2012: scraperwiki
- Jan 13, 2012: injury compensation
- Jan 13, 2012: baseball seating charts
- Jan 14, 2012: Watch 11-11-11 Full Movie
- Jan 14, 2012: Bellimbusto elio
- Jan 15, 2012: Patchogue NY automatic garage door opener
- Jan 15, 2012: Asian Tiger Mosquito
- Jan 15, 2012: Accounting Basics
- Jan 15, 2012: seattle organic seo
- Jan 15, 2012: dominos coupon codes
- Jan 16, 2012: seo sheffield
- Jan 16, 2012: Los Angeles Criminal Defense Attorney
- Jan 16, 2012: how much is liposuction surgery
- Jan 16, 2012: Gothic Jewellery
- Jan 16, 2012: Article Writing
- Jan 17, 2012: Accounting Basics
- Jan 17, 2012: real estate sales software
- Jan 17, 2012: injury compensation in the UK
- Jan 17, 2012: Autoapprove List
- Jan 17, 2012: oil change coupon
- Jan 17, 2012: How early can i take a pregnancy test
- Jan 18, 2012: motorbike injury compensation
- Jan 18, 2012: street injury compensation
- Jan 18, 2012: misdiagnosis of diabetes
- Jan 18, 2012: pcassistance.net
- Jan 18, 2012: samsung galaxy review india
- Jan 18, 2012: compensation claims advice
- Jan 18, 2012: Diablo 3 Cheats
- Jan 18, 2012: short term loan bad credit
- Jan 18, 2012: company registration in uk
- Jan 19, 2012: memory foam mattress topper
- Jan 20, 2012: fransk bulldogg
- Jan 20, 2012: pharmacycustomercare
- Jan 22, 2012: lululemon coupon
- Jan 22, 2012: karmaloop codes
- Jan 22, 2012: Cheap Young Drivers Car Insurance
- Jan 22, 2012: hobbies
- Jan 22, 2012: diabetes
- Jan 22, 2012: panic attacks
- Jan 22, 2012: wealth
- Jan 23, 2012: internet tv channels
- Jan 23, 2012: jigsaw puzzle
- Jan 24, 2012: gambling
- Jan 24, 2012: Outback Steakhouse Coupons
- Jan 24, 2012: geek blog
- Jan 25, 2012: abri jardin
- Jan 25, 2012: gafas tom ford james bond
- Jan 26, 2012: air quality home
- Jan 26, 2012: heathrow taxi
- Jan 27, 2012: kingston s20a119 68pin
- Jan 27, 2012: smuckers jelly coupons
- Jan 27, 2012: bodybuilding
- Jan 27, 2012: create a website
- Jan 28, 2012: gps randonn�e
- Jan 28, 2012: fashion
- Jan 29, 2012: grocery store vs supermarket
- Jan 29, 2012: free website link building
- Jan 30, 2012: apple tv 1080p
- Jan 30, 2012: igun
- Jan 31, 2012: Chocolate Wine
- Feb 2, 2012: is wartrol a scam
- Feb 2, 2012: cant stop eating
- Feb 2, 2012: Shopping Cart Reviews
- Feb 2, 2012: shopping cart software
- Feb 2, 2012: Accounting Basics
- Feb 2, 2012: wartrol does it work
- Feb 2, 2012: cheap SEO
- Feb 2, 2012: Adult Social Network
- Feb 2, 2012: mlm
- Feb 2, 2012: Alabaster Great Clips Coupons
- Feb 2, 2012: toothless the dragon plush
- Feb 3, 2012: hair restoration
- Feb 3, 2012: iPhone 5 Release Date
- Feb 3, 2012: hair restoration fast
- Feb 3, 2012: LED Light Bulbs cheap
- Feb 3, 2012: wheels
- Feb 3, 2012: Printable Coupons For Great Clips Haircut
- Feb 3, 2012: tire shop
- Feb 3, 2012: Kamasz
- Feb 3, 2012: Buy Guaranteed Facebook Fans
- Feb 3, 2012: Elois
- Feb 3, 2012: nba betting picks
- Feb 3, 2012: garmin 1490t gps
- Feb 3, 2012: hire freelance
- Feb 3, 2012: iPhone 5
- Feb 3, 2012: Great Clips Coupons Adger
- Feb 3, 2012: prom dresses
- Feb 3, 2012: Barátno Kereso
- Feb 3, 2012: Muskelaufbau
- Feb 3, 2012: nba picks
- Feb 4, 2012: garmin edge 500 cycling gps
- Feb 4, 2012: Cabbage Soup Diet Reviews
- Feb 4, 2012: dog bedding
- Feb 4, 2012: Read more on Herbal Incense
- Feb 4, 2012: home theater
- Feb 4, 2012: free nba picks
- Feb 4, 2012: organic seo
- Feb 4, 2012: Ticket Hub
- Feb 4, 2012: get quick click commissions
- Feb 4, 2012: cash advance loan online
- Feb 4, 2012: Tourbillon Watches
- Feb 4, 2012: közösségi portálok
- Feb 4, 2012: red worms for sale
- Feb 5, 2012: Baltimore disability lawyer
- Feb 5, 2012: furniture shipping
You must be logged in to post a comment.










































UksqKu bjqquaqzkytv, [url=http://tifxwrckcctz.com/]tifxwrckcctz[/url], [link=http://djfbhutcjcmj.com/]djfbhutcjcmj[/link], http://zuwzjditdiar.com/