Привет Гость!
Ты должен:
Войти или зарегистрироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Маленькая уязвимость Dle
Prosto_Vlad
Дата: Четверг, 12.08.2010, 09:54 | Сообщение # 1
Начинающий
Сообщений: 64
[ 4 ]
Проблема: Недостаточная фильтрация входящих данных в регистрации.
Ошибка в версии: все версии Dle
Степень опасности: Низкая
Баг позволяет узнать префикс к бд.

Как юзать:
1) Переходим по ссылке ?do=register
2) Вводим логин, пароль, капчу, email более 50 символов.
Пример email:
qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrftg@qawsedrftg.qawsedrftg

3) Нажимаем зарегистрироваться
4) Повторяем операцию с 1 по 3 шаги.
5) Получаем ошибку о дубликате поля. В ней смотрим префикс к бд.

Как это работает? Дело в том что поле email стоит ограничение в 50 символов, таким образом остальное всё обрезается, при первой регистрации в бд попало значение
qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrft

После второй регистрации идёт поиск поля email со значением
qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrftg@qawsedrftg.qawsedrftg

Которого нет, отправляется запрос, получаем ошибку

Исправить:
Найти в engine/modules/register.php
$email = $db->safesql( $parse->process( $_POST['email'] ) )
;

Заменить на:
$email = $db->safesql( $parse->process( substr($_POST['email'], 0,50) ) );


Опыт - это не то, что происходит с человеком, а то, что делает человек с тем, что с ним происходит!
 
  • Страница 1 из 1
  • 1
Поиск:

88x31
88x31
© 2010 | uCoz-TPL.Ru
Хостинг от uCoz