ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

03.09.2009, 19:35
|
|
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
Провел на форуме: 7215020
Репутация:
1423
|
|
Сообщение от Gifts
Код:
?login=&password=' || '1
Отлично, это работает. Я сам виноват, нужно было учесть || . Усложняем задачу: добавляем фильтрацию | и ограничение на 6 символов  (хотя конечно логин и пароль на 6 символов – бредово для реальных условий, ну да ладно)
PHP код:
<?php
$login = substr($_GET['login'],0,6);
$password = substr($_GET['password'],0,6);
$login = str_replace('#', '', $login);
$login = str_replace("-", '', $login);
$login = str_replace('*', '', $login);
$login = str_replace('|', '', $login);
$password = str_replace('#', '', $password);
$password = str_replace("-", '', $password);
$password = str_replace('*', '', $password);
$password = str_replace('|', '', $password);
$login = preg_replace("/and|or/i","fuck",$login);
$password = preg_replace("/and|or/i","fuck",$password);
$query = "select * from `admin` where login = '$login' and password = '$password'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
//в админке
}
. . .
?>
Задача та же - обойти авторизацию
|
|
|

03.09.2009, 20:28
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
ElteRUS Эээ, в рот мне ноги, я не понимаю почему это работает, но, ведь, работает
Код:
?login=\&password=%2B'
Уточняю, выбирает из таблицы почти все записи +- 400 (из 40к) С другими таблицами и другими серверами мускуля - тоже самое, выбирает записи, но не все
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
Последний раз редактировалось Gifts; 03.09.2009 в 20:46..
|
|
|

03.09.2009, 20:57
|
|
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
Провел на форуме: 7215020
Репутация:
1423
|
|
Сообщение от Gifts
ElteRUS Эээ, в рот мне ноги, я не понимаю почему это работает, но, ведь, работает
Код:
?login=\&password=%2B'
Хм, да это то, только своеобразно оформлено но сути не меняет, твой вариант даже круче ))
Я рассчитывал на такое:
Логин '='
Пароль '='
Либо так a'='a в логин и пароль. Давайте посмотрим на получившиеся запрос:
PHP код:
select * from `admin` where login = 'a'='a' and password = 'a'='a'
Такой запрос прокатит. Выполните у себя на локалхосте
PHP код:
Select * from mysql.user where user = 'a'='a';
Выведутся все записи таблицы. Ну тот факт, что mysql поддерживает прямое сравнение строк – известен. Но дальше круче )) Выполните такое
PHP код:
Select * from mysq.user where user = 'aasdfsdf'='usu';
И это прокатит. Хотя очевидно, что эти строки не равны.
Твой пример из той же оперы
Код:
select * from `admin` where login = '\' and password = '%2B''
Только здесь видно что кроме = может быть и +, а так же * - )))
|
|
|

04.09.2009, 12:54
|
|
Познающий
Регистрация: 13.04.2008
Сообщений: 35
Провел на форуме: 177699
Репутация:
1
|
|
Объясните пожалуйста по зад.34.
echo (int)((0.1+0.7) *10);
почему выводит 7? и 8 если echo (int)(0.8*10)...
каким образом сумма в скобках влияет на результат? ведь 0,1+0,7=0,8
и при приведении к целому, д.б. просто откинуться дробная часть...
|
|
|

04.09.2009, 13:12
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
Подробное разъяснение случая с 'а'='б'='с' http://bugs.mysql.com/bug.php?id=39337
это не баг,а преобразование типов.
Фамнам, это непредсказуемо в некоторых случаях,зависит от платформы ,на которой исполняется пхп код.
|
|
|

04.09.2009, 13:33
|
|
Познающий
Регистрация: 13.04.2008
Сообщений: 35
Провел на форуме: 177699
Репутация:
1
|
|
спасибо, Krist_ALL
|
|
|

04.09.2009, 14:57
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
хотя конечно логин и пароль на 6 символов – бредово для реальных условий
так еще бредовей с логинов и пассов юзеров подстроки 'and' и 'or' удалять )))
|
|
|

18.09.2009, 14:34
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
Добавил еще 3 задания.
//ОФТОП
Завтра пойду в институт первый раз, волнуюсь) Поддержим Krist_ALLа!
|
|
|

18.09.2009, 15:27
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
38.
PHP код:
<?php
function ch($num,$str){
$res=str_split($str);
$i=0;
while ($i < count($num)){
$cn=$num[$i]-1;
$res[$cn]=strtoupper($res[$cn]);
$i++;
}
return implode("",$res);
}
?>
|
|
|

18.09.2009, 15:32
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
39.
Всё дело в динамической типизации PHP.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|