Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров

Сканеры веб-приложений — довольно популярная сегодня категория софта. Есть платные сканеры, есть бесплатные. У каждого из них свой набор параметров и уязвимостей, возможных для обнаружения. Некоторые ограничиваются только теми, что публикуются в OWASP Top Ten (Open Web Application Security Project), некоторые идут в своем black-box тестировании гораздо дальше.

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 складывается из нескольких окон. Внизу — вкладки с текущими заданиями и процесс их выполнения, слева — дерево сайтов, дополнительно можно вывести в правую часть окна запросов и ответов.

5b41a7bdc4bb9ef727ecd22b9f705a70.jpg

С помощью маркетплейса можно немного расширить функциональность сканера.

1a0fc49c2fd562c5aeb636c520174fa1.jpg

У каждого компонента программы есть много настраиваемых параметров. Например, мы можем настроить входящие векторы для активного сканирования, сгенерировать динамические SSL-сертификаты, добавить идентификаторы HTTP-сессий и т.д.

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


На 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


Все результаты сканирования можно экспортировать в отчет (поддерживается *.pdf, *.html, *.xml, *.json). В отчете подробно описываются уязвимости, найденные векторы, а также методы «закрытия» уязвимостей.

6214fc50d79dbd3fa5fa1060a22512d6.jpg

В целом работать с OWASP ZAP нам понравилось. Есть все необходимые инструменты для пентеста веб-приложения, простой и понятный интерфейс, быстрое сканирование в один клик. И при этом гибкие, глубокие настройки для более детального сканирования, что может послужить отправной точкой для дальнейшего ручного поиска уязвимостей. Ниже мы еще расскажем о сканере Burp Suite Pro, который имеет с OWASP ZAP много общего. По количеству и качеству найденных уязвимостей первый рассмотренный нами сканер показал очень неплохой результат. Рекомендован к использованию в работе.

W9scan


W9scan — это бесплатный консольный сканер уязвимостей сайта с более чем 1200 встроенными плагинами, которые могут определять отпечатки веб-страниц, портов, проводить анализ структуры веб-сайта, находить различные  популярные уязвимости, сканировать на SQL Injection, XSS и т. д.

Более полный список возможностей W9scan
— Fingerprint detection
  • 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».

3009015794adf4f7bec01335d692a3f8.jpg

При сканировании php.testsparker.com W9scan нашел svn и возможные пути загрузки payload. Из менее критичного — определил версии используемых сервисов, возможные векторы проведения XXE, XXS-атак, нашел конфигурационные файлы сервера и провел поиск субдоменов.

На сайте premium.bgabank.com ничего критичного найдено не было. Но сканер определил возможные векторы проведения атак, определены версии сервисов, директории и субдомены.

По результатам сканирования W9scan автоматически генерирует файл отчета в формате HTML.

9242f35802869b74cc0e593d573780bf.jpg

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

Wapiti


Ещё один неплохой консольный сканер. Так же, как и W9scan, готов к старту в одну команду, при этом имеет больше разных настроек сканирования.

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.

82500b6466d83d9b4ffa4a9d3f92209e.jpg

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

Как и следовало ожидать, Wapiti до уровня OWASP ZAP, конечно, не дотягивает. Но все же он отработал качественнее W9scan, хотя не был произведен поиск директорий, субдоменов и определение версий сервисов.

Arachni


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

© Habrahabr.ru