1 Broken Auth
1.1 Forgotten Function
Рисунок 1 — Задание 1
Введем произвольный почтовый адрес и посмотрим на вывод.
Рисунок 2 — Введен неверный почтовый ящик
Создадим пользователя и попробуем ввести его почтовый ящик в данную форму.
Рисунок 3 — Создание пользователя
Рисунок 4 — Введен существующий почтовый ящик
Таким образом данная форма позволяет перебрать почтовые ящики пользователей, имеющие аккаунты в системе, а также узнать их секреты без подтверждения личности.
1.2 Insecure Login Forms
Рисунок 5 — Задание 2
Введем произвольную пару логин/пароль и посмотрим на вывод.
Рисунок 6 — Введена неверная пара логин/пароль
Посмотрим код страницы
Рисунок 7 — Исходный код страницы
Видим, что на странице есть стандартные логин/пароль. Попробуем их ввести.
Рисунок 8 — Введены данные со страницы
Таким образом данная форма содержит дефолтные логин/пароль (возможно при проверке программист забыл их удалить), что является серьезной уязвимостью.
1.3 logout Management
Рисунок 9 — Задание 3
Попробуем разлогиниться, нажав на гиперссылку «here».
Рисунок 10 — Всплывающее окно
После нажатия появилось всплывающее окно с подтверждением. Подтверждаем выход.
Рисунок 11 — Попали на страницу логина
Если злоумышленник нажмет сейчас кнопку «Назад», то сессия пользователя восстановиться и он попадет на начальную страницу.
Рисунок 12 — Вернулись в сессию
Таким образом при разлогинивании с сайта не происходит очистка сессий пользователя, что позволяет злоумышленнику продолжить ее, просто нажав на кнопку «Назад» или подменив ее на существующую.
1.4 Password Attacks
Рисунок 13 — Задание 4
Попробуем ввести произвольные логин/пароль.
Рисунок 14 — Введены неверные логин/пароль
Попробуем при помощи Burp Suite провести атаку перебора.
Рисунок 15 — Отправляем запрос в Intruder
Рисунок 16 — Выбираем цель атаки
Рисунок 17 — Выбираем тип атаки «Cluster bomb» и добавляем перебираемые параметры (login и admin)
Рисунок 18 — Создаем словарь и правила для первого поля (login)
Рисунок 19 — Создаем словарь и правила для второго поля (password)
Рисунок 20 — Добавляем строки для отсеивания результатов перебора
Нажимаем кнопку «Start attack» и смотрим результат.
Рисунок 21 — Результаты перебора
Из отчета видно, что 15 запрос завершился без ошибки входа. Попробуем ввести данную пару логин/пароль в форму на сайте.
Рисунок 22 — Корректный подбор логина/пароля
Таким образом сайт позволяет проводить перебор пользовательских данных без задержек или ограничения попыток ввода, что является серьезной уязвимостью.
1.5 Weak Passwords
Рисунок 23 — Задание 5
Попробуем ввести произвольные логин/пароль.
Рисунок 24 — Введены неверные логин/пароль
Попробуем при помощи Burp Suite провести атаку перебора (см. предыдущий пункт). Посмотрим на результат перебора.
Рисунок 25 — Результаты перебора
Из отчета видно, что 13 запрос завершился без ошибки входа. Попробуем ввести данную пару логин/пароль в форму на сайте.
Рисунок 26 — Корректный подбор логина/пароля
Таким образом подобрать такой пароль не составляет труда. Всегда нужно требовать от пользователей выполнение парольной политики, иначе они могут стать вектором атаки.
1.6 Administrative Portals
Рисунок 26 — Задание 6
Посмотрим на URL
Рисунок 27 — URL страницы
При помощи get-запроса передается параметр admin со значением 0. Попробуем изменить это значение на 1.
Рисунок 28 — Разблокированная страница
Таким образом нельзя проводить никакие проверки прав только на стороне пользователей. Всегда следует оставлять дополнительную проверку на стороне сервера.