Как мы, исследователи безопасности, можем добиться точного поиска, глубокого изучения и нахождения высококачественных отчетов об уязвимостях.

Часть 1. Предварительная подготовка - Инструкции перед поиском ошибок

1.1 Четыре необходимых приготовления перед получением вознаграждения за ошибку

1. Понимание распространенных уязвимостей

  • SQL-инъекция (SQLi): это метод атаки, при котором злоумышленники манипулируют запросами базы данных, вставляя вредоносный код SQL в приложение. Это может привести к утечкам данных, подделке данных или выполнению несанкционированных действий.

  • Межсайтовый скриптинг (XSS): когда веб-приложение не может должным образом фильтровать данные, отправленные пользователями, злоумышленники могут внедрить вредоносный код скрипта в веб-страницы. Это позволяет злоумышленникам контролировать браузер пользователя и выполнять такие действия, как кража информации о сеансе или инициирование кликджекинга.

  • Межсайтовая подделка запросов (CSRF): это атака, которая использует личность пользователя для выполнения несанкционированных действий. Злоумышленники создают URL-ссылку, которая при нажатии пользователем выполняет конфиденциальные операции без его ведома, такие как изменение настроек учетной записи или перевод средств.

  • Удаленное выполнение кода (RCE): если приложение имеет уязвимости безопасности, злоумышленники могут выполнить произвольный код в целевой системе, отправив определенные запросы или параметры, тем самым получив полный контроль над системой.

  • Уязвимости включения файлов: это относится к случаям, когда приложение не может должным образом проверить и отфильтровать предоставленные пользователем пути к файлам, что приводит к тому, что злоумышленники могут контролировать содержимое включенных файлов. Это может позволить злоумышленникам читать, изменять или удалять конфиденциальные файлы или даже выполнять вредоносный код.

2. Использование инструментов взлома

  • Nessus: Nessus — широко используемый сканер уязвимостей, который может автоматически обнаруживать хосты в сети и идентифицировать различные операционные системы, службы и ошибки конфигурации. Nessus поддерживает несколько стратегий сканирования, включая сканирование портов, снятие отпечатков пальцев операционной системы, обнаружение слабых паролей и многое другое.

  • OpenVAS: OpenVAS — это система оценки уязвимостей с открытым исходным кодом, которая предоставляет комплексное решение от сканирования уязвимостей до анализа рисков. Она включает в себя мощный механизм сканирования, базу данных уязвимостей и пользовательский интерфейс для управления задачами сканирования и отчетами.

  • Burp Suite: Burp Suite — популярный инструмент тестирования безопасности веб-приложений, подходящий для ручных и автоматизированных тестов на проникновение. Он объединяет несколько модулей, таких как прокси-сервер, сканер и детектор уязвимостей, которые могут помочь тестировщикам обнаружить и использовать уязвимости в веб-приложениях.

  • Metasploit: Metasploit — это мощная среда тестирования на проникновение, которая содержит большое количество известных эксплойтов уязвимостей, а также поддерживает создание пользовательских кодов эксплойтов. Он также включает в себя генератор полезной нагрузки, сканер уязвимостей и инструменты для управления проектами тестирования на проникновение.

  • OWASP ZAP (Zed Attack Proxy): OWASP ZAP — это бесплатный инструмент тестирования безопасности веб-приложений с открытым исходным кодом. Он объединяет прокси-сервер, сканер и функции отчетов об уязвимостях, которые могут помочь тестировщикам выявить и устранить проблемы безопасности в веб-приложениях.

  • Acunetix: Acunetix — это коммерческий инструмент сканирования безопасности веб-приложений, который предлагает комплексные возможности оценки веб-безопасности. Он поддерживает различные технологии сканирования, включая динамический и статический анализ, а также углубленный обзор кода.

  • Hakrawler: Hakrawler — это легкий инструмент для тестирования на проникновение, ориентированный на автоматическое обнаружение уязвимостей в веб-приложениях. Он использует технологию машинного обучения для выявления потенциальных проблем безопасности.

  • Gobuster: Gobuster — это инструмент для подбора каталогов и файлов, особенно подходящий для протоколов HTTP и FTP. Он может помочь обнаружить скрытые ресурсы и потенциальные уязвимости.

  • Sqlmap: Sqlmap — это инструмент, специально разработанный для атак с использованием SQL-инъекций. Он может автоматически обнаруживать и использовать уязвимости SQL-инъекций. Он поддерживает различные системы баз данных, такие как MySQL, PostgreSQL и другие.

3. Освоение технических знаний по безопасности

Языки программирования

  • Базовые языки: владеть как минимум одним языком программирования, например Python, Java или C/C++, для написания скриптов, разработки инструментов или обратного проектирования.

  • Языки веб-разработки: быть знакомым с HTML, CSS, JavaScript и т.д., чтобы понимать работу веб-приложений и проводить тестирование на проникновение.

