pwned? – Telegram
pwned?
250 subscribers
30 photos
8 videos
2 files
103 links
Download Telegram
Мой очень карикатурный сосед, пьяный в стельку, рассказывал байки о том, как какие-то типы брили казино в Сочи на сотни лямов. Ну, вы знаете, вот эти классические истории про какого-то мифического чела, которого больше ни в одно казино не пускают. Естественно, никакой конкретики.
Якобы, есть какая-то последовательность: типа, крутишь, ждешь полминуты, повышаешь или понижаешь ставку, еще три минуты ждешь, и тут автомат начинает осыпать тебя деньгами. Я даже всерьез размышлять над этим не хочу, вопросов к этой схеме уйма. 😂
Но! Как-то раз он мне говорит: Ты ж хакер, можешь взломать мне казино? Я, естественно, отшутился, мол, если бы я мог, нахуй ты мне сдался в этом деле? 😂
Честно говоря, я сам бесконечно далек от всей этой лудомании, никогда даже не пробовал. Но мне стало интересно: это же веб-сервис, а значит, он потенциально уязвим для всех тех атак, что и любые другие сайты.
И вот тут выяснилось, что... да, действительно могу! 😂 Плюс ачивка. Главное ему не говорить))0
Forwarded from KGM's notes
Telegram_WebApp.pdf
739.6 KB
Некоторое время назад состоялась публикация моей первой статьи на Хакере: "OTP — не проблема! Прокачиваем фишинг при помощи дыры в Exchange, Telegram-бота и Evilginx2" - по мотивам моего кейса, занявшего 1 место на Awillix Pentest Awards 2025 в номинации "Ловись рыбка".
К данному посту я прикладываю pdf-файл с более подробным описанием нюансов использованияTelegram Web App (или Telegram Mini Apps) в фишинговых кампаниях
Forwarded from HaHacking
✈️ #offense #mobile #события

Ваш бот принимает оплату звёздами? Этот пост – очередное напоминание вам и всем, почему нужно читать документацию и почему нужно вводить дополнительные проверки; Особенно когда дело касается денег! 💸

ℹ️ Ремарка о том, как работают платежи в Telegram ⬇️

🔗 core.telegram.org/bots/payments
🔗 core.telegram.org/bots/payments-stars


0️⃣ Пользователь запускает процесс оплаты
1️⃣ Telegram на клиентской стороне проверяет баланс пользователя:
▪️не хватает – говорит пополнить
▪️достаточно* – шлёт боту статус pre_checkout_query
2️⃣ Бот обязан ответить на pre_checkout_query в течение 10 секунд, если он готов предоставить товар / услугу, иначе – отмена
3️⃣ Производится оплата
4️⃣ Telegram шлёт боту чек со статусом successful_payment


*Что такое достаточно? Это либо "хватает звёзд", либо "платит картой" (но на этом этапе неизвестно, есть ли деньги на карте)


Есть такой неофициальный Telegram клиент – exteraGram – и он предоставляет пользователям возможность дополнять свою функциональность кастомными плагинами, написанными на Python;

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


💻 Небольшая выдержка из исходного кода одного из таких плагинов:
...
from org.telegram.tgnet.tl import TL_stars
...
StarsController = find_class("org.telegram.ui.Stars.StarsController").getClass()
...
class Plugin(BasePlugin):
DEFAULT_BALANCE = 999999
SETTINGS_INFINITE = "infinite_mode"
...
def _handle_payment(self, response, error):
...
# Create fake success response
TL_payments_paymentResult = find_class("org.telegram.tgnet.TLRPC$TL_payments_paymentResult")
TL_updates = find_class("org.telegram.tgnet.TLRPC$TL_updates")
...
return HookResult(strategy=HookStrategy.MODIFY_FINAL, response=fake_result)
...
...
class _GetBalanceHook(MethodReplacement):
...
def replace_hooked_method(self, param):
...
# Return fake balance
return self._create_stars_amount(self.plugin.balance)

def _create_stars_amount(amount):
# Create StarsAmount object
try:
return TL_stars.StarsAmount.ofStars(int(amount))
...
...


Естественно, нарисованные звёзды не могут быть использованы для успешной оплаты товаров и услуг. Они нужны, чтобы хвастаться перед друзьями, если им не всё равно😊


➡️Но, как это часто бывает, оказалось, что некоторые боты (даже с десятками тысяч пользователей) не ждут статус successful_payment, а отдают товар / услугу уже на этапе pre_checkout_query, несмотря на официальную документацию. Ну а просто действительно, чего мы ждём, если оплата только в звёздах, да и звёзды уже лежат на столе?

Те, кто подсуетились – зачистили магазины и накупили подписок, набрали себе аккаунтов, авторегов и всего подряд на миллионы (!) звёзд, а учитывая, что многие услуги подразумевают также денежные затраты со стороны продавца (например, те же API вызовы к LLM) – на много чужих денег; Благо разработчики ботов тоже подсуетились и многих перебанили.


➡️В конечном итоге эти плагины стали публиковать, чтобы в стресс-формате обратить внимание разработчиков на дыры в их творениях, если кто не докрутил проверки ⚡️


   @HaHacking  🐇
Please open Telegram to view this post
VIEW IN TELEGRAM
Мой путь в хакинг начался с игры. Это была корейская онлайн-MMORPG, в которую я начал играть примерно в 2012 году. Сейчас в вебе всё просто: есть Burp Suite, человекочитаемый протокол HTTP... Но тогда я почти не понимал, что такое клиент-серверное взаимодействие.

