Skip to content

Latest commit

 

History

History

05_owasp

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Домашнее задание к занятию «OWASP Web. Часть 1»

Пришлите ответы на вопросы в личном кабинете на сайте netology.ru.

Общая вводная

Вы рассмотрите проект OWASP Juice Shop, входящий в Vulnerable Web Applications Directory.

Для запуска иcпользуйте docker-compose.yml:

version: '3.7'
services:
  shop:
    image: bkimminich/juice-shop
    ports:
      - 3000:3000

Приложение запустится на порту 3000. Вам нужно открыть localhost:3000 в браузере и выбрать русский язык.

В боковой панели выберете «Помогите начать работу».

Задание SQLi

Этапы выполнения

  1. Перейдите на страницу логина.

  1. Используя ваши знания об SQLi, попробуйте войти в систему.

Часто при работе с СУБД возникают ошибки из-за некорректно составленных SQL-запросов, превышения лимита подключений, проблем с фиксацией транзакций и т. д. Эти ошибки пробрасываются из СУБД в само приложение, которое логгирует их, то есть записывает в лог-файл. Это позволяет программистам проводить анализ случившегося и быстрее исправлять ошибки. Часто для удобства на этапе разработки эти сообщения выводятся не только в лог-файл, но и дублируются в ответе, возвращаемом сервером по HTTP. Так они могут просачиваться в Production, если кто-то забыл отключить эту функцию.

То же самое будет происходить при подборе данных для SQLi — возникнет ошибка, которая может просочиться к вам в виде HTTP-ответа. Тогда вы не вслепую будете подбирать данные. Откройте инструменты разработчика браузера (F12) и внимательно посмотрите на то, какие ответы на ваш запрос возвращает сервер при нажатии на кнопку «Войти в систему».

Проанализируйте, под каким пользователем вам удалось войти, ваши предположения о том, почему удалось войти именно под этим пользователем.

Подсказка

Для этого нужно:

  1. Проверить хранилища — Cookie, LocalStorage, SessionStorage — на предмет хранения аутентификационной информации.
  2. Посмотреть на данные, передаваемые в запросах — Headers.
  3. Посмотреть на данные, возвращаемые в ответах после аутентификации.

Решение задания

В качестве решения пришлите:

  1. Использованные для ввода данные.
  2. Под каким пользователем вам удалось войти.
  3. Ваши предположения, почему удалось войти именно под этим пользователем.
  4. Где хранится аутентификационная информация, что она из себя представляет и как передаётся в каждом запросе.

Задание robots.txt

Прочитайте информацию о файле robots.txt и его описание.

Почитайте статьи на тему корректной настройки robots.txt и использование robots.txt при тестировании безопасности сайта:

Этапы выполнения

Проанализируйте целевой сервис на предмет корректности использования robots.txt.

Решение задания

Пришлите ваш вывод, корректно ли используется robots.txt. Если нет, то почему и к каким последствиям это ведёт.

Задание «Взлом администратора»

После успешной эксплуатации SQL-инъекции вы войдёте от имени администратора магазина. Чтобы узнать почту пользователя, обратите внимание на запрос http://localhost:3000/rest/user/whoami. В ответе получите почтовый ящик администратора. Попробуйте проверить на прочность систему — подобрать пароль администратора.

Этапы выполнения

Чтобы подобрать пароль, нужен инструмент для выполнения большого количества запросов. Конечно, можно написать скрипт, но рекомендуется использовать прокси Zed Attack Proxy или Burp Suite.

  1. Перейдите на страницу логина.

  1. Введите почту администратора и случайный пароль. Получите запрос для аутентификации.

  2. Отправьте запрос в Intruder (Burp) или «Запуск Фаззинга» (ZAP). Выберите в качестве перебираемого параметра пароль. Используйте списки с самыми популярными паролями. Запустите перебор, найдите искомый пароль.

Решение задания

Пришлите пароль, который стоял у администратора. Объясните, какие меры позволили бы защититься от атаки.