ENGAGEMENT · CLOSED --:--:-- UTC
// E N G A G E M E N T   B R I E F //

FIFTH THIRD

53.com · public VDP · 2026-04-27
managed VDP · responsible disclosure · no monetary bounty · @exreddit / ПАСТЫРЬ
1Critical
2High
11Medium
16Low / Info
30всего
~17 000дверей в коридорах
>> картотека-оракул

CRITICAL КАРТОТЕКА ОТВЕЧАЕТ «ДА» / «НЕТ» НА ЛЮБОЙ ВОПРОС О ЛЮБОМ ЖИТЕЛЕ

>> в одном из крыльев дома стоит маленькая комната с архивом · она не спрашивает кто ты · она просто отвечает

Этот дом — банковский. Внутри живут миллионы людей. У каждого — анкета, и в этой анкете три приметы: дата рождения, почтовый индекс, последние четыре цифры одной важной государственной строки. По этим трём приметам в любой стране мира открываются другие двери: кредит, страховой полис, телефон, переустановка пароля.

Я подошёл к маленькой комнате-картотеке, прорезанной в боковой стене главного коридора, и спросил: «есть ли у вас житель с такой-то датой рождения и такой-то парой цифр?». Картотека ответила отдельно по каждой из примет — да/нет/не знаю. Не «приходите к управляющему», не «оставьте контакты, мы перезвоним», не «я вас не узнаю». Просто чистый ответ — на каждую часть запроса свой результат.

Двери никто не запирал. Привратника не было. Очередь не выстраивалась. Я мог спрашивать дальше: меняешь две из трёх примет — картотека снова отвечает по каждой по отдельности. С известной датой рождения (а она утекает наружу легко — соцсети, прошлые утечки, биржевые отчёты) и одним свободным вечером, методом перебора последних четырёх цифр, восстанавливаешь ту самую важную государственную строку по любому выбранному жителю. Десять тысяч вопросов, картотека на каждый отвечает мгновенно. Семнадцать минут.

Я не делал десять тысяч. Я задал четыре вопроса с заведомо случайными приметами — комната уверенно подтвердила существование двух жителей и так же уверенно отвергла два других случая. Оракул реален. Ни одного реального человека я не идентифицировал, ни одного жителя не назвал по имени. Эту строку я отдам только хозяевам дома.

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

>> impact  ·  банковская PII под нерушимым набором регуляторных правил · восстановление SSN-last-4 для произвольного клиента за минуты · готовый материал для социальной инженерии и ATO у любого финансового сервиса, признающего эту тройку
>> разговор через стену

HIGH ЕСЛИ В ИМЕНИ ЕСТЬ КУСОЧЕК «МЕНЯ» — Я ПРОПУЩУ ТЕБЯ К НЕМУ

>> стена между двумя комнатами слышит частицу слова и думает что это свой

Внутри дома стоит банковская комната с финансовыми бумагами клиентов и привратник на двери. Когда соседняя комната хочет получить документ для своего клиента, она называет себя — «я такая-то комната». Привратник проверяет имя и пропускает.

Проверка не точная. Привратник смотрит, есть ли в названии куда-то приходящего фрагмент — звук правильной комнаты. Если да — пускает, и пускает с её ключами и её правами. Хотя приходит совсем другая комната, к которой банк не имеет отношения.

Я регистрирую комнату с именем «название-правильной-комнаты-точка-моё-имя». Прихожу к привратнику банковской двери. Он слышит правильный фрагмент — пропускает. С чужими ключами. На любые операции — прочитать, изменить, обновить, удалить. Если в этот момент клиент банка случайно зашёл в свой браузер — я читаю его счета, его историю, его адрес, и могу писать в них от его имени.

Регистрация такой комнаты — один доллар за домен у любого реестра. Один час на правильный сертификат. Дальше остаётся завлечь клиента на любую свою страницу — простой ссылкой в письме, рекламой, игровым мини-сайтом — и в браузере жертвы открывается канал в её банк.

>> impact  ·  cross-origin кража авторизованных данных + state mutation  ·  работает по любой жертве, у которой открыта банковская сессия

HIGH ВНЕШНЯЯ СТЕНА С ОХРАНОЙ · ВНУТРЕННЯЯ — БЕЗ

>> у дома две входных двери · одна с проверкой на «ты человек?» · вторая открыта

У этой пристройки — медицинско-финансовой дочерней комнаты — стоят две входных двери. Парадная дверь, что выходит на улицу с табличкой, охраняется внешним привратником: сначала вопрос «ты человек?», потом задачка-картинка, и только потом ты можешь даже пытаться предъявить ключи. Если пытаешься три раза подряд с неподходящими ключами — следующие пять минут стоишь.

Вторая дверь, служебная, выходит из подвала на ту же стену. Адрес её известен любому, кто умеет читать карту облачной инфраструктуры — она опубликована в общем DNS-реестре под собственным длинным именем. За этой второй дверью — тот же привратник, что и за парадной, тот же зал, те же замки. Но к ней не приставлен внешний охранник. Никаких задачек-картинок. Никакого «попробуй позже». Никакого счётчика попыток.

Я постучался в неё пять раз с заведомо неправильными ключами. Ни одного отказа. Ни одной задержки. Сравнил с парадной — там после третьего стука меня встретил «робот, докажи что не робот».

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

>> impact  ·  обход всей внешней защиты · credential stuffing на multi-tenant финансовую платформу без ограничения скорости
>> полу-прозрачные стены

MEDIUM · 11 ОДИННАДЦАТЬ ЩЕЛЕЙ В НАРУЖНОЙ СТЕНЕ

Одиннадцать трещин разной длины. Каждая по отдельности — не катастрофа, вместе — рисунок, по которому можно прицельно идти.

Один · ключ от карт лежит на коврике у двери. В стенах двенадцати комнат одной из дочерних служб встроена пластиковая дощечка с длинным ключом, который открывает чужой платный картографический сервис. Ключ не привязан ни к зданию, ни к комнате. Любой прохожий снимает ключ со стены и идёт к чужой кассе расплачиваться счётом этого банка.

Два · второй такой же ключ, но от переводчика. В подсобном крыле федеральной службы выплат лежит ключ от чужого переводческого сервиса. Та же история — открыт, без привязки, расход оплачивает банк.

Три · служебная дверь без привратника. В одной из служебных комнат ушли пять админ-функций — удалить пользователя, обновить профиль, поменять пароль и так далее — в коридор, который проектировали как публичный. Внешнего привратника нет. Внутренний дворецкий ещё проверяет «ты вошёл по сессии?» — пока он не сломался, никто не пройдёт. Сломается — пройдёт каждый.

Четыре · обратная связь от прошлого века. Один из публичных порталов хранит в исходном коде ссылку на тестовый OAuth-tenant с пометкой «dev-» прямо в названии и redirect-uri, который указывает на localhost:4200 — на собственный компьютер приходящего. На многопользовательской машине соседний процесс ловит чужой токен авторизации.

Пять · внутренняя стена пропускает имя. Внешний CDN, поставленный для защиты, маршрутизирует через себя весь фасад. Но та же инфра опубликовала AWS-имена тех же серверов напрямую в DNS. Прохожий, идущий по AWS-имени, минует CDN и весь его бот-менеджмент, rate-limit, WAF.

Шесть · комнатки в подвале с нацарапанным телефоном. В одном из вспомогательных коридоров — Asset-Based Lending — есть служебный привратник старой школы. На любой неправильный стук он громко зачитывает свою профессиональную карточку: имя, фамилия, версия, точное название офиса в подвале и формальная фраза о том, какую функцию он сейчас исполнял. Прохожий узнаёт где находится подвал, какого года привратник, и какая система за ним стоит. Эти таблички заводятся мгновенно и хранятся семь дней в удалённом архиве — потому что у архивариуса правило: «всё что заканчивается на .css — кладём на неделю». Подходит путник через неделю, спрашивает то же — получает ту же табличку из архива.

Семь · служебный люк AEM. В двух дочерних домах — поиск отделений и страничка ипотечного консультанта — есть служебный люк, через который должны проходить только инженеры. Снаружи на люке висит правильный замок и охранник в проходной. Но проходная пропускает почтовые ящики любому желающему, говоря «вон там сидит привратник, разбирайтесь с ним». Привратник реально кричит «нет», но при этом громко произносит свой идентификационный номер и название кластера. Сегодня люк закрыт. Если правила охраны изменят — люк станет открытым.

Восемь · подносы из мобильного банка. В рабочих карманах мобильного приложения нашёл три подноса с тремя разными ключами от служебной книги: один от боевой, один от тестовой, один от приёмочной. Все три ключа живы, все три отдают полную «книгу настроек» — список из 773 имён включая названия систем антифрод-проверок, имена экспериментов, метки о том кто из пользователей включён в новую логику. Сами правила не переписать, но прочитать можно всё.

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

Десять · разговор по голому радио в одном крыле. В сетевом протоколе мобильного приложения для целого крыла (`info53.com`) разрешён незашифрованный разговор. Если жертва окажется в недобросовестной WiFi-сети, чтение трафика — без замка и ключа.

