В разведке работает простой принцип: чем глубже и качественнее вы ее проведете, тем больше шансов найти уникальные баги.
Почему разведка важна? Дело в том, что каждое веб-приложение по-своему уникально, поэтому подход «в лоб» вряд ли сработает. Мы собрали несколько недооцененных методов, которые можно использовать прямо сейчас и получить профит. При подготовке поста частично использованы материалы статьи Intigriti.
1️⃣ Использование таргетированных словарей для брута неиспользуемых и скрытых хостов, эндпойнтов API, роутов приложения или входных параметров
Собирать словарь под проект может быть важно, потому что каждый разработчик пишет код и называет эндпойнты в своем стиле. У кого-то может быть
/users, а у кого-то /show-all-users. Первый путь встретишь в любом словаре, а вот второй — нет. Однако он может встретиться в ходе разведки.➡️ Алгоритм простой:
• Собираем все домены, пути и параметры с помощью любимых инструментов (katana, URLFinder, waybackurls, LinkFinder, gau) и/или Burp Suite, сохраняем в файл.
• Используем unfurl для парсинга уникальных ключевых данных из stdin:
$ cat urls.txt | unfurl paths
/users
/orgs
/about
• Анализируем результат и обогащаем другими данными.
💡 CeWL также поможет спарсить ключевые слова с целевого ресурса для составления кастомного словаря.
2️⃣ Фаззинг API с использованием различных методов HTTP
Некоторые приложения принимают только определенные HTTP-методы, да и описание API не всегда под рукой. Упростите себе жизнь с помощью следующей команды:
$ ffuf -u https://api.example.com/PATH -X METHOD -w /path/to/wordlist:PATH -w /path/to/http_methods:METHOD
3️⃣ Сканирование с различными заголовками User-Agent
При сканировании или перехвате запросов используйте User-Agent, специфичный для мобильных устройств, а также попытайтесь обнаружить различия в ответах сервера и скрытые фичи приложения. Настроить прокси в Burp сможет даже новичок. В качестве альтернативы можно использовать gospider:
gospider -s "https://app.example.com" -c 3 --depth 3 --no-redirect --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 15_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 EdgiOS/46.3.30 Mobile/15E148 Safari/605.1.15" -0 mobile_endpoints. txt
4️⃣ Использование хешей фавиконов для поиска связанных активов
Если ваша цель — небольшая компания, у нее может не быть зарезервированного пула IP-адресов или она регулярно развертывает приложения в облачных сервисах. В этом случае мы все равно можем идентифицировать хосты, которые принадлежат цели, используя хеш фавикона:
• Получаем хеш из URL с помощью Favicon hash generator.
• Используем Shodan для поиска по хешу:
http.favicon.hash:<hash>
5️⃣ Поиск устаревших версий JavaScript-файлов
Анализируя интересный JS-файл, всегда просматривайте любые ранее заархивированные версии этого файла с помощью Wayback Machine или CLI-инструментов.
6️⃣ Мониторинг JavaScript-файлов
Если не хотите получить дубликат, отслеживайте изменения в JS-файлах и ищите баги в новом функционале первым. Вам помогут JSMon, Notify и другие инструменты.
7️⃣ Обнаружение скрытых параметров
Скрытые параметры могут позволить управлять поведением приложения и привести к успешной реализации различных сценариев атак. Для выполнения этой задачи помогут: Arjun, ParamSpider, Param-Miner, x8, ParamPamPam.







