🕷 BugBountyRu
2.74K subscribers
219 photos
22 videos
1 file
247 links
info@bugbounty.ru
Download Telegram
Уязвимости при загрузке файлов возникают из-за небезопасной реализации функционала загрузки, особенно когда компонент выполняет слабую или вовсе не выполняет проверку загруженного файла. Критичность этого класса уязвимостей может быть разнообразной: от stored XSS до RCE.

Условия для успешной эксплуатации:
❣️ Доступ к файлу: необходимо знать полный путь к файлу, чтобы обратиться к нему.
❣️ Тип контента: если сервер меняет MIME-тип файла на безопасный, выполнение кода может стать невозможным.

Базовые методы эксплуатации:
❣️ Загрузка файла с вредоносным кодом, например, PHP-скрипта.
❣️ Обход client side ограничений (HTML-атрибут accept) с помощью прокси для изменения данных HTTP-запроса.

Обход защитных механизмов:
❣️ Черные списки расширений: использование нестандартных расширений или манипуляция именем файла.
❣️ Белые списки расширений: использование разрешенных расширений с вредоносным содержимым.
❣️ Проверка MIME-типа: загрузка файла с корректным MIME-типом, но вредоносным содержимым.

Примеры сложных атак:
❣️ Перезапись конфигурационных файлов (например, .htaccess) для изменения настроек сервера.
❣️ Использование магических байтов: изменение первых байтов файла для прохождения проверки типа.

💡 Важные советы:
❣️ Комбинируйте методы обхода для выявления слабых мест.
❣️ Учитывайте особенности технологий на стороне сервера и создавайте специализированный пэйлоад.
❣️ Не знаете, с каким списком имеете дело: черным или белым? Попробуйте загрузить файл с произвольным расширением. Если он был принят, скорее всего, используется черный список. Если загрузка отклонена, скорее всего, это строго определенный белый список.

🔗 Погрузиться подробнее
🔗 Fuxploider — инструмент для автоматизации обнаружения и эксплуатации недостатков форм загрузки файлов
🔗 Upload Scanner — сканер загрузки файлов для Burp Suite
🔗 FileUpload — расширение OWASP ZAP для поиска уязвимостей в функциональности загрузки файлов
🔗 Заметки на PayloadsAllTheThings
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:

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, отличным от application/json. Эффективность этого подхода связана с тем, что браузеры разрешают отправку запросов с заголовками только application/x-www-form-urlencoded, multipart/form-data и text/plain (а также, возможно, несколькими другими исключениями) в cross-site запросах. Можно отправлять произвольные значения, но только в том случае, если сайт-получатель предоставил разрешение через CORS.

💡 Если защита от CSRF реализована как показано в примере выше, есть новый способ обхода. Он основан на том, что API 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:

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);})();


🖤 Расширения Burp Suite для анализа JavaScript: JSLinkFinder, GAP, JSpector и другие.

3️⃣ Фаззинг — отправка различных, часто неожиданных входных данных, включая пути, параметры или HTTP-заголовки, на эндпоинты приложения.

👉 Цель: спровоцировать пограничные случаи, выявить функции, которые никогда не предназначались для публичного использования, и обнаружить слабые места в логике приложения.

👉 Основные возможности:

🖤 Обнаружение скрытых или секретных эндпоинтов.
🖤 Выявление неправильных настроек или проблем с контролем доступа.
🖤 Автоматизация изучения поведения целевого веб-приложения.
🖤 Понимание механизмов работы целевого веб-приложения.

👉 Основные этапы:

💚 Определите базовый уровень: начните с эндпоинтов, которые вы уже обнаружили с помощью ручного сканирования, анализа JavaScript и forced browsing.

💚 Forced browsing: даже хорошо защищённые приложения иногда полагаются на предсказуемые соглашения об именовании, оставшиеся файлы резервных копий или директории по умолчанию, которые, по мнению разработчиков, не будут найдены.

Используя эти предположения, forced browsing предполагает систематическое угадывание путей к файлам, директориям и расширениям для доступа к скрытым или ограниченным ресурсам. Простой пример: settings.php.bak, settings.bak, settings.php.old, settings.old, settings_old.php, settings.php~.

💚 Изучение распространенных административных или других директорий.

4️⃣ Словари: предоставляют входные данные для тестирования эндпоинтов и параметров.

🖤 Общие: common.txt, fuzz.txt.
🖤 Для конкретного языка программирования, фреймворка или стека: ColdFusion и другие.

5⃣ Фаззинг с помощью CLI-инструментов: поиск путей/директорий/расширений, parameter discovery.

Полезные инструменты: feroxbuster, ffuf, dirb, gobuster.

6⃣ Фаззинг с помощью Burp Intruder.

#техники #инструменты #разведка
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8
Вы когда-нибудь сталкивались с веб-приложением, возвращающим ответ XML? Оно может скрывать уязвимость XXE.

💡Несколько советов, которые помогут эффективно выявлять и эксплуатировать эту уязвимость:

1️⃣ Определите точку входа: ищите пэйлоад XML в HTTP-запросах или функционале загрузки файлов.

Он может появляться в API, SOAP-сервисах или функционале анализа документов (например, SVG, DOCX и т. д.). Попробуйте изменить HTTP-заголовок Content-Type на application/xml или text/xml, чтобы увидеть ответ сервера.

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.

/usr/share/xml/fontconfig/fonts.dtd

