TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Что-то на пентестерском

8 Jun 2025, 23:29

Открыть в Telegram Поделиться Пожаловаться

⛈Небезопасная генерация токена

Что может быть проще: сброс пароля, подтверждение почты или аутентификация по токену? Но если ваш токен генерируется геморройно простым методом — у злоумышленника появляется прямой доступ к системе. Давайте разберёмся, почему до сих пор взламываются даже крупные сервисы и почему “уникальный токен” — не всегда синоним безопасности.

🟢 Как появляется проблема:

Иногда разработчики генерят токены через стандартные функции вроде rand() или time(), добавляя к ним user_id или инкрементный счетчик. Примеры из реального мира:
- Сброс пароля: token = md5(time() . user_id)
- Авторизация: просто strval(rand())

❗️По факту — это не токен, а открытая дверь, где “замок” известен каждому умеющему читать код. Если сервер при отправке ссылки для сброса пароля проверяет только такой токен — любой, у кого есть доступ к user_id и времени генерации, сможет подобрать нужное значение и получить доступ к чужому аккаунту.

🔊 Как это эксплуатируют:
Самый частый паттерн:
1. Изучаем токен — часто можно декодировать его, видим время или user_id.
2. Получаем user_id жертвы (через API или просто по URL).
3. Генерируем гипотетические значения токена по шаблону, который использует сервер.
4. Подставляем их в запрос — вход срабатывает. Профит.

📌 Даже хуже, если используется стандартный rand() на популярных языках — достаточно знать seed или время запуска генератора, чтобы воспроизвести последовательность токенов полностью (пример: предсказуемые токены сброса пароля в старых версиях некоторых CMS).

🔔 Как делать правильно?

Используйте только криптографически стойкие генераторы случайных чисел:
- Для PHP: random_bytes() и bin2hex()
- Для Python: secrets.token_urlsafe()
- Для Node.js: crypto.randomBytes()

Короче — никогда не генерируйте security-токены с помощью наивных функций и не смешивайте их с очевидными константами (user_id, timestamp и прочее)! Любой аудитор кода обязан сразу поднимать тревогу, видя старые добрые md5(time()).

Когда вы в последний раз проверяли генерацию токенов в своем проекте? Поделитесь кейсами — у кого встречались "простейшие" реализации? 👀

📶 Полезная ссылка: https://cqr.company/ru/web-vulnerabilities/insecure-token-generation/

ЧТНП | #web

1k 0 24 1 13
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot