Сканеры веб-приложений — довольно популярная сегодня категория софта. Есть платные сканеры, есть бесплатные. У каждого из них свой набор параметров и уязвимостей, возможных для обнаружения. Некоторые ограничиваются только теми, что публикуются в OWASP Top Ten (Open Web Application Security Project), некоторые идут в своем black-box тестировании гораздо дальше.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/849/e08/b40/849e08b407e282d2fd15d455366ad5a9.png)
В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
Как можно догадаться по названию, за выпуск OWASP ZAP отвечает та самая организация OWASP, что мы упомянули во вступлении. Это бесплатный инструмент для тестирования на проникновение и для поиска уязвимостей в веб-приложениях.
Основные возможности OWASP ZAP:
Интерфейс программы переведен на русский, что будет удобно для некоторых пользователей. Рабочая область OWASP ZAP складывается из нескольких окон. Внизу — вкладки с текущими заданиями и процесс их выполнения, слева — дерево сайтов, дополнительно можно вывести в правую часть окна запросов и ответов.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/5b4/1a7/bdc/5b41a7bdc4bb9ef727ecd22b9f705a70.jpg)
С помощью маркетплейса можно немного расширить функциональность сканера.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/1a0/fc4/9c2/1a0fc49c2fd562c5aeb636c520174fa1.jpg)
У каждого компонента программы есть много настраиваемых параметров. Например, мы можем настроить входящие векторы для активного сканирования, сгенерировать динамические SSL-сертификаты, добавить идентификаторы HTTP-сессий и т.д.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/1a8/2a5/187/1a82a51877d8b992c7a96332b87c095f.jpg)
Перейдем к тестам. При сканировании сайта php.testsparker.com была найдена Blind SQL Injection. На этом критичные уязвимости заканчиваются.
На premium.bgabank.com мы видим более интересные результаты: найдена возможность Server Side Include (SSI) и Reflected Cross Site Scripting.
Все результаты сканирования можно экспортировать в отчет (поддерживается *.pdf, *.html, *.xml, *.json). В отчете подробно описываются уязвимости, найденные векторы, а также методы «закрытия» уязвимостей.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/621/4fc/50d/6214fc50d79dbd3fa5fa1060a22512d6.jpg)
В целом работать с OWASP ZAP нам понравилось. Есть все необходимые инструменты для пентеста веб-приложения, простой и понятный интерфейс, быстрое сканирование в один клик. И при этом гибкие, глубокие настройки для более детального сканирования, что может послужить отправной точкой для дальнейшего ручного поиска уязвимостей. Ниже мы еще расскажем о сканере Burp Suite Pro, который имеет с OWASP ZAP много общего. По количеству и качеству найденных уязвимостей первый рассмотренный нами сканер показал очень неплохой результат. Рекомендован к использованию в работе.
W9scan — это бесплатный консольный сканер уязвимостей сайта с более чем 1200 встроенными плагинами, которые могут определять отпечатки веб-страниц, портов, проводить анализ структуры веб-сайта, находить различные популярные уязвимости, сканировать на SQL Injection, XSS и т. д.
W9scan автоматически генерирует отчеты о результатах сканирования в формате HTML. Для запуска сканирования требуется только указать URL сайта и плагины, которые будут использоваться. Можно выбрать сразу все, дописав «all».
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/300/901/579/3009015794adf4f7bec01335d692a3f8.jpg)
При сканировании php.testsparker.com W9scan нашел svn и возможные пути загрузки payload. Из менее критичного — определил версии используемых сервисов, возможные векторы проведения XXE, XXS-атак, нашел конфигурационные файлы сервера и провел поиск субдоменов.
На сайте premium.bgabank.com ничего критичного найдено не было. Но сканер определил возможные векторы проведения атак, определены версии сервисов, директории и субдомены.
По результатам сканирования W9scan автоматически генерирует файл отчета в формате HTML.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/924/2f3/580/9242f35802869b74cc0e593d573780bf.jpg)
W9scan сканер подойдет для быстрого запуска в одну команду и мы рекомендуем использовать его как вспомогательный инструмент для определения версий сервисов, а также потенциальных векторов атак.
Ещё один неплохой консольный сканер. Так же, как и W9scan, готов к старту в одну команду, при этом имеет больше разных настроек сканирования.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/7e4/4cf/29d/7e44cf29dc356d07634aa6bf0b6da40b.jpg)
Wapiti производит поиск следующих уязвимостей:
В дополнение ко всему перечисленному имеется поддержка прокси (HTTP, HTTPs и SOCKS5), различных методов аутентификации (Basic, Digest, Kerberos, NTLM), поддержка SSL-сертификатов, возможность добавления различных HTTP-заголовков или настроек user-agent.
При сканировании сайта php.testsparker.com были найдены уязвимости Blind SQL Injection, Cross Site Scripting, Commands execution. На premium.bgabank.com Wapiti в сравнении с другими сканерами показывает не такие выдающиеся результаты: был обнаружен только Cross Site Scripting.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/825/00b/646/82500b6466d83d9b4ffa4a9d3f92209e.jpg)
По результатам работы сканера также формируется отчет в формате HTML, в котором содержатся категории и число найденных уязвимостей, их описание, запросы, команды для curl и советы о том, как закрыть найденные дыры в безопасности.
Как и следовало ожидать, Wapiti до уровня OWASP ZAP, конечно, не дотягивает. Но все же он отработал качественнее W9scan, хотя не был произведен поиск директорий, субдоменов и определение версий сервисов.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/4c3/747/4d5/4c37474d5f50d5b1899f52bf704bab7a.jpg)
Мощный бесплатный комбайн для теста защищенности веб-приложений и поиска уязвимостей. Имеет графический интерфейс и огромную функциональность, о которой более подробно можно почитать на официальном сайте.
Активное тестирование:
Пассивное тестирование:
Внушительно, не правда ли? Но и это не все. В «паутину» завернута ещё куча плагинов, например Passive Proxy, Dictionary attacker for HTTP Auth, Cookie collector, WAF Detector и др.
Сканер имеет приятный и лаконичный веб-интерфейс:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/207/0f8/364/2070f8364a7b9bea6699b926389d28b3.png)
И вот что нашел Arachni на наших тестовых сайтах. Php.testsparker.com:
На premium.bgabank.com из критичного была обнаружена только возможность межсайтовой подделки запросов (CSRF).
Отдельно отметим, какие симпатичные отчеты выдает нам Arachni. Поддерживается немало форматов — HTML, XML, text, JSON, Marshal, YAML, AFR.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/468/914/187/46891418763a6da5e22281b19b60dd05.png)
В общем, Arachni оставляет после работы только положительные впечатления. Наше мнение: это «маст хэв» в арсенале любого уважающего себя спеца.
Еще один сканер веб-уязвимостей с графическим интерфейсом. По умолчанию включен в дистрибутив Kali Linux и установлен там локально. Имеет встроенный прокси, через который добавляются сайты для анализа, встроенный веб-паук, способный анализировать сайт и строить карту запросов.
Для сканирования личного кабинета пользователя необходимо авторизоваться в браузере с включенным перенаправлением трафика через прокси Paros. Сканер будет использовать авторизованные куки в процессе сканирования. Отчет о работе можно экспортировать в HTML. Он сохраняется в файл root/paros/session/LatestScannedReport.htm и в дальнейшем перезаписывается. Если вы хотите сохранить результат предыдущего сканирования, то перед началом следующего сканирования необходимо создать копию имеющегося файла.
Основные возможности (с оглядкой на OWASP TOP 10 2017):
Дополнительные возможности:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/db3/469/da6/db3469da659b8ec18bfdcb41e91c6b35.png)
В финальном отчете к каждому типу уязвимостей есть более подробная информация и некоторые рекомендации о способе устранения.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/5bd/867/37b/5bd86737b19b0d3d0caaa55252d41c22.png)
В нашем тестировании Paros показал довольно слабые результаты. На php.testsparker.com были найдены:
H: SQL injection
M: XSS
M: Устаревшие файлы с исходным кодом
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
L: Раскрытие внутренних IP
На premium.bgabank.com и того меньше:
M: Directory browsing
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
В итоге, хотя сканер Paros прост и достаточно удобен в использовании, слабые результаты сканирования заставляют отказаться от его использования.
Платный многофункциональный облачный сканер, который умеет находить большое число веб-уязвимостей и почти полностью покрывает OWASP TOP 10 2017.
Сервис имеет встроенного веб-паука. Если в настройках сканирования указать данные авторизации (запрос авторизации, логин и пароль, авторизованные куки), то сканер проверит и личный кабинет (зону авторизованного пользователя).
Кроме сканирования веб-приложений, Tenable.io умеет сканировать сеть — как на предмет известных уязвимостей, так и для поиска хостов. Возможно подключение агентов для сканирования внутренней сети. Есть возможность экспортирования отчета в различные форматы: *.nessus, *.csv, *.db, *.pdf.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/446/1b4/7f6/4461b47f6ac62ace0b6259cff5038557.png)
На скриншоте все домены «тестовые»
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/80a/d91/42e/80ad9142e11e4965cbed7fb1d8ba9704.png)
Дополнительные профили сканирования. В данной статье не затрагиваются
После сканирования становится доступна статистика и приоритизация найденных уязвимостей — critical, high, middle, low, information
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/0f5/6f6/e74/0f56f6e74c0de99c7b7952a0012ecaae.png)
В карточке уязвимости представлена дополнительная информация о ней и некоторые рекомендации по ее устранению.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/960/767/bef/960767bef7d907ee13fa034f6eec9624.png)
Сканируем php.testsparker.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
— вышедшая из поддержки версия PHP
— вышедшая из поддержки версия Apache
H: Code injection
H: SQLinj
H: XSS
H: LFI
H: Path Traversal
Теперь premium.bgabank.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
Сканер Tenable.io показал себя хорошо, нашел множество уязвимостей. Работу с ним упрощает удобный графический интерфейс и представление данных. Еще один плюс — наличие дополнительных профилей сканирования, в которые мы пока решили не зарываться. Важной особенностью является облачная структура сервиса. С одной стороны, сервис не использует локальные вычислительные ресурсы рабочего компьютера. С другой — не сможет просканировать веб-приложения в локальной сети.
Burp Suite — это комплексное решение для проверок веб-приложений. Оно включает в себя разнообразные утилиты, позволяющие улучшить и ускорить поиск уязвимостей веб-приложений.
В составе Burp Suite есть следующие утилиты:
Утилита Scanner представлена в одноименной вкладке основного окна программы Burp Suite. Интерфейс англоязычный, но кого сейчас это может отпугнуть?
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/3f5/43d/127/3f543d1271e83ebc73c3fd935d653291.png)
На вкладке Issue Definition представлен полный список всех уязвимостей, которые способен выявить данный сканер. Следует отметить, что список весьма внушительный.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/cba/fb7/e90/cbafb7e90d71df5acf60d6ddb02a8789.png)
Все уязвимости разделены на 3 категории: high, medium, low. Также есть категория information, к которой относятся механизмы сбора различной полезной информации о сканируемом ресурсе.
При запуске сканирования в окне Scan queue мы можем наблюдать за прогрессом по этапам. «Цветовая дифференциация штанов» присутствует.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/389/487/181/389487181c472de24a579ce839a5cb07.png)
На вкладке Options выполняется основная настройка параметров сканирования.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/04e/3b4/064/04e3b4064788df80c3e5764e1068bc0e.png)
Для удобства опции разбиты по категориям. При необходимости можно получить справку по каждой категории прямо из окна настройки.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/057/1e4/5a5/0571e45a5abef02893b7268f1c6b26c5.png)
В целом Burp Suite Pro показал неплохой результат. При сканировании php.testsparker.com было найдено и классифицировано достаточно уязвимостей чтобы получить полный контроль над веб приложением и его данными — это и OS command injection, и SSTI, и File path traversal.
На сайте premium.bgabank.com были найдены:
H: Cross-site scripting (reflected)
M: SSL cookie without secure flag set
M: SSL certificate (not trusted or expired)
L: Cookie without HttpOnly flag set
L: Password field with autocomplete enabled
L: Strict transport security not enforced
Если для веб-пентеста вы часто используете Burp Suite, вам нравится его экосистема, но хотелось бы как-то автоматизировать процесс поиска уязвимостей, то эта утилита отлично впишется в ваш арсенал.
В заключение — еще один весьма неплохой коммерческий сканер. Его очень активно продвигают с помощью рекламы, но Acutenix не добился бы успеха без своей обширной функциональности. Среди доступных ему для обнаружения уязвимостей — все виды SQL injection, Cross site scripting, CRLF injection и прочие радости пентестера веб-приложений. Стоит отметить, что для качественного сканирования требуется выбрать правильный профиль.
Интерфейс дашборда приятный:
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/dd0/1c4/889/dd01c488949e97a7a8b954334372cca7.jpg)
Все выявленные уязвимости по традиции раскладываются на четыре категории: High, Medium, Low. Ну и куда же без категории Information, в которую включаются все интересные, по мнению сканера, данные.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/2ad/8a4/6e8/2ad8a46e8e10f9e79763ba7cb2931fef.jpg)
На вкладке Scans мы можем наблюдать прогресс сканирования и прочую диагностическую информацию.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/702/ff4/487/702ff4487c3bcd7b70a2a12fa9eaf2d4.jpg)
После завершения сканирования на вкладке Vulnerabilities мы можем ознакомиться с тем, что и в каком количестве было найдено. Цветовая дифференциация на месте.
В тесте на php.testsparker.com сканер показал неплохой результат, а вот с premium.bgabank.com откровенно подкачал.
Acunetix имеет большие возможности и подойдет, если вы ищете stand-alone решение. Веб-интерфейс прост и понятен, инфографика и отчеты выглядят вполне удобоваримо. Возможны осечки при сканировании, но, как говорил Тони Старк: «С мужиками такое случается. Не часто. Один разок из пяти».
А теперь выводы по всем протестированным сканерам.
![](https://habrastorage.org/getpro/habr/post_images/849/e08/b40/849e08b407e282d2fd15d455366ad5a9.png)
В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
OWASP ZAP
Как можно догадаться по названию, за выпуск OWASP ZAP отвечает та самая организация OWASP, что мы упомянули во вступлении. Это бесплатный инструмент для тестирования на проникновение и для поиска уязвимостей в веб-приложениях.
Основные возможности OWASP ZAP:
- Man-in-the-middle Proxy
- Traditional and AJAX spiders
- Automated scanner
- Passive scanner
- Forced browsing
- Fuzzer
Дополнительные фичи
- Dynamic SSL certificates
- Smartcard and Client Digital Certificates support
- Web sockets support
- Support for a wide range of scripting languages
- Plug-n-Hack support
- Authentication and session support
- Powerful REST based API
- Automatic updating option
- Integrated and growing marketplace of add-ons
Интерфейс программы переведен на русский, что будет удобно для некоторых пользователей. Рабочая область OWASP ZAP складывается из нескольких окон. Внизу — вкладки с текущими заданиями и процесс их выполнения, слева — дерево сайтов, дополнительно можно вывести в правую часть окна запросов и ответов.
![](https://habrastorage.org/getpro/habr/post_images/5b4/1a7/bdc/5b41a7bdc4bb9ef727ecd22b9f705a70.jpg)
С помощью маркетплейса можно немного расширить функциональность сканера.
![](https://habrastorage.org/getpro/habr/post_images/1a0/fc4/9c2/1a0fc49c2fd562c5aeb636c520174fa1.jpg)
У каждого компонента программы есть много настраиваемых параметров. Например, мы можем настроить входящие векторы для активного сканирования, сгенерировать динамические SSL-сертификаты, добавить идентификаторы HTTP-сессий и т.д.
![](https://habrastorage.org/getpro/habr/post_images/1a8/2a5/187/1a82a51877d8b992c7a96332b87c095f.jpg)
Перейдем к тестам. При сканировании сайта php.testsparker.com была найдена Blind SQL Injection. На этом критичные уязвимости заканчиваются.
Полные результаты OWASP ZAP на php.testsparker.com
H: Advanced SQL Injection — AND boolean-based blind — WHERE or HAVING clause
M: X-Frame-Options Header Not Set
L: X-Content-Type-Options Header Missing
L: Web browser xss protection is not enabled
M: X-Frame-Options Header Not Set
L: X-Content-Type-Options Header Missing
L: Web browser xss protection is not enabled
На premium.bgabank.com мы видим более интересные результаты: найдена возможность Server Side Include (SSI) и Reflected Cross Site Scripting.
Полные результаты OWASP ZAP на premium.bgabank.com
H: Server Side Include
H: Reflected Cross Site Scripting
M: X-Frame-Options Header Not Set
M: Application Error Disclosure
M: Directory Browsing
M: Secure Pages Include Mixed Content (Including Scripts)
L: X-Content-Type-Options Header Missing
L: Web browser xss protection is not enabled
L: Cross-Domain JavaScript Source File Inclusion
L: Incomplete or No Cache-control and Pragma HTTP Header Set
L: Cookie No HttpOnly Flag
L: Cookie Without Secure Flag
L: Content-Type Header Missing
L: Private IP Disclosure
I: Image Exposes Location or Privacy Data
H: Reflected Cross Site Scripting
M: X-Frame-Options Header Not Set
M: Application Error Disclosure
M: Directory Browsing
M: Secure Pages Include Mixed Content (Including Scripts)
L: X-Content-Type-Options Header Missing
L: Web browser xss protection is not enabled
L: Cross-Domain JavaScript Source File Inclusion
L: Incomplete or No Cache-control and Pragma HTTP Header Set
L: Cookie No HttpOnly Flag
L: Cookie Without Secure Flag
L: Content-Type Header Missing
L: Private IP Disclosure
I: Image Exposes Location or Privacy Data
Все результаты сканирования можно экспортировать в отчет (поддерживается *.pdf, *.html, *.xml, *.json). В отчете подробно описываются уязвимости, найденные векторы, а также методы «закрытия» уязвимостей.
![](https://habrastorage.org/getpro/habr/post_images/621/4fc/50d/6214fc50d79dbd3fa5fa1060a22512d6.jpg)
В целом работать с OWASP ZAP нам понравилось. Есть все необходимые инструменты для пентеста веб-приложения, простой и понятный интерфейс, быстрое сканирование в один клик. И при этом гибкие, глубокие настройки для более детального сканирования, что может послужить отправной точкой для дальнейшего ручного поиска уязвимостей. Ниже мы еще расскажем о сканере Burp Suite Pro, который имеет с OWASP ZAP много общего. По количеству и качеству найденных уязвимостей первый рассмотренный нами сканер показал очень неплохой результат. Рекомендован к использованию в работе.
W9scan
W9scan — это бесплатный консольный сканер уязвимостей сайта с более чем 1200 встроенными плагинами, которые могут определять отпечатки веб-страниц, портов, проводить анализ структуры веб-сайта, находить различные популярные уязвимости, сканировать на SQL Injection, XSS и т. д.
Более полный список возможностей W9scan
— Fingerprint detection
— Attack parameter
— Violent cracking
— Сollect message
- Can identify common website CMS fingerprints ( 300+)
- Recognizable common website frame
- Identify common port service fingerprints
- Detect website scripting language
- Detect operating system type
- Detection Website Firewall (WAF)
— Attack parameter
- SQL injection (based on crawlers)
- XSS injection (based on reptiles)
- A large number of Fuzz parameter scans
- CVE vulnerability
- struts Vulnerability collection (including automatic detection)
- Shellshock cgi test
- heartbeat Bleeding heart
- IIS parsing vulnerability
- IIS Put vulnerability
— Violent cracking
- Backup files and directories (based on crawlers)
- Backup files and directories (based on domain name)
- Common directory
- Common file
- Subdomain violence analysis
- fckeditorPath enumeration
- Common mdbdatabase enumeration
- git svn Leak identification
- TOMCAT web.xml Give way
— Сollect message
- Emails (based on reptiles)
- Private IP (based on reptiles)
- E-mail (based on reptiles)
- Detecting Warnings, Fatal Error,…
- PHP version identification
- IIS information disclosure
- IP address attribution
- Integrated Wappalyzer recognition script
- robots.txt Analysis
- Detecting unsafe headers in headers
- Detecting unsafe factors in cookies
W9scan автоматически генерирует отчеты о результатах сканирования в формате HTML. Для запуска сканирования требуется только указать URL сайта и плагины, которые будут использоваться. Можно выбрать сразу все, дописав «all».
![](https://habrastorage.org/getpro/habr/post_images/300/901/579/3009015794adf4f7bec01335d692a3f8.jpg)
При сканировании php.testsparker.com W9scan нашел svn и возможные пути загрузки payload. Из менее критичного — определил версии используемых сервисов, возможные векторы проведения XXE, XXS-атак, нашел конфигурационные файлы сервера и провел поиск субдоменов.
На сайте premium.bgabank.com ничего критичного найдено не было. Но сканер определил возможные векторы проведения атак, определены версии сервисов, директории и субдомены.
По результатам сканирования W9scan автоматически генерирует файл отчета в формате HTML.
![](https://habrastorage.org/getpro/habr/post_images/924/2f3/580/9242f35802869b74cc0e593d573780bf.jpg)
W9scan сканер подойдет для быстрого запуска в одну команду и мы рекомендуем использовать его как вспомогательный инструмент для определения версий сервисов, а также потенциальных векторов атак.
Wapiti
Ещё один неплохой консольный сканер. Так же, как и W9scan, готов к старту в одну команду, при этом имеет больше разных настроек сканирования.
![](https://habrastorage.org/getpro/habr/post_images/7e4/4cf/29d/7e44cf29dc356d07634aa6bf0b6da40b.jpg)
Wapiti производит поиск следующих уязвимостей:
- File disclosure (Local and remote include/require, fopen, readfile...)
- Database Injection (PHP/JSP/ASP SQL Injections and XPath Injections)
- XSS (Cross Site Scripting) injection (reflected and permanent)
- Command Execution detection (eval(), system(), passtru()...)
- CRLF Injection (HTTP Response Splitting, session fixation...)
- XXE (XML External Entity) injection
- SSRF (Server Side Request Forgery)
- Use of know potentially dangerous files
- Weak .htaccess configurations that can be bypassed
- Presence of backup files giving sensitive information
- Shellshock
В дополнение ко всему перечисленному имеется поддержка прокси (HTTP, HTTPs и SOCKS5), различных методов аутентификации (Basic, Digest, Kerberos, NTLM), поддержка SSL-сертификатов, возможность добавления различных HTTP-заголовков или настроек user-agent.
При сканировании сайта php.testsparker.com были найдены уязвимости Blind SQL Injection, Cross Site Scripting, Commands execution. На premium.bgabank.com Wapiti в сравнении с другими сканерами показывает не такие выдающиеся результаты: был обнаружен только Cross Site Scripting.
![](https://habrastorage.org/getpro/habr/post_images/825/00b/646/82500b6466d83d9b4ffa4a9d3f92209e.jpg)
По результатам работы сканера также формируется отчет в формате HTML, в котором содержатся категории и число найденных уязвимостей, их описание, запросы, команды для curl и советы о том, как закрыть найденные дыры в безопасности.
Как и следовало ожидать, Wapiti до уровня OWASP ZAP, конечно, не дотягивает. Но все же он отработал качественнее W9scan, хотя не был произведен поиск директорий, субдоменов и определение версий сервисов.
Arachni
![](https://habrastorage.org/getpro/habr/post_images/4c3/747/4d5/4c37474d5f50d5b1899f52bf704bab7a.jpg)
Мощный бесплатный комбайн для теста защищенности веб-приложений и поиска уязвимостей. Имеет графический интерфейс и огромную функциональность, о которой более подробно можно почитать на официальном сайте.
Активное тестирование:
- SQL injection — Error based detection
- Blind SQL injection using differential analysis
- Blind SQL injection using timing attacks
- NoSQL injection — Error based vulnerability detection
- Blind NoSQL injection using differential analysis
Полный список функций для активного тестирования
- CSRF detection
- Code injection
- Blind code injection using timing attacks
- LDAP injection
- Path traversal
- File inclusion
- Response splitting
- OS command injection
- Blind OS command injection using timing attacks
- Remote file inclusion
- Unvalidated redirects
- Unvalidated DOM redirects
- XPath injection
- XSS
- Path XSS
- XSS in event attributes of HTML elements
- XSS in HTML tags
- XSS in script context
- DOM XSS
- DOM XSS script context
- Source code disclosure
- XML External Entity
Пассивное тестирование:
- Allowed HTTP methods
- Backup files
- Backup directories
- Common administration interfaces
- Common directories
- Common files
Полный список функций для пассивного тестирования
- HTTP PUT
- Insufficient Transport Layer Protection for password forms
- WebDAV detection ( webdav).
- HTTP TRACE detection
- Credit Card number disclosure
- CVS/SVN user disclosure
- Private IP address disclosure
- Common backdoors
- .htaccess LIMIT misconfiguration
- Interesting responses
- HTML object grepper
- E-mail address disclosure
- US Social Security Number disclosure
- Forceful directory listing
- Mixed Resource/Scripting
- Insecure cookies
- HttpOnly cookies
- Auto-complete for password form fields.
- Origin Spoof Access Restriction Bypass
- Form-based upload
- localstart.asp
- Cookie set for parent domain
- Missing Strict-Transport-Security headers for HTTPS sites
- Missing X-Frame-Options headers
- Insecure CORS policy
- Insecure cross-domain policy
- Insecure cross-domain policy
- Insecure client-access policy
Внушительно, не правда ли? Но и это не все. В «паутину» завернута ещё куча плагинов, например Passive Proxy, Dictionary attacker for HTTP Auth, Cookie collector, WAF Detector и др.
Сканер имеет приятный и лаконичный веб-интерфейс:
![](https://habrastorage.org/getpro/habr/post_images/207/0f8/364/2070f8364a7b9bea6699b926389d28b3.png)
И вот что нашел Arachni на наших тестовых сайтах. Php.testsparker.com:
- Cross-Site Scripting (XSS) in script context
- Blind SQL Injection (differential analysis)
- Code injection
- Code injection (timing attack)
- Operating system command injection (timing attack)
- Operating system command injection
Остальные уязвимости на php.testsparker.com
H: File Inclusion
H: Cross-Site Scripting (XSS) in HTML tag
H: Cross-Site Scripting (XSS)
H: Path Traversal
M: Backup file
M: Common directory
M: HTTP TRACE
L: Missing 'X-Frame-Options' header
L: Password field with auto-complete
L: Insecure client-access policy
L: Insecure cross-domain policy (allow-access-from)
L: Common sensitive file
H: Cross-Site Scripting (XSS) in HTML tag
H: Cross-Site Scripting (XSS)
H: Path Traversal
M: Backup file
M: Common directory
M: HTTP TRACE
L: Missing 'X-Frame-Options' header
L: Password field with auto-complete
L: Insecure client-access policy
L: Insecure cross-domain policy (allow-access-from)
L: Common sensitive file
На premium.bgabank.com из критичного была обнаружена только возможность межсайтовой подделки запросов (CSRF).
Полные результаты Arachni на premium.bgabank.com
H: Cross-Site Request Forgery
M: Mixed Resource
M: HTTP TRACE
M: Common directory
M: Missing 'Strict-Transport-Security' header
L: Private IP address disclosure
M: Mixed Resource
M: HTTP TRACE
M: Common directory
M: Missing 'Strict-Transport-Security' header
L: Private IP address disclosure
Отдельно отметим, какие симпатичные отчеты выдает нам Arachni. Поддерживается немало форматов — HTML, XML, text, JSON, Marshal, YAML, AFR.
![](https://habrastorage.org/getpro/habr/post_images/468/914/187/46891418763a6da5e22281b19b60dd05.png)
В общем, Arachni оставляет после работы только положительные впечатления. Наше мнение: это «маст хэв» в арсенале любого уважающего себя спеца.
Paros
Еще один сканер веб-уязвимостей с графическим интерфейсом. По умолчанию включен в дистрибутив Kali Linux и установлен там локально. Имеет встроенный прокси, через который добавляются сайты для анализа, встроенный веб-паук, способный анализировать сайт и строить карту запросов.
Для сканирования личного кабинета пользователя необходимо авторизоваться в браузере с включенным перенаправлением трафика через прокси Paros. Сканер будет использовать авторизованные куки в процессе сканирования. Отчет о работе можно экспортировать в HTML. Он сохраняется в файл root/paros/session/LatestScannedReport.htm и в дальнейшем перезаписывается. Если вы хотите сохранить результат предыдущего сканирования, то перед началом следующего сканирования необходимо создать копию имеющегося файла.
Основные возможности (с оглядкой на OWASP TOP 10 2017):
- A1: Injection — SQLinjection, SQLinjection Fingerprint (места, где потенциально может быть SQLinj)
- A6: Security Misconfiguration — Directory browsing, ISS default file, Tomcat source file disclosure, IBM WebSphere default files и некоторые другие стандартные или устаревшие файлы (Obsolete file), содержащие исходный код и прочее.
- A7: XSS
Дополнительные возможности:
- Поиск включенного автозаполнения для форм паролей. При этом если у поля input есть атрибут type=«password», получается ложное срабатывание.
- CRLF injection
- Secure page browser cache (кэширование страниц в браузере c важной информацией)
- Возможность сканирования защищенной области пользователя (личный кабинет)
- Возможность сканирования веб-приложений в локальной сети
![](https://habrastorage.org/getpro/habr/post_images/db3/469/da6/db3469da659b8ec18bfdcb41e91c6b35.png)
В финальном отчете к каждому типу уязвимостей есть более подробная информация и некоторые рекомендации о способе устранения.
![](https://habrastorage.org/getpro/habr/post_images/5bd/867/37b/5bd86737b19b0d3d0caaa55252d41c22.png)
В нашем тестировании Paros показал довольно слабые результаты. На php.testsparker.com были найдены:
H: SQL injection
M: XSS
M: Устаревшие файлы с исходным кодом
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
L: Раскрытие внутренних IP
На premium.bgabank.com и того меньше:
M: Directory browsing
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
В итоге, хотя сканер Paros прост и достаточно удобен в использовании, слабые результаты сканирования заставляют отказаться от его использования.
Tenable.io
Платный многофункциональный облачный сканер, который умеет находить большое число веб-уязвимостей и почти полностью покрывает OWASP TOP 10 2017.
Сервис имеет встроенного веб-паука. Если в настройках сканирования указать данные авторизации (запрос авторизации, логин и пароль, авторизованные куки), то сканер проверит и личный кабинет (зону авторизованного пользователя).
Кроме сканирования веб-приложений, Tenable.io умеет сканировать сеть — как на предмет известных уязвимостей, так и для поиска хостов. Возможно подключение агентов для сканирования внутренней сети. Есть возможность экспортирования отчета в различные форматы: *.nessus, *.csv, *.db, *.pdf.
![](https://habrastorage.org/getpro/habr/post_images/446/1b4/7f6/4461b47f6ac62ace0b6259cff5038557.png)
На скриншоте все домены «тестовые»
![](https://habrastorage.org/getpro/habr/post_images/80a/d91/42e/80ad9142e11e4965cbed7fb1d8ba9704.png)
Дополнительные профили сканирования. В данной статье не затрагиваются
После сканирования становится доступна статистика и приоритизация найденных уязвимостей — critical, high, middle, low, information
![](https://habrastorage.org/getpro/habr/post_images/0f5/6f6/e74/0f56f6e74c0de99c7b7952a0012ecaae.png)
В карточке уязвимости представлена дополнительная информация о ней и некоторые рекомендации по ее устранению.
![](https://habrastorage.org/getpro/habr/post_images/960/767/bef/960767bef7d907ee13fa034f6eec9624.png)
Сканируем php.testsparker.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
— вышедшая из поддержки версия PHP
— вышедшая из поддержки версия Apache
H: Code injection
H: SQLinj
H: XSS
H: LFI
H: Path Traversal
Middle- и low-уязвимости
M: Раскрытие ценных данных — полный путь, бекапы
M: Раскрытие внутренних IP
M: Cookie без флага HTTPOnly
M: Отправка пароля по HTTP
L: Использование автозаполнения в формах с важной информацией
L: Ответ сервера на TRACE запросы
L: Не установлены header`ы Cache-Control, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection
M: Раскрытие внутренних IP
M: Cookie без флага HTTPOnly
M: Отправка пароля по HTTP
L: Использование автозаполнения в формах с важной информацией
L: Ответ сервера на TRACE запросы
L: Не установлены header`ы Cache-Control, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection
Теперь premium.bgabank.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
- вышедшая из поддержки версия PHP
- уязвимости Apache
- уязвимости Bootstrap
- уязвимости JQuery
Middle- и low-уязвимости
M: Web server phpinfo()
M: Совместное использование HTTP и HTTPS
M: Отсутствие перенаправления с HTTP на HTTPS
M: Directory browsing
M: Найдены backup файлы
M: Использование небезопасной версии протокола SSL
M: Истечение срока сертификата SSL/TLS
L: Раскрытие внутренних IP
L: Cookie без флага HTTPOnly
L: Ответ сервера на TRACE запросы
L: Не установлены header`ы Strict-Transport-Security, Cache-Control, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection
M: Совместное использование HTTP и HTTPS
M: Отсутствие перенаправления с HTTP на HTTPS
M: Directory browsing
M: Найдены backup файлы
M: Использование небезопасной версии протокола SSL
M: Истечение срока сертификата SSL/TLS
L: Раскрытие внутренних IP
L: Cookie без флага HTTPOnly
L: Ответ сервера на TRACE запросы
L: Не установлены header`ы Strict-Transport-Security, Cache-Control, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection
Сканер Tenable.io показал себя хорошо, нашел множество уязвимостей. Работу с ним упрощает удобный графический интерфейс и представление данных. Еще один плюс — наличие дополнительных профилей сканирования, в которые мы пока решили не зарываться. Важной особенностью является облачная структура сервиса. С одной стороны, сервис не использует локальные вычислительные ресурсы рабочего компьютера. С другой — не сможет просканировать веб-приложения в локальной сети.
Burp Suite Pro
Burp Suite — это комплексное решение для проверок веб-приложений. Оно включает в себя разнообразные утилиты, позволяющие улучшить и ускорить поиск уязвимостей веб-приложений.
В составе Burp Suite есть следующие утилиты:
- Proxy — прокси-сервер, который перехватывает трафик, проходящий по протоколу HTTP(S), в режиме man-in-the-middle. Находясь между браузером и целевым веб-приложением, эта утилита позволяет перехватывать, изучать и изменять трафик, идущий в обоих направлениях.
- Spider — веб-паук, который в автоматическом режиме собирает информацию о содержимом и функционале приложения (веб-ресурса).
- Scanner (только в Burp Suite Pro) — сканер для автоматического поиска уязвимостей в веб-приложениях.
- Intruder — гибкая утилита, позволяющая в автоматическом режиме производить атаки различного вида. Например, перебор идентификаторов, сбор важной информации и прочее.
- Repeater — инструмент для ручного изменения и повторной отсылки отдельных HTTP-запросов, а также для анализа ответов приложения.
- Sequencer — утилита для анализа случайных данных приложения на возможность предсказания алгоритма их генерации.
- Decoder — утилита для ручного или автоматического кодирования и декодирования данных приложения.
- Comparer — инструмент для поиска визуальных различий между двумя вариациями данных.
- Extender — инструмент для добавления расширений в Burp Suite
Утилита Scanner представлена в одноименной вкладке основного окна программы Burp Suite. Интерфейс англоязычный, но кого сейчас это может отпугнуть?
![](https://habrastorage.org/getpro/habr/post_images/3f5/43d/127/3f543d1271e83ebc73c3fd935d653291.png)
На вкладке Issue Definition представлен полный список всех уязвимостей, которые способен выявить данный сканер. Следует отметить, что список весьма внушительный.
![](https://habrastorage.org/getpro/habr/post_images/cba/fb7/e90/cbafb7e90d71df5acf60d6ddb02a8789.png)
Все уязвимости разделены на 3 категории: high, medium, low. Также есть категория information, к которой относятся механизмы сбора различной полезной информации о сканируемом ресурсе.
При запуске сканирования в окне Scan queue мы можем наблюдать за прогрессом по этапам. «Цветовая дифференциация штанов» присутствует.
![](https://habrastorage.org/getpro/habr/post_images/389/487/181/389487181c472de24a579ce839a5cb07.png)
На вкладке Options выполняется основная настройка параметров сканирования.
![](https://habrastorage.org/getpro/habr/post_images/04e/3b4/064/04e3b4064788df80c3e5764e1068bc0e.png)
Для удобства опции разбиты по категориям. При необходимости можно получить справку по каждой категории прямо из окна настройки.
![](https://habrastorage.org/getpro/habr/post_images/057/1e4/5a5/0571e45a5abef02893b7268f1c6b26c5.png)
В целом Burp Suite Pro показал неплохой результат. При сканировании php.testsparker.com было найдено и классифицировано достаточно уязвимостей чтобы получить полный контроль над веб приложением и его данными — это и OS command injection, и SSTI, и File path traversal.
Полные результаты Burp Suite Pro на php.testsparker.com
H: OS command injection
H: File path traversal
H: Out-of-band resource load (HTTP)
H: Server-side template injection
H: Cross-site scripting (reflected)
H: Flash cross-domain policy
H: Silverlight cross-domain policy
H: Cleartext submission of password
H: External service interaction (DNS)
H: External service interaction (HTTP)
M: SSL certificate (not trusted or expired)
L: Password field with autocomplete enabled
L: Form action hijacking (reflected)
L: Unencrypted communications
L: Strict transport security not enforced
H: File path traversal
H: Out-of-band resource load (HTTP)
H: Server-side template injection
H: Cross-site scripting (reflected)
H: Flash cross-domain policy
H: Silverlight cross-domain policy
H: Cleartext submission of password
H: External service interaction (DNS)
H: External service interaction (HTTP)
M: SSL certificate (not trusted or expired)
L: Password field with autocomplete enabled
L: Form action hijacking (reflected)
L: Unencrypted communications
L: Strict transport security not enforced
На сайте premium.bgabank.com были найдены:
H: Cross-site scripting (reflected)
M: SSL cookie without secure flag set
M: SSL certificate (not trusted or expired)
L: Cookie without HttpOnly flag set
L: Password field with autocomplete enabled
L: Strict transport security not enforced
Если для веб-пентеста вы часто используете Burp Suite, вам нравится его экосистема, но хотелось бы как-то автоматизировать процесс поиска уязвимостей, то эта утилита отлично впишется в ваш арсенал.
Acunetix
В заключение — еще один весьма неплохой коммерческий сканер. Его очень активно продвигают с помощью рекламы, но Acutenix не добился бы успеха без своей обширной функциональности. Среди доступных ему для обнаружения уязвимостей — все виды SQL injection, Cross site scripting, CRLF injection и прочие радости пентестера веб-приложений. Стоит отметить, что для качественного сканирования требуется выбрать правильный профиль.
Интерфейс дашборда приятный:
![](https://habrastorage.org/getpro/habr/post_images/dd0/1c4/889/dd01c488949e97a7a8b954334372cca7.jpg)
Все выявленные уязвимости по традиции раскладываются на четыре категории: High, Medium, Low. Ну и куда же без категории Information, в которую включаются все интересные, по мнению сканера, данные.
![](https://habrastorage.org/getpro/habr/post_images/2ad/8a4/6e8/2ad8a46e8e10f9e79763ba7cb2931fef.jpg)
На вкладке Scans мы можем наблюдать прогресс сканирования и прочую диагностическую информацию.
![](https://habrastorage.org/getpro/habr/post_images/702/ff4/487/702ff4487c3bcd7b70a2a12fa9eaf2d4.jpg)
После завершения сканирования на вкладке Vulnerabilities мы можем ознакомиться с тем, что и в каком количестве было найдено. Цветовая дифференциация на месте.
В тесте на php.testsparker.com сканер показал неплохой результат, а вот с premium.bgabank.com откровенно подкачал.
Полные результаты Acunetix
php.testsparker.com:
H: Apache 2.2.14 mod_isapi Dangling Pointer
H: Blind SQL Injection
H: Cross site scripting
H: Cross site scripting (verified)
H: Directory traversal
H: File inclusion
H: PHP code injection
H: Server-side template injection
H: SVN repository found
H: User controllable script source
M: Access database found
M: Apache 2.x version older than 2.2.9
M: Apache httpd remote denial of service
M: Apache httpOnly cookie disclosure
M: Application error message
M: Backup files
M: Directory listing
M: HTML form without CSRF protection
M: Insecure clientaccesspolicy.xml file
M: Partial user controllable script source
M: PHP hangs on parsing particular strings as floating point number
M: PHP preg_replace used on user input
M: Source code disclosure
M: User credentials are sent in clear text
L: Apache 2.x version older than 2.2.10
L: Apache mod_negotiation filename bruteforcing
L: Clickjacking: X-Frame-Options header missing
L: Login page password-guessing attack
L: Possible relative path overwrite
L: Possible sensitive directories
L: Possible sensitive files
L: TRACE method is enabled
premium.bgabank.com:
L: Clickjacking: X-Frame-Options header missing
H: Apache 2.2.14 mod_isapi Dangling Pointer
H: Blind SQL Injection
H: Cross site scripting
H: Cross site scripting (verified)
H: Directory traversal
H: File inclusion
H: PHP code injection
H: Server-side template injection
H: SVN repository found
H: User controllable script source
M: Access database found
M: Apache 2.x version older than 2.2.9
M: Apache httpd remote denial of service
M: Apache httpOnly cookie disclosure
M: Application error message
M: Backup files
M: Directory listing
M: HTML form without CSRF protection
M: Insecure clientaccesspolicy.xml file
M: Partial user controllable script source
M: PHP hangs on parsing particular strings as floating point number
M: PHP preg_replace used on user input
M: Source code disclosure
M: User credentials are sent in clear text
L: Apache 2.x version older than 2.2.10
L: Apache mod_negotiation filename bruteforcing
L: Clickjacking: X-Frame-Options header missing
L: Login page password-guessing attack
L: Possible relative path overwrite
L: Possible sensitive directories
L: Possible sensitive files
L: TRACE method is enabled
premium.bgabank.com:
L: Clickjacking: X-Frame-Options header missing
Acunetix имеет большие возможности и подойдет, если вы ищете stand-alone решение. Веб-интерфейс прост и понятен, инфографика и отчеты выглядят вполне удобоваримо. Возможны осечки при сканировании, но, как говорил Тони Старк: «С мужиками такое случается. Не часто. Один разок из пяти».
Общие итоги
А теперь выводы по всем протестированным сканерам.
- OWASP ZAP нам понравился. Рекомендуем к использованию.
- W9scan мы рекомендуем использовать как вспомогательный инструмент для определения версий и сервисов, а также потенциальных векторов атак.
- Wapiti до OWASP ZAP не дотягивает, но у нас отработал качественнее W9scan.
- Arachni — это просто «маст-хэв».
- Paros сканирует слабо, и мы его не рекомендуем.
- Tenable.io хорош, находит множество уязвимостей. Но стоит учесть, что он облачный.
- Burp Suite Pro мы советуем тем, кому нравится экосистема Burp Suite, но не хватает автоматизации.
- Acunetix подойдет тем, кто ищет сканер как stand-alone приложение.