Процесс выявления несвязанных, неиспользуемых или просто скрытых параметров, которые принимаются веб-приложением и могут позволить пользователю управлять поведением приложения с помощью этих скрытых параметров, часто называют 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
https://paragraph.xyz/@cybred/supply-chain-bug-bounty
Атака на цепочку поставок в рамках CI/CD и бизнес-процессов компании. Стоит обратить внимание в рамках реализации "недопустимых событий" или APT-bounty.
Атака на цепочку поставок в рамках CI/CD и бизнес-процессов компании. Стоит обратить внимание в рамках реализации "недопустимых событий" или APT-bounty.
Cybred
Как мы заработали $50 000 на взломе цепочки поставок
В 2021 году я всё ещё был в начале своего пути в наступательной безопасности. Я уже взломал несколько компаний и стабильно зарабатывал на Bug Bounty — этичной практике поиска уязвимостей, за которые исследователи получают денежные вознаграждения. Однако я…
👍1
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
https://portswigger.net/blog/the-future-of-security-testing-harness-ai-powered-extensibility-in-burp-nbsp
👍5👎1
Чтобы решить эту проблему, команда PortSwigger создала шпаргалку со всеми известными пэйлоадами. В итоге в вашем арсенале теперь есть интерактивное веб-приложение, которое автоматически настраивает свои параметры в зависимости от вашего контекста.
• Обход списка разрешенных доменов: разработан для атак с путаницей доменов. Вы можете настроить тестовые домены, введя разрешенные и атакующие домены соответственно.
• Поддельные относительные URL-адреса: сюда входят допустимые браузером URL-адреса, которые могут быть неправильно проверены на стороне клиента.
• Loopback Address: этот словарь включает различные представления адресов IPv4, IPv6 и их нормализации.
Не можете докрутить SSRF, мисконфиг CORS или open redirect
#шпаргалки
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
27 февраля в московском офисе
Программа митапа уже на сайте, а вот небольшой спойлер:
И конечно, афтепати!
Обсудим доклады, обменяемся идеями и классно проведем время.
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.
Forwarded from Перевод энтузиаста | Информационная безопасность
#Статья
Как найти свой первый легкий баг в Bug Bounty (Пошаговое руководство) на реальных сайтах
👉 В статье разобраны простые шаги для новичков в Bug Bounty, включая выбор правильной цели, поиск уязвимостей на React-сайтах, тестирование OTP Rate-limiting и утечек приватных ключей, чтобы быстро найти свой первый баг.
⏱️ Время чтения: 5 минут
Как найти свой первый легкий баг в Bug Bounty (Пошаговое руководство) на реальных сайтах
👉 В статье разобраны простые шаги для новичков в Bug Bounty, включая выбор правильной цели, поиск уязвимостей на React-сайтах, тестирование OTP Rate-limiting и утечек приватных ключей, чтобы быстро найти свой первый баг.
⏱️ Время чтения: 5 минут
Telegraph
Как найти свой первый легкий баг в Bug Bounty (Пошаговое руководство) на реальных сайтах
Ну что ж, я вернулся! После долгого перерыва разбираем одну из самых популярных тем — как найти самые простые баги на сайтах, которые иногда даже приносят награды! 💰 📌 Эти уязвимости настолько просты, что их может найти каждый, даже без опыта. 📌 Гарантирую…
👍1
Будьте первым и найдите уязвимости в УК "Первая"!
УК «Первая» - одна из старейших, крупнейших и наиболее успешных управляющих компаний в России. Если вы хотите поучаствовать в улучшении безопасности наших сервисов и предоставлении услуг, имеете опыт в нахождении уязвимостей, наша компания приглашает вас к сотрудничеству в рамках bug bounty программы.
За найденные уязвимости можно получить до 100.000 рублей.
УК «Первая» - одна из старейших, крупнейших и наиболее успешных управляющих компаний в России. Если вы хотите поучаствовать в улучшении безопасности наших сервисов и предоставлении услуг, имеете опыт в нахождении уязвимостей, наша компания приглашает вас к сотрудничеству в рамках bug bounty программы.
За найденные уязвимости можно получить до 100.000 рублей.
👍7