From 3d6790614bb0dc776e02a95835e5c274263d1d1a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 27 Nov 2011 11:22:36 -0500 Subject: This zip file was identified as ltshell-3.zip --- shell/exec.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 shell/exec.php (limited to 'shell/exec.php') diff --git a/shell/exec.php b/shell/exec.php new file mode 100644 index 0000000..f3dc8d1 --- /dev/null +++ b/shell/exec.php @@ -0,0 +1,58 @@ +'; + return $ret; +} + +function php_exec($com, $cwd='') { + if ($cwd != '') { php_chdir($cwd); } + if ($com=='') { return 0; } + + $root = dirname(__FILE__); + + $ifs=' '; + $path = $root.'/bin'; + + $env = array('IFS' => $ifs, 'PATH' => $path); + + $coms = array(); + $a = 0; + $c = 0; + $q = ''; + while ($com != '') { + $char = substr($com,0,1); + $com = substr($com,1); + if (substr_count ('\'',$char)!==0) { + if (substr($q,0,1)===$char) { + $q = substr($q,1); + } else { + $q = $char.$q; + } + } elseif ($q != '') { + $coms[$c][$a].=$char; + } elseif (substr_count ($ifs,$char)!==0) { + if (isset($coms[$c][$a])) { + $a++; + } + } elseif (substr_count (';',$char)!==0) { + $c++; + } else { + $coms[$c][$a].=$char; + } + } + + $ret=0; + foreach ($coms as $args) { + $file=$path.'/'.$args[0].'.php'; + if (file_exists($file)) { + include($file); + $ret = main($args,$env); + } else { + echo 'sh: command not found: `'.$args[0]."'\n"; + $ret = 1; + } + } + return $ret; +} -- cgit v1.2.3