Перейти к содержанию

Безопасность web приложений


При тестировании любого web приложения используются стандартные подходы и практики заключающиеся, так же как и при тестировании на проникновение в информационные системы, в получении максимально возможной информации о приложении, нахождении ошибок конфигурации, определение технологий и версий используемого ПО (web сервер, фреймворк и т.д.), определение возможности использования известных уязвимостей и т.д.

В процессе получения информации о web приложении полезно следующее:

  • изучение исходного кода страниц
  • использоввание devtools
  • Просмотр robots.txt на предмет наличия скрытых от индексирования страниц
  • Просмотр MD5 favicon web приложения на https://wiki.owasp.org/index.php/OWASP_favicon_database для определения импользуемого фреймворка
  • Просмотр sitemap.txt на наличие страниц без прямых ссылок
  • Поиск поддоменов нахождение которых увеличит поверхности атаки (подробнее ниже)
  • Просмотр HTTP заголовков для получения информации о web сервере и используемом языке:

    curl -k https://targetsite.site -v
    
  • Получение информации об используемом фреймворке, для получения информации о его уязвимостях

  • Поиск по сайту из внешних поисковиков с использованием дополнительных ключей (site:, filetype:, intitle: и т.д.)
  • Использование wappalyzer и аналогичных инструментов для получения информации об используемых технологиях.
  • Поиск по webarchive который поможет получить информацию об имевшихся ранее страницах
  • Поиск по GitHub и подобных сервисах для получения репозиториев в котором могут быть забыты пароли и прочая полезная информация
  • В свете повсеместного использования облаков не лишним будет поиск по s3 бакетам для проверки наличия информации в них

Многое из перечисленного можно исследовать автоматически через специализированное ПО: ffuf, gobuster, feroxbuster, dirb.

Важно!

На самом деле, все вышеописанное относится к ошибкам конфигурации web приложения и в качественно сделанном продукте, не получится извлечь из вышеуказанного полезной информации.

Поиск поддоменов.

Выполняется тремя основными методиками:

  • OSINT
  • brute-force
  • поиск виртуальных хостов

OSINT

Получение информации о TLS сертификатах

В частности поиск информации о выданых ранее сертификатах на специализированных сайтах которые ведут соответствующие логи - Certificate Transperecy Logs и, к примеру, ctsearch. В полученной информации могут содержаться сведения о поддоменах на которые были выданы сертификаты.


Гуглинг c ключами

К примеру, конструкция

-site:www.example.com site:*.example.com
вернёт поддомены example.com отличные от www


Автоматический перебор доменов

Который можно выполнить с помощью Sublist3r и ему подобных инструментов.


DNS Brute-Force

Можно осуществить с помощью dnsrecon и ему подобных инструментов.

Обход авторизации

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

  • Брутфорс форм авторизации
  • Обход логики авторизации, например при восстановлении пароля.
  • Подделка cookies

Брутфорс проводится инструментами которые позволяют делать множество запросов к приложению перебирая при этом значения из списка слов:

Для попытки обхода логики механизма авторизации, было бы крайне полезно получить доступ к коду такого механизма, что не представляется возможным. Однако, в процессе изучения передаваемых запросов и получаемых ответов, есть вероятность подменить некоторые отправляемые сведения для получения желаемого результата. В этом деле помогут те же инструменты, которые используются при брутфорсе, или же простой curl.

Подделка cookies описана здесь и тут