00:45 Реально ли спиздить телеграм-бота? | |
Сразу оговорюсь, материал предоставлен в образовательных целях, вся ответственность за то, что вы натворите в глобальной сети лежит только на вас. Штош, по приколу решил задуматься, а есть ли способ увести токен телеграм-бота в следствии чего получить почти полный доступ к функционалу онного. Хочу сразу предупредить, метод, описанный в данной статье крайне костыльный, но если вы захотите повторить эксперимент, то ссылки на все исходники будут внизу статьи. Приступим, если вы когда-либо работали с telegram-api знаете, что ключ бота-его токен имеет такой вид: 123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, первые символы - id бота, на них пока что не особо смотрим, строка после ":" состоит из 35 символов, первые два - всегда АА, третий - один из EFH, а оставшиеся 32 символа - мрак. При пересоздании бота, id остается неизменным, но токен меняется, так что можно утверждать, что, скорее всего, это функция от времени. Например, будем подбирать токен простым генератором рандомных значений. Напишем программу, которая отправляет http запросы формата "https://api.telegram.org/bot123456789:AAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/getUpdates" id бота зафиксируем на 20000 итераций, а токен для каждого запроса будем генерировать случайным образом (каждый x может быть одним из 62 символов (на самом деле, символов может быть 63, так как "_" тоже может быть членом токена, однако, в контексте программы, этот случай рассматриваться не будет). За сутки, мой сервер отправил порядка восьми миллионов запросов. Рассчитаем приблизительное время подбора верного ключа по формуле: 3 * 62^32 = 6.8179737e+57 (Всего запросов необходимо), 6.8179737e+57/8000000 = 8.5224671e+50 (Необходимо суток). Стоит учесть, что далеко не каждый запрос увенчается успехом из-за таймаута по количеству запросов (онные просто не будет обрабатывать сервер и, даже если вы подобрали токен успешно, сервер все-равно вернет ошибку). Как видно из чисел, эксперимент можно смело считать проваленным, как минимум потому, что затраченное время и ресурсы совсем не стоят полученного результата (в большинстве случаев, нулевого). Даже учитывая огромное количество ошибок, которые я допустил в расчетах, цифры все-равно остаются пугающими, а результат совершенно не оправданным. Исходник можно скачать тут: [СКАЧАТЬ] (Проект написан на c# и весит слишком много (а не стоит ничего), что бы выкладывать его в виде скомпилированного файла, так что, в случае, если вы захотите повторить эксперимент, вам придется собрать проект из исходников) Рекомендуется использовать всратую многопоточность, для этого в коренной папке скомпиленного проекта создайте bat файл с содержанием "for /l %%i in (1,1,5) do start telegramExploit.exe", где "5" - количество параллельно запускаемых окон Демонстрация работы приложения со всратой многопоточностью В файле seed лежит начальный bot-id (возрастает на 1 раз в 20000*кол-во потоков запросов), requests - суммарное количество запросов, log - успешно пойманные токены | |
|
Всего комментариев: 0 | |