Backupbuddy 2.2.4 Sensitive Data Exposure

2013-03-24T00:00:00
ID PACKETSTORM:120923
Type packetstorm
Reporter Rob Armstrong
Modified 2013-03-24T00:00:00

Description

                                        
                                            `#  
#  
# Backupbuddy - sensitive data exposure in importbuddy.php  
#  
# "the premiere WordPress backup plugin to backup, restore and move  
WordPress"  
# http://ithemes.com/purchase/backupbuddy/  
#  
# known versions affected: v1.3.4, v2.1.4, v2.2.25, v2.2.28, v2.2.4, likely  
other versions also  
#  
# impact:  
# access to wordpress site and sql backups  
# disclosure of server configuration information  
#  
# author: robarmstrong.te71@gmail.com  
  
  
# summary  
  
The final step in the importbuddy backup restoration process is supposed to  
remove importbuddy.php from the root of the site, however this step often  
fails (most commonly as a result of filesystem permissions) allowing an  
attacker access to some or all of the functions and information provided by  
importbuddy.php.  
  
An access password for importbuddy does not appear to be a mandatory  
requirement. Forcing the user to set a password (and fixing the  
authentication bypass) would go some way to mitigating the risk of  
importbuddy.php not being deleted.  
  
  
  
# details  
  
The name of the backup file contains a random string intended to prevent an  
attacker from guessing its value.  
However if backup files are present, browsing to  
http://site/importbuddy.phpwill expose their filenames; these can then  
be used to download the files  
from the site:  
  
<select name="file" style="max-width: 590px;">  
<option  
value="backup-zipfile-date-randomstring.zip">backup-zipfile-date-randomstring.zip</option>  
</select>  
  
The desired backup file can be retrieved with: wget  
http://site/backup-zipfile-date-randomstring.zip  
  
The backup consists of a zip archive containing the wordpress directory,  
complete with wp-config.php and often a .sql dump containing a full copy of  
the wordpress database and any other databases the backupbuddy plugin has  
been configured to include.  
  
  
Importbuddy also presents the option to upload a backup on step 1 of the  
restoration process, potentially allowing defacement or deletion and also  
trojanning the site if an existing backup is available.  
  
Additionally there are issues affecting the 'step' query string field. This  
has a differing impact depending on the version of Backupbuddy targeted:  
  
http://site/importbuddy.php?step=1  
  
- Can be used to avoid the password check on step 1 (if a password has  
been set) by passing ?step=[2-7]  
- Steps 2 and 3 expose the full path of the wordpress install  
- Skipping to step 7 has the potential to erase the wordpress install  
(only known to affect v2.2.4)  
- Accessing http://site/importbuddy.php?step=0&action=phpinfo provides  
phpinfo information (confirmed on v2.2.25)  
`