Возможно, эта уязвимость уже была описана. Возможно, само слово "уязвимость" не совсем подходит для описания ситуации. Тем не менее, хотелось бы поделиться некоторой важной информацией с владельцами форумов IPB 1.3 Final.
Первопричина уязвимости: отсутствие проверки движком форума корректности введённого e-mail'а пользователя.
***
Подробно, как всё это выглядит...
После завершения регистрации, у пользователя есть возможность сменить адрес электронной почты. При этом IBP 1.3 допускает введение e-mail'а вида: http:[email protected]. Хотелось бы заметить, что введение http: перед e-mail'ом является относительно частой ошибкой новичков.
Следствия:
Первое следствие. Если такому пользователю кто-либо посылает Private Mail и если у такого пользователя стоит "Оповещение по e-mail о PM", отправитель письма немедленно получит сообщение "Could not send email".
Второе следствие, гораздо более неприятное. Если пользователь с таким "кривым" e-mail'ом подпишется на какой-либо раздел форума (то есть, попросит оповещать его о новых темах форума), то все участники, создавшие новую тему, будут получать сообщение "Could not send email" вместо страницы новой темы.
Третье следствие вытекает из второго. Поскольку человек, создавший новую тему, не видит результатов, он повторяет свой запрос на создание темы. Но снова видит "Could not send email", и опять повторяет запрос... И так до тех пор, пока он не догадается открыть собственно форум, где будет несколько новых тем-клонов.
И наконец, четвёртое, самое неприятное. Тут необходимо разъяснить термин "флуд-контроль".
Флуд-контроль - это встроенное в движок форума ограничение на количество запросов в единицу времени. Флуд-контроль применяется к новичкам форума, дабы ограничить их [возможно злокачественную] активность. Одним из наиболее важных применений флуд-контроля является обеспечение задержки между созданием новых постов и тем.
Что же получается в нашем случае подписки на новые темы с "кривого мыла"? Предположим, пользователь (руководствующийся злыми намерениями) зарегистрирует ещё один аккаунт на форуме (это не сложно, поскольку в распространённом случае не требуется подтверждения с e-mail, а повторения e-mail в базах данных нет из-за того, что e-mail уже заменён на "кривой"). Тогда, пользуясь этим аккаунтом, он может создавать неограниченное количество тем в том разделе форума, на который подписан первый аккаунт. В обход флуд-контроля.
***
Вышеописанные предположения были проверены на практике и подтвержились.
Решение, закрывающее возможность обойти флуд-контроль таким образом - очень простое. Добавить проверку на валидность e-mail, вводимого пользователем.
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
hasherfrog
Приветствую всех.
Возможно, эта уязвимость уже была описана. Возможно, само слово "уязвимость" не совсем подходит для описания ситуации. Тем не менее, хотелось бы поделиться некоторой важной информацией с владельцами форумов IPB 1.3 Final.
Первопричина уязвимости: отсутствие проверки движком форума корректности введённого e-mail'а пользователя.
***
Подробно, как всё это выглядит...
После завершения регистрации, у пользователя есть возможность сменить адрес электронной почты. При этом IBP 1.3 допускает введение e-mail'а вида: http:[email protected]. Хотелось бы заметить, что введение http: перед e-mail'ом является относительно частой ошибкой новичков.
Следствия:
Первое следствие. Если такому пользователю кто-либо посылает Private Mail и если у такого пользователя стоит "Оповещение по e-mail о PM", отправитель письма немедленно получит сообщение "Could not send email".
Второе следствие, гораздо более неприятное. Если пользователь с таким "кривым" e-mail'ом подпишется на какой-либо раздел форума (то есть, попросит оповещать его о новых темах форума), то все участники, создавшие новую тему, будут получать сообщение "Could not send email" вместо страницы новой темы.
Третье следствие вытекает из второго. Поскольку человек, создавший новую тему, не видит результатов, он повторяет свой запрос на создание темы. Но снова видит "Could not send email", и опять повторяет запрос... И так до тех пор, пока он не догадается открыть собственно форум, где будет несколько новых тем-клонов.
И наконец, четвёртое, самое неприятное. Тут необходимо разъяснить термин "флуд-контроль".
Флуд-контроль - это встроенное в движок форума ограничение на количество запросов в единицу времени. Флуд-контроль применяется к новичкам форума, дабы ограничить их [возможно злокачественную] активность. Одним из наиболее важных применений флуд-контроля является обеспечение задержки между созданием новых постов и тем.
Что же получается в нашем случае подписки на новые темы с "кривого мыла"? Предположим, пользователь (руководствующийся злыми намерениями) зарегистрирует ещё один аккаунт на форуме (это не сложно, поскольку в распространённом случае не требуется подтверждения с e-mail, а повторения e-mail в базах данных нет из-за того, что e-mail уже заменён на "кривой"). Тогда, пользуясь этим аккаунтом, он может создавать неограниченное количество тем в том разделе форума, на который подписан первый аккаунт. В обход флуд-контроля.
***
Вышеописанные предположения были проверены на практике и подтвержились.
Решение, закрывающее возможность обойти флуд-контроль таким образом - очень простое. Добавить проверку на валидность e-mail, вводимого пользователем.
Ссылка на комментарий
Поделиться на других сайтах
10 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.