Мой первый хак случился, когда я нашёл в памяти процесса координаты X, Y, Z своего персонажа. Каково же было моё удивление, когда, изменив эти значения, я мгновенно переместил его в другую точку! Позже я изучил язык AutoIt и написал свой первый трейнер, который мог запоминать текущие координаты и телепортироваться по клику мыши.

Были, например, подземелья по типу King's Raid: нужно было бежать до босса минут 30, убивая по пути толпы крипов, а весь ценный лут находился именно у босса. Так вот, мы телепортировались прямиком к нему, не теряя времени. Но это были просто шалости.

Потом я стал глубже изучать, как клиент сообщает серверу о моих действиях — покупке, продаже, удалении предметов, и где хранится эта информация. Как раз тогда мне попалась статья о состоянии гонки (race condition). Я понял концепцию и очень вдохновился. Я даже представлял, в каком месте системы возможна такая уязвимость, но больше всего времени ушло на написание собственного TCP-прокси, чтобы перенаправить в него трафик с клиента.

Затем начался разбор летающей бинарщины. После месяцев проб и ошибок мне удалось найти и заэксплойтить состояние гонки для функции «положить предмет на склад». Я дублировал вещи — и это был мой первый по-настоящему осознанный хак.
У меня еще огромная ностальгия по форумам. Невероятно ламповое было время. Я пришел на один из читерских форумов совсем нубом, задавал кучу вопросов, и мне охотно подробно расписывали, что и как работает. Помню, как один чел связался со мной в скайпе, шерил экран и на примере своей тулзы (которая, на минуточку, была платной и довольно успешной) объяснял мне принципы работы. А после вообще дал исходники, чтобы я учился
лол, я оказывается не один такой 😅
Forwarded from вольтаж
file://localhost/etc/passwd
что вернёт?

Да, вернётся /etc/passwd.

В RFC 8089, верный формат протокола описан как file://<host>/<path>, в то время как все шпоры на LFR при SSRF говорят лишь о file:///<path>

Причём, в <host> возможно вписать домен. Система резолвнет его, и если тот указывает на 127.0.0.1, то вернётся содержимое файла. В противном случае получишь лишь отстук в DNS.

питон пок

from urllib.request import urlopen

content = urlopen(
"file://yoogle.com/etc/passwd", timeout=2,
).read().decode('utf-8')

print(content)


Представил сколько возможностей для обхода фильтров? И это не последний твой приступ FOMO за сегодня.

В статье The Minefield Between Syntaxes от @yeswehack, автор вскрывает проблемы разных синтаксисов и как парсеры выживают с ними.

Представим, ты нашёл SSTI, но WAF блокирует символ $
Что делать?


Неприятно, но не критично, ведь в Python / Perl возможно представить символ через \N{CHARACTER NAME}.

Пример обхода фильтра
\N{dollar sign}{7*7} == ${7*7} == 49


Уже на стену лезешь? Погоди, я с тобой ещё не закончил.

Давай дальше по загрузке файлов. Видел же в Content-Disposition есть параметр filename?

В RFC 6266 описан базовый подход с именем файла, но RFC 8187 вышибает дверь с... чего.. какие юникод байты 😱


# RFC 6266
filename="image.png"

# RFC 8187
filename*=UTF8''image%0a.png


RFC 8187 вводит новые правила для filename параметра, включая поддержку всего Unicode + способности кодировать произвольные байты через %

То есть, ты можешь закодировать перенос строки (%0a == \n) и всячески ломать как парсинг имени файла, так и куда тот запишется.

. . .

FOMO карусель закрыта.
Как восстановишь силы, пробегись по статье автора ради:
⚀ разбор CVE из-за проблем синтаксиса [^]

⚀ кейс бб, из cache poisoning в stored xss через пролом валидации parse_url в PHP [^]

⚀ кейс бб, из слепого чтения файлов через SSRF в arbitrary file read [^]


Затем разнеси CTF по ресерчу
1. обход фильтров SSTI [^]

2. иной подход к протоколу file:// [^]

3. пролом parse_url в PHP [^]


#web #waf_bypass
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
понагенерили аишных поков, хайпят, а тем временем рабочего в паблике пока не видно...
автор пишет:
Anything that requires the developer to have explicitly exposed dangerous functionality to the client is not a valid PoC
кстати факт. го ждать 😅
Forwarded from Заметки Слонсера (Slonser)
https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
React UNAUTH RCE
CVSS 10
По патчу успел понять в чем проблема (PoC пока пишу)
Уже сейчас могу сказать что похоже действительно уязвимы прям стандартные версии
То есть разработчику не нужно даже написать стремный код / использовать конкретный модуль
Достаточно написать:
npx create-next-app

То есть имеем очень страшное RCE by default на миллионах сайтов
Реверсим патч и лутаем миллионы на багбаунти...
Forwarded from wr3dmast3r vs pentest
Данный материал подготовлен мной совместно с моим учеником для всех, кто пытается начать свой путь в области безопасности веб-приложений ☺️

На мой взгляд, PortSwigger является фаворитом среди всех обучающих материалов по информационной безопасности, и мне бы хотелось, чтобы вы в первую очередь пользовались именно бесплатными источниками знаний, а не платили за сомнительные курсы. Тем более, что большинство курсов на русском языке и так заимствуют значительную часть материалов, представленных здесь 🤓

Дальнейшее развитие репозитория возможно с вашей помощью: каждый из вас может внести вклад, добавляя решения лабораторных работ. Со своей стороны я буду по мере сил пополнять разделы, и вместе мы сделаем вход в изучение веб-безопасности бесплатным и доступным для каждого 🎧

Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM