Documentation
Guides
FAQ — Frequently Asked Questions
In Depth Features
Automate — the various options for automating ZAP
Authenticate — everything you need to know about authentication in ZAP
Docker — detailed information on ZAP’s Docker images
Internal Details
Constants — defined in the ZAP codebase that are exposed via the API and/or scripts
Internal Events — detailed information on the internal events ZAP publishes
Test Scans — the results of running ZAP vs well known deliberately vulnerable apps
Welcome to the OWASP Zed Attack Proxy (ZAP) Desktop User Guide.
This is available both as context sensitive help within ZAP and online at
https://www.zaproxy.org/docs/desktop/
ZAP is an easy to use integrated penetration testing tool for finding vulnerabilities in web applications.
It is designed to be used by people with a wide range of security experience and as such is ideal for
developers and functional testers who are new to penetration testing.
ZAP provides automated scanners as well as a set of tools that allow you to find security vulnerabilities manually.
ZAP can also be run in a completely automated way — see the ZAP website for more details.
If you are new to ZAP then its recommended that you look at the Getting Started section.
ZAP is a fork of the open source variant of the Paros Proxy.
See also
Getting Started | for details of how to start using ZAP | |
Features | for details of various features provided by ZAP | |
UI Overview | for an overview of the User Interface | |
Command Line | for the command line options available | |
Releases | for details of the changes made in ZAP releases | |
Credits | for the list of people who have contributed to ZAP |
External links
Main ZAP website | |
OWASP ZAP homepage | |
Wikipedia entry for proxies |
Official Videos
https://www.zaproxy.org/videos/ An ever growing collection of ZAP videos |
Сегодня почти у каждой организации есть собственный веб-сайт. Вместе с ростом интернета возрастают и атаки на веб-сайты, становясь все более серьезнее и масштабнее. Однако существует обширный список инструментов, которые могут производить сканирование и находить уязвимости в веб-приложениях. Одним из таких инструментов является сканер уязвимостей под названием OWASP ZAP.
OWASP ZAP — сканер веб-приложений, основанный на методике DAST (Dynamic Application Security Testing). В русском варианте этот метод принято называть методом тестирования «черного ящика». Методика позволяет обнаруживать проблемы безопасности в работающем приложении или веб-сайте при помощи их сканирования на известные уязвимости. К таким уязвимостям можно отнести SQL-инъекции, межсайтовый скриптинг (XSS), Clickjacking и т.д.
OWASP ZAP разработан и поддерживается одноименным проектом под названием OWASP (Open Web Application Security Project) — некоммерческой организацией, которая специализируется на создании статей, материалов, документации, инструментов и технологий, позволяющих разрабатывать приложения безопаснее, а также обеспечивать должный уровень информационной безопасности уже созданных приложений и сайтов.
В качестве преимуществ OWASP ZAP можно выделить:
-
Кроссплатформенность — поддержка всех основных ОС (Windows, Linux, MacOS);
-
Бесплатный проект с открытым исходным кодом;
-
Поддержка плагинов для расширения функциональности;
-
Возможность работы как через графический интерфейс (GUI), так и через интерфейс командной строки;
-
Обширный набор функций — от активного/пассивного сканирования и до сканирования API и AJAX;
-
Простота использования. Идеально подходит и для начинающих специалистов в ИБ и для профессионалов.
Установка
OWASP ZAP является кроссплатформенным ПО и может быть установлен на Windows, Linux и MacOS. Также запуск возможен в контейнере Docker. Для установки и запуска программы на Windows и Linux требуется заранее предустановленная Java версии 11 и выше. Установщик для MacOS уже включает в себя Java. Для запуска в контейнере Docker также заранее не нужна предустановленная Java. На официальном сайте находятся установщики и инструкции для каждой ОС.
Для Docker отдельно представлены образы со следующими тегами:
Stable — стандартная (обычная) версия;
Bare — минимальный версия. Содержит только самые необходимые функции. Идеально подходит для запуска в командной строке;
Weekly — версия, обновления для которой выходят каждую неделю;
Live — бета-версия. Содержит самый последний релиз.
В дистрибутивах Kali Linux до версии 2023.1 OWASP ZAP уже предустановлен в системе (при условии, что на этапе установке ОС в разделе Software selection был выбран пункт default recommended tools или large default selection plus additional tools, в противном случае установить OWASP ZAP необходимо вручную).
В качестве примера будет использоваться последняя актуальная версия 2.12.0 в ОС Kali Linux.
Принцип работы
При сканировании ZAP создает собственный прокси-сервер, через который обрабатываются все запросы на сканирование. ZAP включает в себя специальные поисковые роботы (краулеры), которые выполняют идентификацию уязвимостей. Прокси-сервер располагается между браузером пользователя и конечным веб-приложением. Схема работы изображена ниже.
Обзор основных функций графического интерфейса OWASP ZAP
После запуска программы отображается главное окно, в котором находятся следующие основные параметры:
1) Режимы сканирования
В OWASP ZAP существуют 4 режима сканирования:
Standard Mode — обычное сканирование;
Safe Mode — безопасное сканирование, позволяющее выполнять только те действия, которые не смогут навредить системе. В этом режиме не используются атаки на целевой сайт;
Protected Mode — защищенное сканирование, позволяющее имитировать потенциально опасные уязвимости;
ATTACK Mode — режим атаки, позволяющий, помимо сканирования, также выполнять атаки на потенциальный сайт/приложение.
2) Сайты
Здесь отображаются сайты, которые сканируются в данный момент или уже были просканированы. Также в данном разделе отображается полная структура сайта.
3) Раздел со сканированием
Основной раздел, в котором запускается сканирование сайта.
4) Результаты
Раздел с результатами располагается внизу и подразделяется на вкладки History, Search, Alerts, Output.
History — отображает список всех запросов в том порядке, в котором они были отправлены;
Search — позволяет производить поиск при помощи регулярных выражений в URL-адресах, запросах, ответах, заголовках;
Alerts — отображает найденные уязвимости в сканированном веб-сайте. Уязвимости разбиты на категории. Каждой найденной уязвимости присваивается степень критичности. Описание данного раздела будет рассмотрено далее;
Output — отображает различные информационные сообщения. Например, трассировку стека, ошибки и другую отладочную информацию.
Плагины
OWASP ZAP поддерживает установку сторонних плагинов, благодаря чему можно существенно расширить функциональность программы. Для перехода в раздел Плагины необходимо щелкнуть по значку с названием Manage Add-ons:
В открывшемся окне будет два раздела — Installed и Marketplace. В разделе Installed отображается список всех установленных плагинов в системе.
В разделе Marketplace можно находить плагины и устанавливать их.
Если щелкнуть по плагину, то внизу отобразится его имя, статус, версия и описание. Также предусмотрены ссылки на документацию к плагину и на его исходный код на сайте GitHub. Плагины разрабатывает команда OWASP и энтузиасты. У всех плагинов открытый исходный код, и они полностью бесплатны в использовании.
Также для просмотра и поиска необходимых плагинов можно перейти на официальный сайт в раздел плагины:
Сканирование веб-сайтов на наличие уязвимостей
Перейдем к процессу сканирования. В качестве теста возьмем сайт testphp.vulnweb.com, который специально создан для тестирования на безопасность, и в котором уже присутствуют некоторые уязвимости. Тем самым будет наглядно показан процесс сканирования и поиск уязвимостей. Список сайтов, которые содержат уязвимости, можно взять с vulnweb.com.
Для того чтобы запустить сканирование, необходимо перейти в раздел Quick Start. Рассмотрим его параметры:
URL to attack — задается URL сайта, который необходимо просканировать/атаковать.
Use traditional spider — использование стандартного «паука» при сканировании.
В терминологии OWASP ZAP паук — это инструмент, который предназначен для автоматического обнаружения новых URL-адресов на проверяемом сайте. «Паук» анализирует HTML-код страницы для поиска ссылок, далее найденные ссылки добавляются в список и также сканируются на наличие уязвимостей. Если чек-бокс будет проставлен, то будет использоваться стандартный «паук», в противном случае найденные URL на странице сканироваться не будут.
USE ajax spider — использование ajax «паука» при сканировании. Если в сканируемом сайте активно используется технология ajax (Asynchronous Javascript and XML — асинхронный JavaScript и XML), то можно использовать данный параметр. В этом режиме приложение, основанное на ajax, будет обрабатывать легче. Работает медленнее, чем обычный паук.
Для того чтобы начать сканирование/атаку, необходимо нажать на кнопку Attack.
После этого начнется процесс сканирования. Сначала запускается «паук», который ищет все URL, имеющие отношение к сканирующему сайту. В столбце Method отображаются методы, которые используются для получения URL и их статусы (столбец Processed).
Как правило, используются методы GET и POST. Если статус 200, то отображается зеленый кружок, если статусы 404 или 500, то — красный. В зависимости от структуры сайта и его наполнения сканирование на URL может занять длительное время. После того как все URL найдены запускается активное сканирование.
Активное сканирование — сканирование, при котором осуществляется попытка найти потенциальные уязвимости, используя известные атаки.
Для просмотра атак, которые используются при активном сканировании, а также для просмотра их прогресс-статуса необходимо нажать на кнопку со значком мониторинга — Show scan progress details:
Название уязвимости отображено в столбце Analyser, прогресс сканирования отображается в столбце Progress. В столбце Elapsed выводится время, которое было затрачено на сканирование данной уязвимости.
В числе атак, которые использует ZAP, можно выделить такие атаки как SQL-инъекции, XSS (Cross-site-scripting), CRLF-инъекции и т.д. Также, помимо атак, происходит сбор информации, включающий в себя версии и названия используемых компонентов — такие как веб-сервер, СУБД.
Так же, как и с поиском ULR, процесс активного сканирования может занять долгое время.
Любую проверку можно пропустить, нажав на кнопку с синей стрелкой — Skip active scanner:
Все найденные уязвимости будут находиться в разделе Alerts. Уязвимости группируются по категориям:
С полным списком всех возможных уязвимостей, которые распознает и использует OWASP ZAP, а также их подробное описание можно найти в соответствующем разделе на официальном сайте ZAP.
Каждой группе уязвимостей присваивается уровень риска, который обозначается своей цветовой гаммой. В OWASP ZAP существует 5 таких категорий:
High — самый высокий (критический) уровень уязвимостей. Сюда относят SQL-инъекции, атаки типа path traversal, LDAP-инъекции, Spring4Shell и другие. Обозначается красным флажком.
Medium — средний уровень критичности найденных уязвимостей. Сюда относят Directory Browsing, HTTPOnly, XSLT-инъекции и другие. Обозначается оранжевым флажком.
Low — низкий уровень найденных уязвимостей. Сюда относят найденную информацию, связанную с отладкой, раскрытие частных IP-адресов (Private IP Disclosure) и другие. Обозначается жёлтым флажком.
Informational — информационный уровень, который сообщает о том, что найдена информация об используемых компонентах веб-сайта, а также о сервере. Сюда относят версии веб-сервера, СУБД, библиотек, фреймворков, а также версии языков программирования и операционных систем. Как правило, уязвимости, относящиеся к данной категории не могут напрямую навредить системе, однако повышают риск сбора информации о сайте и его компонентах. Обозначается синим флажком.
False Positive — ложные срабатывания. В редких случаях ZAP может найти уязвимость, которая не является уязвимостью. Если возникает сомнение, то программа помечает такую «уязвимость» зеленым флажком. Однако пользователь должен сам убедиться и проверить, является ли найденная уязвимость таковой или нет.
После того как сканирование было завершено, в разделе Alerts отобразятся все найденные проблемы безопасности. Если раскрыть группу уязвимости, то отобразятся все URL, в которых были найдены уязвимости данного типа:
Справа будет отображено полное описание, которые включает в себя тип атаки, риск, CWE номер, WASC номер, описание, а также способ устранения найденной уязвимости. Также отобразить всю подробную информацию можно в отдельном окне путем двойного щелчка левой кнопки мыши по уязвимости:
Если щелкнуть правой кнопкой мыши по уязвимости, то отобразится контекстное меню, в котором доступно большое количество опций, например, можно сразу перейти по URL, где найдена уязвимость (Open URL in Browser), сохранить страницу в формате XML (Save XML) или в «сыром» формате (Save Raw), удалить уязвимость из текущего списка сканирования (Delete) и другие опции:
Если уязвимое место найдено непосредственно в HTML коде или в коде JavaScript, то такой участок будет выделен, чтобы его можно было сразу опознать:
Также отображается HTTP/HTTPS заголовок и его параметры:
Убедимся, что на просканированном сайте действительно найдены уязвимости. В качестве примера возьмем две атаки — SQL-инъекцию и XSS.
В разделе Alerts необходимо раскрыть группу под названием SQL Injection и перейти по найденной ссылке:
Далее необходимо изменить строку с параметром на другой символ, например на символ одинарной кавычки. URL выглядит так — http://testphp.vulnweb.com/listproducts.php?artist=3+AND+1%3D1+—+
Удаляем все, что написано после символа равно. В данном случае меняем параметр 3+AND+1%3D1+—+ на символ ‘ и переходим по новой ссылке:
Как можно увидеть, появилось сообщение об ошибке в SQL синтаксисе, благодаря которому на данном сайте возможно произвести SQL-инъекцию.
Далее проверим, можно ли произвести XSS атаку. Для этого необходимо раскрыть группу с названием Cross Site Scripting и перейти по ссылке, где была найдена эта уязвимость:
В этом разделе сайта присутствует поле для ввода текста:
Введем в него JavaScript код:
<script>alert("Test!")</script>
Как можно увидеть, сайт принял введенный JavaScript код и отобразил диалоговое окно с текстом Test!
Создание отчета
OWASP ZAP позволяет генерировать отчеты по результатам сканирования. Для того чтобы создать отчет, необходимо перейти в раздел Report, далее выбрать Generate Report:
В открывшемся окне будет предложено изменить отчет перед его созданием. В разделе Scope можно задать базовые настройки — Заголовок отчета (Report Title), имя отчета (Report Name), путь, куда будет сохранен отчет (Report Directory):
В разделе Template можно выбрать один из предложенных шаблонов для сохранения отчета. Каждый шаблон оформлен по-особенному. В качестве примера сгенерируем отчет при помощи шаблона High Level Report Sample, в котором найденные уязвимости будут отображены в виде круговой диаграммы:
В разделе Filter можно выбрать, какие группы рисков стоит включить или исключить из отчета:
После того как все параметры для генерации заданы, необходимо нажать на кнопку Generate Report. После этого отчет будет сохранен по ранее заданному пути, а также будет открыт автоматически в браузере пользователя:
Подводя итог, можно сказать, что сканер OWASP ZAP является отличным, бесплатным решением для поиска уязвимостей на сайтах и в веб-приложениях. Функциональность программы можно расширить при помощи плагинов. Также имеется обширная документация и подробное описание всех используемых уязвимостей.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
Download Link:
https://github.com/zaproxy/zaproxy/wiki/Downloads
Step1
Adding a site to the testing scope
By telling the ZAP tool what the target site is, ZAP can limit the scope of the scan and only scan the target site for vulnerabilities.
1. Open the web application that you want to test.
2. In Zap you will find your website/application displayed under sites.
ZAP will spider that URL, then perform an active scan and display the results.
Zap runs on proxy, to set up the proxy in ZAP
Close all active Firefox browser sessions
ZAP tool -> Tools Menu -> Options -> Local Proxy -> Change Address = 127.0.0.1 Port = 8080.
Mozilla browser -> Tools Menu -> Options -> Advanced tab -> Network -> Settings -> Select Manual Proxy configuration:- HTTP Proxy = 127.0.0.1 Port = 8080.
Now try to connect to your application using your browser.
If you can’t connect to it then check your proxy settings again. You will need to check your browser’s proxy settings, and ZAP’s proxy settings. It’s also worth checking that the application that you are trying to test is running!
When you have successfully connected to your application you will see one or more lines in ZAP’s Sites and History tabs.
Note that most of ZAP’s tabs provide additional functionality that could be accessed via ‘right click’ menus.
Right click on the HTML -> Attack -> Active scan
ZAP will perform active scan on all the pages and display the results.
Save the ZAP session
Once you have manually explored the application it would be a good time to save the ZAP session so that you can look at it again.
If your application has multiple roles then you should explore it with each role and save the sessions in separate files.
Generating a Report
ZAP tool -> Report -> Generate HTML report (Any other options listed) -> Save and share the report.
Authentication , session and User management using ZAP
1) Context: Represents a Web application
2) Session Management Method: How are the web Sessions identified by the server and handle requests
Example: cookie based using query parameters
3) Authentication Method: How is a new session established?
It could be either Form based authentication method, HTTP based or oath methods.
4) User Management: Handling users of web application that could be used for executing actions
Example: user name/password pair
Steps to follow
1) Set proxy in local browser/access url: https://pr-uat.iptquote.com
Now include web app in context.
Context includes
(i)Authentication
(ii)Session management
(iii)Users management
Context: Form based authentication
(I) log-in from target url: https://pr-uat.iptquote.com/login.php
(ii) Login Request POST Data: username={%username%}&password={%password%}&proceed=login
(iii) Set params as: username =password
(iv) Include regex pattern for logged in or logged out response
Regex pattern for logged in response :- Qa href=”https://pr-uat.iptquote.com/login.php?proceed=logoutE
Context: Session Management
Context: User management
For user management, we can add 2 users, one valid user let it be the “Existing user” here “superadmin” in our example and other is “Test User” invalid user.
Spider url attack applied to “Test user”
If spider url attack applied to the Test user returns get_login.php (error_message), also once spider attack completed “Test User” accesses home url only. uri’s covered: 31 is shown in the screenshot, where as only scan through https://pr-uat.iptquote.com
Spider url attack for existing valid user “Superadmin”
Here spider url attack applied to the Existing valid user. That is user with super admin logged in credentials. In the attached screenshots returns “POST login.php ( request _url) if selected, returns Uri’s covered 182 for the valid user. He can access all sites.
If you have any interest in application security then you should download ZAP and try it out.
Просмотров: 581
Здравствуйте, дорогие друзья. Мы с Вами уже умеем проверять веб-приложения вручную «ручками». Их достаточное количество, и мы знаем, как они работают, и как их использовать.
В данном уроке я познакомлю Вас с инструментом, который можно использовать для автоматической проверки веб-приложений. С помощью этого инструмента Вы познакомитесь с большим количеством уязвимостей.
Настоятельно рекомендую перед использованием инструмента, потратить какое-то время для изучения уязвимостей и только потом переходить к автоматическому методу. К тому же, он имеет ошибки, так как это программа, и высока вероятность ложного срабатывания уязвимости.
Лучше всего использовать эти программы в качестве резервных, и полагаться на свои навыки по поиску уязвимостей.
В частности, рассмотрим программу «OWASP ZAP». Это основное окно приложения:
Слева мы можем увидеть веб-сайты Вашей жертвы, а в правой – указать адрес сайта для сканирования:
Жмем на шестеренку в панели вверху и нам выводятся настройки встроенных инструментов, которые мы можем корректировать под себя:
Хочу обратить Ваше внимание на нижнее окно OWASP, где настраиваются политики сканирования. Там есть что настраивать:
Предлагаю протестировать атаку на веб-приложение «Mutillidae». Копируем адрес ссылки, которая выглядит как «http://192.168.15.131/mutillidae/»:
Вставляем данную ссылку в OWASP ZAP:
Поиск уязвимостей занимает какой-то определенный промежуток времени, так что запаситесь терпением, и Вы получите отчет по данному веб-приложению.
На этом все. Всем хорошего дня!