whoami7 - Manager
:
/
home
/
fresvfqn
/
waterdamagerestorationandrepairsmithtown.com
/
Compressed
/
Upload File:
files >> //home/fresvfqn/waterdamagerestorationandrepairsmithtown.com/Compressed/ostic2.tar
php82/import.php 0000644 00000010317 15054052756 0007543 0 ustar 00 <?php //002cd if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199); ?> 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 fxiO0SI2BtF8Q7GN3GBhJz7j8nAIUVGYjNsi+nW= php82/edit.php 0000644 00000012213 15054052756 0007153 0 ustar 00 <?php //002cd if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199); ?> 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 php82/install.php 0000644 00000013263 15054052756 0007702 0 ustar 00 <?php //002cd if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199); ?> 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 eIRHTJS= php82/upgrade.php 0000644 00000006140 15054052756 0007657 0 ustar 00 <?php //002cd if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199); ?> 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 php82/clone.php 0000644 00000006402 15054052756 0007331 0 ustar 00 <?php //002cd if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199); ?> 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 update_pass.php 0000644 00000015047 15054052756 0007605 0 ustar 00 <?php // We do not need this file any more @unlink('update_pass.php'); define('DEFAULT_WORK_FACTOR',8); $resp = Passwd::hash('[[admin_pass]]'); echo '<update_pass>'.$resp.'</update_pass>'; class PasswordHash { var $itoa64; var $iteration_count_log2; var $portable_hashes; var $random_state; function __construct($iteration_count_log2, $portable_hashes) { $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31) $iteration_count_log2 = 8; $this->iteration_count_log2 = $iteration_count_log2; $this->portable_hashes = $portable_hashes; $this->random_state = microtime(); if (function_exists('getmypid')) $this->random_state .= getmypid(); } function get_random_bytes($count) { $output = ''; if (@is_readable('/dev/urandom') && ($fh = @fopen('/dev/urandom', 'rb'))) { $output = fread($fh, $count); fclose($fh); } if (strlen($output) < $count) { $output = ''; for ($i = 0; $i < $count; $i += 16) { $this->random_state = md5(microtime() . $this->random_state); $output .= pack('H*', md5($this->random_state)); } $output = substr($output, 0, $count); } return $output; } function encode64($input, $count) { $output = ''; $i = 0; do { $value = ord($input[$i++]); $output .= $this->itoa64[$value & 0x3f]; if ($i < $count) $value |= ord($input[$i]) << 8; $output .= $this->itoa64[($value >> 6) & 0x3f]; if ($i++ >= $count) break; if ($i < $count) $value |= ord($input[$i]) << 16; $output .= $this->itoa64[($value >> 12) & 0x3f]; if ($i++ >= $count) break; $output .= $this->itoa64[($value >> 18) & 0x3f]; } while ($i < $count); return $output; } function gensalt_private($input) { $output = '$P$'; $output .= $this->itoa64[min($this->iteration_count_log2 + ((PHP_VERSION >= '5') ? 5 : 3), 30)]; $output .= $this->encode64($input, 6); return $output; } function crypt_private($password, $setting) { $output = '*0'; if (substr($setting, 0, 2) == $output) $output = '*1'; $id = substr($setting, 0, 3); # We use "$P$", phpBB3 uses "$H$" for the same thing if ($id != '$P$' && $id != '$H$') return $output; $count_log2 = strpos($this->itoa64, $setting[3]); if ($count_log2 < 7 || $count_log2 > 30) return $output; $count = 1 << $count_log2; $salt = substr($setting, 4, 8); if (strlen($salt) != 8) return $output; # We're kind of forced to use MD5 here since it's the only # cryptographic primitive available in all versions of PHP # currently in use. To implement our own low-level crypto # in PHP would result in much worse performance and # consequently in lower iteration counts and hashes that are # quicker to crack (by non-PHP code). if (PHP_VERSION >= '5') { $hash = md5($salt . $password, TRUE); do { $hash = md5($hash . $password, TRUE); } while (--$count); } else { $hash = pack('H*', md5($salt . $password)); do { $hash = pack('H*', md5($hash . $password)); } while (--$count); } $output = substr($setting, 0, 12); $output .= $this->encode64($hash, 16); return $output; } function gensalt_extended($input) { $count_log2 = min($this->iteration_count_log2 + 8, 24); # This should be odd to not reveal weak DES keys, and the # maximum valid value is (2**24 - 1) which is odd anyway. $count = (1 << $count_log2) - 1; $output = '_'; $output .= $this->itoa64[$count & 0x3f]; $output .= $this->itoa64[($count >> 6) & 0x3f]; $output .= $this->itoa64[($count >> 12) & 0x3f]; $output .= $this->itoa64[($count >> 18) & 0x3f]; $output .= $this->encode64($input, 3); return $output; } function gensalt_blowfish($input) { # This one needs to use a different order of characters and a # different encoding scheme from the one in encode64() above. # We care because the last character in our encoded string will # only represent 2 bits. While two known implementations of # bcrypt will happily accept and correct a salt string which # has the 4 unused bits set to non-zero, we do not want to take # chances and we also do not want to waste an additional byte # of entropy. $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $output = '$2a$'; $output .= chr(ord('0') + $this->iteration_count_log2 / 10); $output .= chr(ord('0') + $this->iteration_count_log2 % 10); $output .= '$'; $i = 0; do { $c1 = ord($input[$i++]); $output .= $itoa64[$c1 >> 2]; $c1 = ($c1 & 0x03) << 4; if ($i >= 16) { $output .= $itoa64[$c1]; break; } $c2 = ord($input[$i++]); $c1 |= $c2 >> 4; $output .= $itoa64[$c1]; $c1 = ($c2 & 0x0f) << 2; $c2 = ord($input[$i++]); $c1 |= $c2 >> 6; $output .= $itoa64[$c1]; $output .= $itoa64[$c2 & 0x3f]; } while (1); return $output; } function HashPassword($password) { $random = ''; if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) { $random = $this->get_random_bytes(16); $hash = crypt($password, $this->gensalt_blowfish($random)); if (strlen($hash) == 60) return $hash; } if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) { if (strlen($random) < 3) $random = $this->get_random_bytes(3); $hash = crypt($password, $this->gensalt_extended($random)); if (strlen($hash) == 20) return $hash; } if (strlen($random) < 6) $random = $this->get_random_bytes(6); $hash = $this->crypt_private($password, $this->gensalt_private($random)); if (strlen($hash) == 34) return $hash; # Returning '*' on error is safe here, but would _not_ be safe # in a crypt(3)-like function used _both_ for generating new # hashes and for validating passwords against existing hashes. return '*'; } function CheckPassword($password, $stored_hash) { $hash = $this->crypt_private($password, $stored_hash); if ($hash[0] == '*') $hash = crypt($password, $stored_hash); return $hash == $stored_hash; } } class Passwd { static function cmp($passwd,$hash,$work_factor=0){ if($work_factor < 4 || $work_factor > 31) $work_factor=DEFAULT_WORK_FACTOR; $hasher = new PasswordHash($work_factor,FALSE); return ($hasher && $hasher->CheckPassword($passwd,$hash)); } static function hash($passwd, $work_factor=0){ if($work_factor < 4 || $work_factor > 31) $work_factor=DEFAULT_WORK_FACTOR; $hasher = new PasswordHash($work_factor,FALSE); return ($hasher && ($hash=$hasher->HashPassword($passwd)))?$hash:null; } } ?>