Одиннадцать · служебный коридор без двери. Внутри одного из публичных порталов федеральной службы выплат пять управленческих функций (удалить аккаунт, перезаписать профиль, поменять пароль) не проверяются на входе во внешнюю стену здания. Внутренний секретарь ещё спрашивает «у тебя есть пропуск?», и пока он работает — никто не пройдёт. Если он отключится — открыто.

>> impact  ·  одиннадцать средних рисков, складываются в архитектурный паттерн «защита только на одном слое» — пока второй слой держит, кажется что всё хорошо; перепишут второй слой — упадёт всё
>> тонкие следы

LOW · 13 ТРИНАДЦАТЬ ТОНКИХ СЛЕДОВ — БУМАЖНЫЕ ЗАМКИ И ВЫВЕСКИ

В разных коридорах нашёл следы конфигурации, которые сами по себе никого не пускают и ничего не ломают, но описывают дом изнутри лучше любой карты.

Двенадцать тысяч пятьсот девяносто девять служебных табличек на дверях, которые принадлежат внутренней инфраструктуре банковского мобильного приложения. В именах — номера задач из системы планирования, инициалы конкретных инженеров, пометки «в этом коридоре сейчас тестирует команда пентеста». Прохожий получает план-схему, кто над чем работает.

Две тестовые лестницы — для тех, кто проверяет новые функции — стоят прямо на улице, открытые. На звонке отвечают «жив». Дверь сама по ключу не пускает, но за дверью — копия настоящего здания, обычно с более слабыми замками.

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

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

В стенах одного из устаревших серверов — сертификат с печатью «example.com». Старая полевая палатка, которую забыли свернуть. На облачной карте этот сервер записан под адресом дочерней службы; внутри — чужая стандартная заглушка, никто не настраивал.

Остальные восемь — мелкая пыль того же сорта: открытая страница с технологическим стеком, опечатки в правилах безопасности, забытое упоминание тестового сервиса в публичной конфигурации, заголовки ответов, проболтавшиеся о фреймворке.

>> impact  ·  recon-uplift  ·  каждый пункт по отдельности не уязвимость, но в сумме — детальный план для прицельной охоты на любой из крупных трещин выше
>> как я шёл
[01]SCOPEENFORCED
scope := managed VDP список из семидесяти ассетов · wildcard охватил периметр · за периметр — никогда
[02]PARTICIPATION_HEADEREVERY REQUEST
программа требует свой бейджик на каждом стуке · бейджик прилагал везде · ни один анонимный запрос не ушёл
[03]RATE_LIMIT≤ 5 RPS
не быстрее живого пользователя · auth-критичные пути ≤ 1 req/s · никакого scanner-шума
[04]PROOF_ROWN = 1
по одному доказательству на класс · никаких массовых выгрузок, всё остальное оставлено в тени
[05]PII_REDACT3-CHAR
в публичном брифе только метафоры · в приватном пакете владельцу — конкретика с redaction до первых трёх символов
[06]NO_REAL_USER0 SENT
ни одного письма, ни одного SMS, ни одного OTP в адрес реального клиента банка · все probes только на свои или нейтральные тестовые точки
[07]NO_ACTIVE_DESYNCSAFE_PATH
фингерпринт smuggling зафиксировал · активную проверку запустил один раз через documented PortSwigger detection-payload без piggyback на чужую сессию · коннект явно закрыт после
[08]REPRODUCIBLELIVE
для каждого finding'а · curl → копи-паст → владелец увидит то же самое на своём терминале · не теория, не скриншот, не утверждение
[09]DEFENDER_RESPONSEOBSERVED
через два часа после первой пробы одной из щелей наблюдал реакцию защиты — конкретный action-id попал в WAF-блок-лист · фиксирую честно
[10]FALSE_LEAD_DOWNGRADEHONEST
одну из находок изначально оценил выше — повторил под реальным браузером, увидел что эксплойт не воспроизводится, понизил severity до defense-in-depth ноты
[11]NO_SUBMISSION_YETPENDING
findings собраны, верифицированы, лежат в моём приватном пакете · публичный narrative выпущен с разрешения · отдельные репорты в платформу — по решению владельца программы
[12]NO_MONETARYVDP
это VDP без вознаграждения · работа в режиме hall-of-thanks, не за деньги
ПАСТЫРЬ
white-hat · responsible disclosure · no third-party sale
engagement opened · 2026-04-27 · closed · 2026-04-27 · 30 verified findings · 9 KB-patterns extracted
signed · @exreddit / ПАСТЫРЬ · managed VDP engagement
<< HOME ALL DISCLOSURES >>