Основы сетевой безопасности

  • Сетевые протоколы: понимание работы TCP/IP, HTTP, HTTPS, SSL/TLS и других протоколов.

  • Сетевая архитектура: знание общих сетевых архитектур и моделей безопасности, таких как модель OSI, модель TCP/IP и т.д.

Операционные системы и безопасность системы

  • Linux/Unix: владение навыками работы с системами Linux/Unix и понимание их функций безопасности.

  • Безопасность Windows: понимание конфигураций безопасности и управления системами Windows.

Безопасность веб-приложений

  • Тестирование на проникновение: освоение процесса и методов тестирования на проникновение веб-приложений, включая, помимо прочего, такие атаки, как SQL-инъекции, XSS, CSRF и т.д.

  • Аудит кода: научитесь выявлять и устранять уязвимости безопасности в веб-приложениях.

Безопасность мобильных приложений

  • Безопасность Android/iOS: изучите среду разработки и функции безопасности мобильных приложений, включая аудит кода, обратную разработку и т.д.

1.2 Начало действий всегда важнее, чем воображение!

Не начинайте веб-хакинг сейчас, начните со ВЧЕРА! Подготовьтесь к Bug Bounty всего за 4 шага:

  1. В течение следующих двух месяцев, когда вы начинаете использовать браузер, всегда перехватывайте весь трафик через Burp.

  2. Начните обучение на https://portswigger.net/web-security, выбрав определенный тип ошибки, например, Broken Access Control

  3. Продолжайте читать раскрытые отчеты на https://hackerone.com/hacktivity/

  4. Не попадайтесь в цикл обучения, начните взламывать сегодня!

Часть 2. Практическая стратегия - Идеи действий при поиске ошибок

2.1 Примените «стратегию голубого океана» к взлому Android!

Сначала начните с динамического анализа (это упрощает начало). Почти 50% приложений Android можно перехватить без SSL Pinning, не боясь этого.

Затем найдите проблемы с контролем доступа, например, сначала IDOR — APK с большей вероятностью будут уязвимы для BAC. Наконец, поместите свою полезную нагрузку XSS в приложение Android и проверьте, отражается ли она в его веб-приложении — я нашел много

Дополнительный совет: не помещайте свою полезную нагрузку XSS в графический интерфейс APK напрямую, вставьте ее через Burp с помощью перехвата — иногда фильтр приложений заменяет вредоносный код. [Моя первая награда Android появилась благодаря этому подходу]

2.2 Найдите вдохновение для награды за ошибки в объявлениях CVE

Когда вы ищете последние CVE, начните с создания всеобъемлющего набора данных, который включает все разведывательные данные из ваших программ. Это будет служить вам точкой отсчета.

Затем, каждый раз, когда выпускается новый CVE, просматривайте свой набор данных, чтобы определить любые технологии или продукты, которые могут быть уязвимы. Вы можете сделать это с помощью инструментов обнаружения технологий, таких как httpx, а затем выполните поиск конкретной технологии или продукта, упомянутых в CVE.

После того, как вы определили потенциальные случаи, следующим шагом будет разработка эксплойта. Это может быть скрипт или шаблон, предназначенный для использования CVE. Запустите этот эксплойт на уязвимых технологиях или продуктах, чтобы увидеть, подвержены ли они CVE.

2.3 Не игнорируйте уязвимости аутентификации на основе OAuth или SAML

Никогда не пропускайте аутентификацию на основе OAuth или SAML. Большинство исследователей игнорируют их из-за их сложности. Даже разработчикам сложно правильно их настроить. Вот почему они наиболее уязвимы. Вы можете найти несколько хороших обходов аутентификации и также избежать дубликатов.

Часть 3. Руководство по действию - Практические навыки поиска ошибок

3.1 Шесть важных действий выдающихся исследователей

1. Безопасные методы кодирования

Проверка ввода и очистка вывода

  • Проверка ввода: выполняйте строгую проверку всех пользовательских вводов, чтобы гарантировать, что данные соответствуют ожидаемому формату и диапазону. Избегайте доверять пользовательскому вводу, даже в, казалось бы, безопасных средах.

  • Очистка вывода: очищайте и кодируйте все выводы должным образом, чтобы предотвратить атаки межсайтового скриптинга (XSS). Например, избегайте HTML, JavaScript и других скриптов.

Принцип наименьших привилегий

  • Минимизация привилегий: назначайте наименьшее количество привилегий, необходимых компонентам для выполнения определенных задач. Избегайте запуска неадминистративных задач с административными привилегиями.

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

Использование безопасных библиотек и фреймворков

  • Выбор библиотек и фреймворков: отдавайте предпочтение библиотекам и фреймворкам с хорошей репутацией в области безопасности. Регулярно обновляйте зависимости, чтобы получать последние исправления безопасности.

  • Обзор кода: проводите обзоры кода для проверки известных уязвимостей безопасности или небезопасных методов кодирования.

Стандарты безопасного кодирования

  • Соблюдайте стандарты кодирования: следуйте стандартам безопасного кодирования, признанным в отрасли, таким как Руководство по безопасному кодированию OWASP.

  • Обзор кода: реализуйте процесс обзора кода, чтобы убедиться, что код соответствует лучшим методам безопасности.

