Burp suite: швейцарский армейский нож для тестирования веб-приложений
Содержание:
- AuthMatrix и Autorize
- J2EEScan
- SQLiPy
- Where to start with a whole domain at your fingertips?
- What is Burp Suite?
- Burp SSL Scanner
- Burp Suite Professional
- License
- ActiveScan++
- SHELLING
- Построение эффективных автоматизированных систем, оптимизированных под веб-приложение
- Burp Vulners Scanner
- Freddy the Serial(isation) Killer
- Getting Started (or «How To Run burp-rest-api»)
- An integrated platform specially intended for users who need to perform security testing of web applications, while crawling content and functionality
- Empowerment through training and discovery
AuthMatrix и Autorize
Два плагина, которые, по сути, делают одно и то же и различаются только возможностями детальной настройки и интерфейсом. Нужны они для того, чтобы проверять корректность логики распределения прав доступа в приложении. На сегодняшний день редко можно встретить какой-нибудь сервис, в котором не используется система различных ролей пользователей. Так вот, частенько бывает, что администраторские разделы доступны и обычным пользователям. Чтобы автоматизировать такие проверки, я использую эти два плагина.
AuthMatrix можно назвать старшим братом Autorize: у него чуть больше опций и немного более гибкая настройка тестирования. Обычно мне хватает AuthMatrix.
Логика работы следующая. Логинимся в систему, например от администратора. Снифаем трафик по ходу того, как бегаем по разным разделам, доступным выбранному юзеру. Потом на вкладке Target или Proxy выбираем необходимые запросы и отправляем их в плагин через соответствующий пункт в контекстном меню.
Отправляем запросы в плагин AuthMatrix
После этого переходим на вкладку с плагином, где видим наши запросы.
Вкладка плагина AuthMatrix
Теперь нужно добавить пользователей. Это можно сделать, если нажать на кнопку New User и ввести имя пользователя. Теперь в таблице Cookies нужно заполнить соответствующие данные для каждого из созданных пользователей. Куки, которые вы здесь укажете, будут добавлены к тем, что находятся в запросе.
Настройка плагина AuthMatrix
В примере я планирую проверить доступность страниц установки и настройки безопасности от админа (пользователь root) и анонима (пользователь guest). Поэтому куки для Guest пусты.
После этого я создал название ролей и поставил галочки для соответствующих пользователей. Почему существует возможность добавлять и роли, и пользователей? Это нужно, чтобы проверять те ситуации, когда определенные функции доступны только конкретному пользователю. Например, два разных юзера в системе должны видеть только свои приватные сообщения.
Теперь надо отметить чекбоксы соответствия: какие пользователи или роли какие запросы могут выполнять. В моем случае оба запроса могут выполнять только админы, что я и указал. После этой настройки остается только нажать на кнопку Run и чуток подождать.
Результаты работы плагина AuthMatrix
Результаты тестирования отображаются в таблице в виде цветовых индикаторов. Зеленый цвет означает, что поведение нормальное, ответ от сервера был проверен с помощью регулярного выражения, указанного в Response Regex, и он соответствует ожиданию. То есть в ответе для пользователя Root (роль админа) он попадает в regex, а в ответе для пользователя Guest (роль анонима) — нет.
Детали проверки системы ролей плагином AuthMatrix. Все ОK
Красный цвет сигнализирует о том, что в этом месте, возможно, существует уязвимость (то есть ответ в обоих случаях соответствует регулярному выражению).
Детали проверки системы ролей плагином AuthMatrix. Возможная уязвимость!
Существует еще и синий цвет, его вы увидите в том случае, когда расширение предполагает, что результат может быть ложноположительным.
Помимо куки, плагин поддерживает кастомные заголовки. Это позволяет покрыть случаи, когда авторизация выполняется при помощи различных токенов, например Bearer. Данный столбец можно добавить при помощи кнопки New Header.
Кроме этого есть возможность задать сложные цепочки действий. Например, если необходимо получать для каждого запроса валидный токен CSRF. Для добавления звена такой цепочки есть кнопка New Chain. Подробнее об этом можно в официальном репозитории плагина.
Autorize добавляет ко всему этому еще несколько интересных опций. Например, в нем можно автоматически проверять все проходящие через прокси запросы.
Автоматическая проверка всех входящих запросов в плагине Autorize
Оба расширения могут сохранять текущее состояние и настройки в отдельный файл, а Autorize умеет генерировать отчеты с результатами тестирования.
J2EEScan
Напоследок парочка расширений для любимой Java. Первый — это очередной плагин-старичок авторства Энрико Миланезе (Enrico Milanese). Обнаруживает и тестирует различные J2EE (Java 2 Enterprise Edition) приложения на наличие известных уязвимостей. В арсенале расширения имеются такие старые добрые дыры, как JBoss SEAM Remote Command Execution (CVE-2010-1871), Expression Language Injection (CVE-2011-2730) и относительно новые вроде Apache Struts: S2-032 (CVE-2016-3081). Учитывая то, насколько сильно сопротивляются обновлениям энтерпрайз-решения, плагин бывает довольно полезен и периодически выручает интересными находками.
Плагин не требует никаких настроек, дополнительной возни не просит. Устанавливаем его, и он тихонько отрабатывает во время активного сканирования.
Информация, обнаруженная плагином J2EEScan
SQLiPy
SQLiPy помогает с автоматизацией SQL-инъекций. Данный плагин также работает с API — тем, что предоставляет популярная утилита SQLMap. Думаю, что каждый, кто когда-либо возился с SQLi, слышал про эту тулзу. Однако не все знают, что она может работать в режиме REST API. Для этого ее нужно запустить таким образом:
Хочу обратить ваше внимание, что существует возможность запуска API прямо из интерфейса расширения. Но даже сами разработчики рекомендуют запускать его из командной строки
Настройка плагина SQLiPy
Затем во вкладке SQLMap Scanner в настройках плагина нужно указать адрес нашего API. Теперь все, что от вас требуется, — это выбрать подопытный запрос, кликнуть правой кнопкой мыши внутри его тела и выбрать пункт SQLiPy Scan.
Выбор запроса для отправки его в SQLMap
Снова откроется вкладка SQLMap Scanner, но уже с заполненными данными по запросу. Тут вы можете указать целую вязанку параметров, которые доступны в утилите SQLMap. После настройки нажимаем Start Scan. Если атака успешна, то ее детали будут видны в панели Issues.
Найденная уязвимость типа SQL-инъекция в панели Issues
Если же вас интересует более подробная информация о процессе сканирования, то ее можно отыскать на закладке SQLMap Logs. Выбирайте необходимый процесс и жмите кнопку Get.
Результаты сканирования в SQLiPy
Как вы уже наверное поняли, плагин поддерживает несколько процессов сканирования. Лично у меня на выделенном сервере тусуется такой вот API, и, не отрываясь от исследования приложения, я периодически отправляю на него подозрительные запросы через SQLiPy.
Where to start with a whole domain at your fingertips?
Nicholas HandyFollow
Jul 31, 2018 · 7 min read
So you want to start web application security testing or penetration testing? Every security researcher has their favorite tools and one that is sure to top many of their lists of favorites is Burp Suite. In order to begin testing a website for vulnerabilities we must understand what attack vectors are available to us. Burp allows us to list out each domain in our scope and let’s us modify our interactions with the webpage by acting as a middle-man between the user and website.
What is Burp Suite?
Burp Suite is a comprehensive platform for web application security testing. It can be used for detailed enumeration and analysis of web applications. The tool can simply intercept HTTP/S requests and act as a middle-man between the user and web pages. Necessary details are captured from the website as the user navigates around the web. This information provides insight in the security of a web application.
Burp SSL Scanner
Этот плагин проверит на прочность защищенное соединение с сервером. Здесь довольно внушительный список проверок, которые позволяют определить типичные слабые места в протоколах SSL и TLS. Тут вам и POODLE, и устаревшие версии SSL, и BREACH, и старинный Heartbleed (да, он еще встречается). Полный список вы можете найти на страничке репозитория на GitHub. Почти все проверки были портированы с небезызвестного скрипта testssl.sh. Теперь не нужно отрываться от Burp, чтобы выполнить эти тесты. Надо отметить, что расширение не поддерживает протокол TLS версии 1.3.
У плагина есть свой мини-интерфейс на отдельной вкладке SSL Scanner. Использовать его довольно легко. Вбиваем требуемый хост в поле Target и жмем кнопку Start Scanning.
Вкладка плагина SSL Scanner для тестирования защищенного соединения
По дефолту проверяется 443-й порт, но ничто не мешает указать кастомный порт через двоеточие.
Результаты сканирования сервера через плагин SSL Scanner
Вы также можете отправлять в плагин любой URL, если из контекстного меняю выберете пункт Send URL to SSL Scanner.
Из минусов — не хватает кнопки «Остановить сканирование», так как оно имеет тенденцию затягиваться, особенно когда сервер очень хорошо отвечает на запросы.
Burp Suite Professional
Burp Suite is an integrated platform for performing web application security testing. It is not a point-and-click tool, it is designed to be used by testers in manual mode to support the testing process. With a little effort, anyone can start using key Burp features to test the security of their applications. Some advanced Burp features will require further learning and experience. All this investment in learning is worth the time – the Burp user-controlled workflow is much more efficient for performing web security testing and will give you much more features than any conditional “point and click” scanner. Burp is intuitive and user friendly and the best way to get started is with action.
There are two versions of Burp: Burp Suite Free Edition and Burp Suite Professional. As the name implies, Burp Suite Free Edition is free. It allows you to fully analyze transmitted traffic and perform manual vulnerability checks. The professional version has a built-in automated vulnerability scanner and additional features. For training purposes, the free version is sufficient.
Burp Suite is an application written in Java. It requires a Java virtual machine.
To start Burp we will start by checking if Java is installed:
Open the command line prompt: On Windows, press Win+x, select “Command prompt” there. On Mac OS X on the system dock, click on Applications, then Utilities, then Terminal.app. On Linux, look for what is called a “console” or “terminal” among your applications.
In the command line window, type: java -version. If Java is installed, you will see a message like the java version “1.8.0_121”. To run Burp you need a Java version 1.6 or later. If you don’t have Java installed, download the latest Java Runtime Environment (JRE), run the installer, open the terminal after the end and try again.
Features:
- Burp Proxy
- Burp Spider
- Burp Repeater
- Burp Sequencer
- Burp Decoder
- Burp Comparer
- Burp Intruder
- Burp Scanner
- Save and Restore
- Search
- Target Analyzer
- Content Discovery
- Task Scheduler
- Release Schedule
How to use Crack and Download Burp Suite Professional or how to get the full version:
- Download Burp Suite Professional Pro (archive) from the link below
- Unzip and install the installer as usual
- Run the application
- Run keygen (if the antivirus has removed keygen, disable it before starting the installation)
- Copy the data generated by keygen in the program registration field.
- Enjoy it!
Screenshots:
Password for archiv: kolompc.com
License: ShareWare
License
Copyright (c) 2016 VMware, Inc. All Rights Reserved.
Copyright (c) 2020 Doyensec LLC. All Rights Reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met: Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS «AS IS» AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ActiveScan++
Об этом расширении, я думаю, слышал каждый пользователь Burp Suite. Он написан одним из штатных разработчиков PortSwigger Джеймсом Кеттле (James Kettle), а первый коммит датирован 23 июня 2014 года. Но обновляется плагин и по сей день, что встречается нечасто.
ActiveScan++ расширяет стандартный перечень проверок, которые выполняются при работе активного и пассивного сканера. Он умеет находить такие уязвимости, как cache poisoning, DNS rebinding, различные инъекции в темплейты и экспрешены, а также делает дополнительные проверки для обнаружения XXE-инъекций и выявляет популярные баги типа shellshock, выполнение произвольного кода в Struts2 (CVE-2017-5638) и тому подобные.
Никаких настроек расширение не имеет, оно просто тихонько работает и отправляет сообщения о найденных проблемах в панель Issues.
RCE-уязвимость Struts2 CVE-2017-9805, найденная с плагином ActiveScan++
Кстати, на всякий случай расскажу, что если вам нужно натравить активный сканер только на определенные места в запросе, то запрос нужно добавить в Intruder, расставить в нужных позициях, и после чего нажать правой кнопкой мыши и выбрать Actively scan defined insertion points.
Указываем кастомные места в запросе для активного скана
SHELLING
Расширение SHELLING — это отличный инструмент для обнаружения уязвимостей типа RCE. Может использоваться как в автоматическом, так и в ручном режиме. Помимо простых тестов, пытается выполнить обход всевозможных фильтров пользовательских данных.
На момент написания статьи в магазине расширений Burp Suite была старая версия этого плагина. Поэтому скачивайте из репозитория актуальную и устанавливай ручками.
После успешной инсталляции появится новая вкладка под названием SHELLING. Она, в свою очередь, содержит еще пачку табов, в которых расположены многочисленные настройки расширения.
Настройки плагина SHELLING
Здесь можно выбрать и тип атакуемой ОС, и пейлоад, который будет использоваться для получения отстука об успешно выполненной команде, переключение режима сканирования и многое-многое другое.
Также возможно выгрузить пейлоады в виде текстового файла и использовать их в Intruder или в любой другой утилите.
Вкладка с возможностью сохранения пейлоадов в плагине SHELLING
Описать все настройки в одной статье — дело проблематичное. Поэтому оставляю вам это на домашнее изучение, благо в официальном репозитории имеется исчерпывающий мануал по всем доступным функциям расширения.
Построение эффективных автоматизированных систем, оптимизированных под веб-приложение
Для того, чтобы автоматизированная система была максимально эффективна, она должна обладать следующими возможностями:
- расширение функционала, в том числе с помощью сторонних модулей;
- мультиформатность результатов тестирования;
- импорт/экспорт результатов тестирования;
- стандартизированные результаты тестирования;
- возможность сравнения результатов;
- возможность интеграции системы в более сложную.
Эти факторы позволят построить систему, отвечающую вашим требованиям и целям.
В качестве примера «готовой системы» могу привести описанную мной ранее Sparta. Для того, чтобы тестирование было максимально эффективным, контролируемым, а также для комфортной валидации уязвимостей необходимо учитывать все компоненты системы, архитектуру тестируемого приложения и связность решений.
Burp Vulners Scanner
Данный плагин показывает публичные уязвимости для приложений, обнаруженные в трафике, который проксирует Burp. Расширение было написано Иваном Ёлкиным, одним из сооснователей сервиса vulners.com. Представляет собой, по сути, прослойку между Burp и API этого отличного агрегатора уязвимостей.
Работает все предельно просто. Настраиваем прокси-сервер, а затем ходим по сайту или тыкаем в веб-приложение. В это время плагин анализирует трафик, находит в нем маркеры установленного на удаленной машине софта и детектирует версии. Сюда входят веб-серверы (nginx, Apache, Tomcat и так далее), всевозможные CMS (WordPress, Drupal, Joomla и другие) и прочее. Затем обнаруженная информация отправляется в виде запросов к API vulners.com, а нам в красивом окошке выводится список доступных уязвимостей.
Результат поиска уязвимостей с помощью плагина Vulners Scanner
В настройках можно изменять существующие или добавлять новые правила для определения и поиска уязвимых приложений.
Просмотр правил для определения и поиска уязвимых приложений
В целом Vulners Scanner — очень удобная штука. Пока я вручную изучаю цель, сканер на автомате ищет потенциальные уязвимости.
Freddy the Serial(isation) Killer
И последний плагин, о котором я хотел рассказать, — Freddy the Serial(isation) Killer.
В последнее время стали очень популярны всевозможные атаки на десереализацию и шаблонизаторы. Особенно отличились на этом поприще некоторые Java-проекты типа Spring, WebLogic, Apache Commons. Это расширение как раз и помогает обнаружить проблемы десериализации и демаршалинга в разных библиотеках и API.
Здесь реализована поддержка разных форматов пейлоада, в том числе YAML и AMF. За основу была взята утилита marshalsec. Полный список поддерживаемых целей вы можете посмотреть на странице репозитория. Хочу также отметить, что, помимо Java, плагин умеет атаковать десериализаторы .NET, такие как FastJson, JavascriptSerializer, XmlSerializer.
Работает «Фредди» во время автоматического сканирования. Никак дополнительно настраивать его не надо, а все найденные уязвимости можно посмотреть в панели Issues.
Getting Started (or «How To Run burp-rest-api»)
- Download the latest burp-rest-api JAR (e.g. ) and the launcher script from the release page
- Place them within a directory having the original Burp Suite Professional JAR (e.g. burpsuite_pro_v2020.2.1.jar). Please note that the actual JAR filename doesn’t matter since the launcher will include all JARs in the classpath
- On Linux and Mac, mark the launcher as executable using
- Bootstrap the system using either or , depending on the operating system
Configuration
By default, Burp is launched in headless mode with the Proxy running on port 8080/tcp (localhost only) and the REST endpoint running on 8090/tcp (localhost only).
To run Burp in UI mode from the command line, use one of the following commands:
On Java <= 1.8, it is also possible to execute burp-rest-api in the following way:
To modify the server port on which the API is accessible, use one of the following commands:
or
You can also modify the server address, used for network address binding:
or
Command Line Arguments
The following command line arguments are used only by the extension to configure the run mode and port number.
: Loads the Burp jar dynamically, and expose it through REST APIs. This flag works on Java <= 1.8 only! Use the script for newer java versions.
: Loads the given Burp extensions during application startup. This flag can be repeated.
: The REST API endpoint is available at the given port number.
works as short hand argument.
: Network address to which the REST API endpoint should bind.
works as short hand argument.
: When set to false, runs Burp Suite in UI mode. Otherwise runs Burp Suite in headless
mode. Default value: System Property (java.awt.headless)
Command line arguments passed to the executable burp-rest-api JAR are forwarded to the Burp Suite JAR. Hence, one may
pass the following Burp Suite JAR command line arguments to the burp-rest-api JAR for the same functionality as if
passing to the Burp Suite JAR directly.
: Opens the specified Data Project File used for keeping the state of the tool. The file will be created as a new project if it doesn’t
exist already.
: Opens the project using the options contained in the selected Project Configuration File. To load multiple project configurations, this argument can be passed more than once with different values.
: Opens the project using the options contained in the selected User Configuration File. To load multiple user configurations, this argument can be passed more than once with different values.
Default Burp Configuration
If the burp-rest-api JAR is launched without the , or arguments, then Burp Suite is
launched with a temporary project file and some default configuration. The temporary project file gets created upon
launch of Burp Suite, and gets deleted at the end of the run.
For the default configuration used to launch Burp Suite, please refer to the files burp-default-project-options.json and
burp-default-user-options.json inside the JAR under the static folder.
Client
This project also comes with a client (BurpClient.java) written in Java for use in other projects. Refer to the
Integration Test file BurpClientIT.java for the usage of BurpClient.java.
An integrated platform specially intended for users who need to perform security testing of web applications, while crawling content and functionality
What’s new in Burp Suite 2020.8.1:
- After several months of live testing, we are pleased to announce that this release enables browser-powered scanning by default.
- Browser-powered scanning
- By default, Burp Scanner will now perform all navigation using an embedded Chromium browser, during both crawl and audit. This approach enables the scanner to accurately handle JavaScript and other navigational structures that modern browsers can. This has the potential to dramatically improve the coverage of the scan during both the crawl and audit phases.
- To run browser-powered scanning efficiently, we recommend a machine with at least 2 CPU cores and 8 GB RAM. Burp Scanner automatically checks whether your machine appears to meet these requirements and will use the embedded browser if possible. Otherwise, scans will revert to the previous crawling engine.
Read the full changelog
Note: Beta updates are only available to professional users.
Burp Suite Free Edition is a reliable and practical platform that provides you with a simple means of performing security testing of web applications. It gives you full control, letting you combine advanced manual techniques with various tools that seamlessly work together to support the entire testing process.
The utility is easy-to-use and intuitive and does not require you to perform advanced actions in order to analyze, scan and exploit web apps. It is highly configurable and comes with useful features to assist experienced testers with their work.
The main window displays all the available tools you can choose from and set each one’s settings the way you want.
Being designed to work alongside your browser, the application functions as an HTTP proxy, thus all the HTTP/s traffic from your browser passes through the utility. This way, if you want to perform any kind of testing, you need to configure the browser to work with it.
The first thing you need to do is to confirm that the app’s proxy listener is active. Simply navigate to the Proxy tab and take a look in the Proxy Listeners section. You should see an entry in the table with the Running check box ticked. The second thing you are required to do is to configure your browser to use the app’s proxy listener as its HTTP proxy server. Finally, you need to configure the browser to be able to send HTTP requests through the app without problems.
The previously mentioned utility gives you complete control over all of the actions you want to perform and get detailed information and analysis about the web applications you are testing. Using tools such as Intruder, Repeater, Sequencer and Comparer you are able to carry out different actions with ease.
With the help of Spider, you can crawl an application to locate its content and functionality. You are able to add new scope by selecting the protocol and specifying the host name or the IP range. Then the utility monitors all the transferred bytes and queued requests.
The Intruder tool enables you to perform attacks against web apps. Simply set the host name and the port number, define one or more payload sets and you are done. You can also use the HTTP protocol by checking the proper box from the Target tab.
Another tool that automates testing tasks is called Sequencer, which analyzes the quality of randomness in an application’s session tokens. Firstly, you need to load at least 100 tokens, then capture all the requests.
Overall, Burp Suite Free Edition lets you achieve everything you need, in a smart way. It helps you record, analyze or replay your web requests while you are browsing a web application.
Empowerment through training and discovery
PortSwigger’s free online training platform is available to all — to assess skills, hone knowledge, or learn something new. Regularly updated with new labs, such as
server-side template injection — learn about, and exploit, the latest vulnerabilities.
Discover the latest application security knowledge, produced by a
world-class team, 100% free.
Get started with the Web Security Academy
Develop new skills with Burp Suite Community Edition’s essential manual tools, the ideal companion for getting started on our Web Security Academy labs. Laying the ground for
the next generation of cybersecurity talent, and providing an accessible gateway to the Burp Suite
family. Perfect for hobbyists and students.
Download Burp Suite Community Edition