f (isset($submit))
{
$query = "SELECT * FROM users WHERE login='$login'";
if ($result = mysql_query($query,db_connect()))
{
if (mysql_num_rows($result) > 0)
{
if ($user=mysql_fetch_array($result))
....
Как взломать сайт?
....................................................
....................................................
<table class="wide_table">
<tr>
<td class="side_td"></td>
<td class="lable_td">Введите логин</td>
<td class="form_td"><input type=text name=login></td>
<td class="side_td"></td>
</rt>
<tr>
<td class="side_td"></td>
<td class="lable_td">Введите пароль</td>
<td class="form_td"><input type=password name=passwd></td>
<td class="side_td"></td>
</tr>
</table>
....................................................
....................................................
<p align="center">
<input type=submit value=Войти name=submit id=submit class="button">
....................................................
....................................................
При нажатии на кнопку входа выполняется код:
if (isset($submit))
{
$query = "SELECT * FROM users WHERE login='$login'";
if ($result = mysql_query($query,db_connect()))
{
if (mysql_num_rows($result) > 0)
{
if ($user=mysql_fetch_array($result))
{
$temp_id=$user["id"];
$query2="SELECT * FROM users,groups,user_group WHERE user_group.id_user=$temp_id AND user_group.id_group=groups.id";
$result2=mysql_query($query2,db_connect());
if ($groups=mysql_fetch_array($result2))
{
if ($login === $user["login"])
{
if (md5($passwd) === $user["passwd"])
{
session_start();
$cur_user=$user["login"];
$cur_group=$groups["groups"];
$cur_user_group_c=gzcompress(serialize($groups));
setcookie("cur_user_group_c",$cur_user_group_c,time()+7200);
setcookie("cur_group",$cur_group,time()+7200);
setcookie("cur_user",$cur_user,time()+7200);
//session_register('cur_user_group');
?><script language="javaScript">
document.location.replace("main.php");
</script>
<?
exit;
}
else {print "<center><font size=5 color=#CC0000>Неправильный пароль!!!</font></center>";}
}
else {print "<center><font size=5 color=#CC0000>Неправильный логин!!!</font></center>";}
}
else {print mysql_error();}
}
}
}
else {die("Couldn't retrieve authorization data, please try again later");}
}
ВОПРОС: Можна ли взломать такую реализацию! Тобиш ввести в поля ввода такие значия чтобы мы смогли перейти на main.php.
А это Web-программирование, да? =))
Да веб! Написано с использованием php и mysql!
По моему мнению идентификацию пройти нельзя.
P. S. слишком много проверок, можно было сделать по проще.
Без подсвеика ии стиля!
Ужос! Читать страшно.
Цитата: whitehood
SQL иньекцию применить можно, но от неё мало смысла так как проверяется введенный логин в который можно подставить кусок SQL кода с логином из БД, а это не прокатит.
По моему мнению идентификацию пройти нельзя.
P. S. слишком много проверок, можно было сделать по проще.
По моему мнению идентификацию пройти нельзя.
P. S. слишком много проверок, можно было сделать по проще.
где какие проверки? че то я не понял...
вот кусок кода:
Код:
никаких проверок там нету...посему лепим: ?login=login' union ...и т.д.
ЗЫ:а ты что такой прям мощный хацкер что видишь код скриптов?)))))
Код:
...
if ($login === $user["login"])
{
if (md5($passwd) === $user["passwd"])
...
if ($login === $user["login"])
{
if (md5($passwd) === $user["passwd"])
...
Сравниваем запрос из формы, с данными из базы.
Допустим мы в login записали что то типа ' or 1 /*
потом проверяем "' or 1/*" === "some_login"
и можно идти лесом.
Если я не прав, выкладываем эксплоит.
Так же если включено автодабавление кавычек aka magic_quotes_gpc, то про эти шалости можно забыть.
Цитата:
ЗЫ:а ты что такой прям мощный хацкер что видишь код скриптов?)))))
Так код весь нарисован в виде буковок, и видеть надо только необходимое.
Код:
f (isset($submit))
{
$query = "SELECT * FROM users WHERE login='$login'";
if ($result = mysql_query($query,db_connect()))
{
if (mysql_num_rows($result) > 0)
{
if ($user=mysql_fetch_array($result))
....
{
$query = "SELECT * FROM users WHERE login='$login'";
if ($result = mysql_query($query,db_connect()))
{
if (mysql_num_rows($result) > 0)
{
if ($user=mysql_fetch_array($result))
....
сдесь же уже выполняется sql запрос...
разве не получится?
например так хотябы:
login=login' union select '<?...exploit...?>' outfile 'exploit.php
Код:
login=login' union select '<?...exploit...?>' outfile 'exploit.php
Нечто вроде этого может и сработает, зальём файл на сервер, ну а смысл?
P. S.
Это надо у топикстартера спрашивать что он имел ввиду под "взломать сайт"
Обход аутентификации аля неавторизованный доступ или что то ещё.
смысл в том что это будет r57, а дальше можно дефейсить или еще что нибудь...
цитата их "цельно-металическая оболочка" С.Кубрик - "Если бы небыло таких далбаебав как ты - в мире давно прекратилось бы воровство"...
Цитата: whitehood
P. S.
Это надо у топикстартера спрашивать что он имел ввиду под "взломать сайт"
Обход аутентификации аля неавторизованный доступ или что то ещё.
ВОПРОС: Можна ли взломать такую реализацию!
Тобиш ввести в поля ввода такие значия чтобы мы смогли перейти на main.php.
И чё тут не понятного? Что нужно ввести пользователю каторый не знает ни логина ни пароля в поля что бы его пустило на сайт?
P. S. Если такое возможно ввобще!
Может Ваше не совсем культурное поведение?
>>Что нужно ввести пользователю...
Знания в Вашу голову! Но это сделать сложно, т.к. Вы ищите готового ответа.
Мне интиресно можна ли сделать то что я спросил? А если можна то как! Докажите! А если нет то значит та реализация которую я привел вполне функциональна!
Ещё раз доказывает то, что разговаривать Вы не умеете. Тут Вам доказывать никто ничего не собирается. На "слабо" в детском саду берите. Тему закрываю в связи с переходом в флут и некоректного отношения автора к посетителям форума.