Взлом Web приложений
Приложения с уязвимостями
OWASP Juice Shop Образ docker https://hub.docker.com/r/bkimminich/juice-shop
# Запуск последней версии
docker run -d -p 3000:3000 bkimminich/juice-shop
# Или с конкретной версией
docker run -d -p 3000:3000 bkimminich/juice-shop:v15.1.0
Затем он доступен по адресу http://localhost:3000
Damn Vulnerable Web Application (DVWA) Работает через docker или на локальном веб-сервере. Инструкции по DVWA доступны по адресу https://github.com/ethicalhack3r/DVWA
docker run -d -p 80:80 vulnerables/web-dvwa
Можно запустить отдельный контейнер с MySQL
version: '3'
services:
dvwa:
image: vulnerables/web-dvwa
ports:
- "80:80"
environment:
- MYSQL_HOST=db
- MYSQL_USER=dvwa
- MYSQL_PASSWORD=p@ssw0rd
- MYSQL_DB=dvwa
depends_on:
- db
restart: unless-stopped
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=dvwa
- MYSQL_USER=dvwa
- MYSQL_PASSWORD=p@ssw0rd
restart: unless-stopped
После запуска по адресу http://localhost нажмите "Create / Reset Database", войдите с учетными данными по умолчанию: Логин: admin Пароль: password В разделе "DVWA Security" установите нужный уровень сложности.
Способы атаки
Существуют типовые уязвимости.
Вопрос для самопроверки: что уязвимого в этом приложении может обнаружить злоумышленник?
- Как ведет приложение при запросах отсутствующих страниц?
- Список существующих endpoint (Фаззинг)
- burp можно использовать для атаки clusterbomb
Категории типовых уязвимостей
Типовые уязвимости по механизмам, где они происходят:
- Уязвимости механизмов аутентификации (Authentication Bypass)
- Уязвимости механизмов авторизации (Vulnerabilities of authorization )
- Уязвимости загрузки файлов (File upload vulnerabilities)
- Уязвимости раскрытия информации ( Coordinated Vulnerability Disclosure)
- Уязвимости в системах криптографии (Vulnerabilities in cryptography systems) и др.
Типовые уязвимости по характеру их эксплуатации:
- Уязвимости состояния гонки (race condition)
- Уязвимости некорректной нейтрализации управляющих конструкций при генерации веб-страниц (атаки межсайтового скриптинга) (XSS)
- Уязвимости подделки запроса со стороны сервера (SSRF)
- Уязвимости подделки запроса со стороны клиента (CSRF) и др.
Типовые уязвимости по технологиям, в которых они происходят:
- Уязвимости SQL инъекций (SQL injection)
- Уязвимости внедрения внешних сущностей в XML-документы (XXE )
- Уязвимости инъекций в ORM-запросах (ORM injection)
- Уязвимости инъекций в LDAP-запросах (LDAP Injection)
- Уязвимости инъекции команд или аргументов в запросах к терминальной оболочке ОС (Command Injection)
Авторизация и аутентификация
Классификация по типам проверки подлинности:
- Знание (пароль или ответ на вопрос безопасности, одноразовый код). Факторы знаний.
- Обладание (физический объект - мобильный телефон или маркер безопасности - магнитная карта). Фактор владения.
- Биометрия (персональные данные или модели поведения - конфиденциальная информация). Фактор согласованности.