Например, файл fonts.dtd содержит внедряемую сущность %constant, которую можно переопределить для включения вредоносной сущности. Это позволяет перехватить процесс парсинга и внедрить свой пэйлоад (пример #2).

5️⃣ Обход WAF через кодировку символов: XML-парсеры определяют кодировку с помощью HTTP-заголовков, BOM или декларации XML.

Вы можете использовать это для обхода WAF, преобразуя пэйлоад в другую кодировку (пример #3).

#техники
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🐧 Бесплатные cloud-native linux системы. Иногда есть необходимость что-то проверить в своих системах с внешнего хоста, а покупать сервер не хочется или нет возможности. На помощь придут сервисы типа segfault.net (ssh - root:segfault; анонимизированный, есть ограничения, таймаут) или terminator.aeza.net (web-based linux (+Win); ограничение - 15 минут).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤖 DEEPSEEK RCE/SSRF.

Хайповая AGI deepseek позволяет выполнять произвольные команды, на виртуальном окружении, в котором запущен агент вашей сессии чат-бота с генеративным искусственным интеллектом. Это дает возможность, в том числе и злоумышленникам, использовать мощности этой экосистемы для атак или вредоносных действий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎18👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Cтикерпак для влюбленных в BB от VK 3>, забирайте в канале выше )
Portswigger расширяет возможности Burp Suite помощью AI-Powered дополнений, которые позволяют использовать не только классические сигнатурные подходы в поисках аномалий, но и мощь AI. Данные будут передаваться на сервера Portswigger (пишут что секюрьненько), и там обрабатываться (но ты же используешь коллаборатор и так?). На попробовать дают 10,000 free AI-credits, дальше за деньги.

https://portswigger.net/blog/the-future-of-security-testing-harness-ai-powered-extensibility-in-burp-nbsp
👍5👎1
🕷 Обход валидации URL — основная причина многочисленных багов, включая множество кейсов SSRF, мисконфига CORS и open redirection. Они работают, используя неоднозначные URL, чтобы вызвать расхождения в парсинге URL и обойти валидацию. Однако многие из этих методов плохо документированы и в результате игнорируются.

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

➡️ В настоящее время доступны три контекста:

1️⃣ Полностью определенный абсолютный URL — полезен в ситуации, когда URL используется в параметре запроса.

2️⃣ Только имя хоста — прямой ввод домена, например, в значении заголовка Host.

3️⃣ CORS Origin — где имя хоста должно использоваться в допустимом заголовке источника браузера.

➡️ Краткий обзор наиболее важных пэйлоадов:

Обход списка разрешенных доменов: разработан для атак с путаницей доменов. Вы можете настроить тестовые домены, введя разрешенные и атакующие домены соответственно.

Поддельные относительные URL-адреса: сюда входят допустимые браузером URL-адреса, которые могут быть неправильно проверены на стороне клиента.

Loopback Address: этот словарь включает различные представления адресов IPv4, IPv6 и их нормализации.

➡️ Подытожим:

Не можете докрутить SSRF, мисконфиг CORS или open redirect ➡️ берете шпаргалку ➡️ выбираете нужные настройки (кодировки, кастомные параметры, имена хостов и т. д.) ➡️ копируете в Intruder ➡️ прогоняете и наслаждаетесь результатом

#шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎2
Forwarded from InfoSec VK Hub
🔹VK Security Confab #3: всё о Bug Bounty

27 февраля в московском офисе 💙 встречаемся на митапе VK Security Confab. В этот раз обсудим секреты и подводные камни Bug Bounty, техники поиска, инструменты и найденные уязвимости.

Программа митапа уже на сайте, а вот небольшой спойлер:

🔵Петр Уваров поделится планами VK Bug Bounty в 2025 году.

🔵Алексей Лямкин расскажет, как устроен триаж изнутри.

🔵Анна Куренова (SavAnna) поделится мнением, почему дубликат — это не проклятие, а ценный урок.

🔵Юрий Ряднина (circuit) покажет дисклозы нескольких уязвимостей ВКонтакте.

🔵Алексей Жучков (zerodivisi0n) продемонстрирует реальные кейсы, которые могут привести к удаленному исполнению кода.

И конечно, афтепати! 🔹
Обсудим доклады, обменяемся идеями и классно проведем время.

🔹 Скорее регистрируйтесь!
Встреча пройдет только офлайн, онлайн-трансляции и записи не будет.

🔹 Сбор гостей в 18:30, начало — в 19:00.

VK Security

#митап #confab #bugbounty
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Взломанная на 1.5 миллиарда долларов платформа ByBit имела Bug Bounty, но выплаты были видимо не столь привлекательны :)
👍10
Bounty Prompt — это расширение для Burp Suite с открытым исходным кодом, разработанное Bounty Security. Используя технологию ИИ через Burp AI , этот инструмент позволяет генерировать интеллектуальные подсказки для тестирования безопасности, анализируя выбранные HTTP-запросы и ответы в Burp Suite.
Будьте первым и найдите уязвимости в УК "Первая"!

УК «Первая» - одна из старейших, крупнейших и наиболее успешных управляющих компаний в России. Если вы хотите поучаствовать в улучшении безопасности наших сервисов и предоставлении услуг, имеете опыт в нахождении уязвимостей, наша компания приглашает вас к сотрудничеству в рамках bug bounty программы.

За найденные уязвимости можно получить до 100.000 рублей.
👍7