2. Используйте фреймворки тестирования веб-безопасности

  • OWASP Top Ten: стандартный документ по осведомленности для разработчиков и безопасности веб-приложений.

  • SANS CWE Top 25: список самых опасных ошибок программного обеспечения.

3. Изучите программы вознаграждения за ошибки

  • Участвуйте в таких платформах, как BI.ZONE, Bug Bounty Ru, Standoff365 и HackerOne, чтобы легально тестировать и получать награды за обнаружение уязвимостей.

4. Регулярно обновляйте знания

  • Будьте в курсе последних уязвимостей и методов взлома, следя за блогами по безопасности, посещая конференции и участвуя в хакерских сообществах.

5. Этические соображения

  • Всегда имейте явное разрешение перед тестированием веб-приложения.

  • Сообщайте об уязвимостях ответственно, чтобы избежать юридических проблем и повысить безопасность.

6. Практикуйтесь и экспериментируйте

  • Создайте собственную лабораторную среду для безопасного тестирования и эксплуатации уязвимостей. Понимая эти принципы и постоянно обучаясь, вы сможете эффективно защищать веб-приложения и ответственно заниматься этичным хакингом.

3.2 Добавьте 9 важных слов в свой список слов

Добавьте это в свой список слов, не пропустите:

/Signup

/Sign_up

/registration

/join

/enroll

/subscribe

/register

/Sign-Up

/v1/signup

Найдено внутреннее наказание только для сотрудников, запрашивающее учетные данные сотрудников–> fuzz –> найдена конечная точка регистрации –> зарегистрироваться как сотрудник 1/2.

3.3 Некоторые сочетания клавиш Burp Suite для повышения эффективности

Не используйте Burp Suite как Mediocre - Некоторые сочетания клавиш Burp Suite для эффективного взлома!

  • Ctrl+R Отправить запрос на вкладку «Repeater»

  • Ctrl+Shift+R Перейти на вкладку «Repeater»

  • Ctrl+Space Отправить запрос на сервер с вкладки «Repeater»

  • Ctrl+U URL Кодировать выбранный текст в Repeater

3.4 Поиск ошибок в URL - От сбора исторических URL до поиска критических ошибок

1. Используйте исторические URL для поиска ошибок

Используйте автоматизированные инструменты для сбора исторических URL из различных источников, команды:

  • Waybackurls: echo “http://example.com” | waybackurls > waybackurls.txt

  • gau (получить все URL-адреса): gau http://example.comgau_urls.txt

  • Waymore: waymore -i http://example.com -mode U -oU output.txt

  • Объединение и удаление дубликатов: cat waybackurls.txt gau_urls.txt waymore_urls.txt | sort -u > all_urls.txt

Вручную просмотрите собранные URL-адреса, чтобы определить уникальные и потенциально интересные конечные точки.

Используйте grep для категоризации URL-адресов на основе определенных ключевых слов, таких как конечные точки API, файлы JavaScript, файлы PHP, файлы конфигурации и т.д.

  • grep -i “/api/” all_urls.txt > api_urls.txt

  • grep -i “.js$” all_urls.txt > js_files.txt

  • grep -i “.php$” all_urls.txt > php_files.txt

  • grep -i “.config$” all_urls.txt > config_files.txt

Проверьте категоризированные URL-адреса на наличие потенциальных уязвимостей, таких как утечки PII, конфиденциальная информация в файлах JavaScript и т.д.

Конечные точки API: проверьте api_urls.txt на предмет конечных точек, которые могут раскрыть PII или другие конфиденциальные данные. Найдите открытые параметры, которые могут быть изменены для IDOR или других проблем с контролем доступа. Проверьте js_files.txt на наличие жестко закодированных учетных данных, ключей API или конфиденциальной информации.

Проверьте проверенные URL-адреса на наличие распространенных уязвимостей, таких как небезопасные прямые ссылки на объекты (IDOR), Broken Access Control (BAC) и другие.

2. Использование BurpJSLinkFinder для поиска критических ошибок

  • Установите BurpJSLinkFinder из вкладки Burp Suite Extender (профессиональная версия);

  • Настроив прокси-сервер Burp, откройте целевое веб-приложение в своем браузере и щелкните все возможные ссылки, кнопки и интерактивные элементы;

  • Теперь перейдите в BurpJSLinkFinder и проанализируйте собранные файлы js и конечные точки, найденные в файлах js;

  • Просмотрите список конечных точек, предоставленный BurpJSLinkFinder, и определите интересные конечные точки, такие как API, панели администратора, файлы конфигурации и другие потенциально конфиденциальные URL-адреса;

  • Откройте интересующие вас конечные точки в вашем браузере или Burp’s Repeater и наблюдайте за поведением каждой конечной точки.

Анализируя эти URL-адреса, вы можете обнаружить IDOR, BAC, раскрытие информации, XSS, CSRF и многие другие ошибки.

Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья, или просто оставить комментарий ниже. Спасибо.