🔍 Поиск уязвимостей: Практическое руководство

⚠️ Все тесты должны проводиться только с явного разрешения владельца сайта. Несанкционированное тестирование является нарушением закона.

🔎 Этап 1: Разведка

Как детектив изучает место преступления перед расследованием:

1.1 Поиск входных точек

URL параметры: site.com/profile?id=123
Формы: <input name="email">
Cookie: sessionId=abc123
Заголовки: X-API-Key: secret

🔹 Цель: Составить карту всех мест, куда можно передать данные

1.2 Анализ технологий

Инструменты:

  • Wappalyzer (определение CMS и фреймворков)
  • BuiltWith (анализ технологического стека)
  • curl: curl -I https://site.com (просмотр заголовков)

🛠️ Этап 2: Тестирование входных данных

Как проверять каждую дверь и окно в доме:

2.1 SQL Injection

Пробуем ввести в параметры:
' OR 1=1--" SLEEP(5)--
Анализируем:
✓ Неожиданные результаты
✓ Задержки ответа
✓ Сообщения об ошибках SQL

Автоматизация:

sqlmap -u "site.com/profile?id=1" --dbs

Эта команда попытается определить доступные базы данных

2.2 XSS

Тестовые векторы:
<script>alert(1)</script>
<img src=x onerror=alert(1)>
Проверяем:
✓ Выполнение скриптов
✓ Отображение тегов в HTML
✓ Кодирование специальных символов

📄 Этап 3: Анализ ответов

Как читать между строк в письмах:

3.1 Ошибки сервера

Пример опасного ответа:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result
Что это значит: 
Сервер показал внутреннюю ошибку БД, что подтверждает возможность SQLi

3.2 Неожиданное поведение

Пример для LFI:
../../etc/passwd
Ответ:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
Вывод: Сервер уязвим к чтению системных файлов

🤖 Этап 4: Автоматизированное тестирование

Как использовать "умные сканеры" для быстрой проверки:

Burp Suite

Пример workflow:

  1. Перехват запроса через Proxy
  2. Отправка в Intruder для подбора параметров
  3. Анализ результатов через Repeater

OWASP ZAP

Запуск автоматического сканирования:
1. Введите URL цели
2. Запустите "Active Scan"
3. Анализируйте отчет в разделе "Alerts"

Найденные уязвимости будут ранжированы по риску: ✓ High: XSS, SQLi ✓ Medium: CSRF, Directory Listing ✓ Low: Информационные утечки

✋ Этап 5: Углубленное ручное тестирование

Где автоматика бессильна:

5.1 Логические уязвимости

Пример:
1. Добавить товар в корзину (цена: $100)
2. Перехватить запрос: POST /cart {price: 100}
3. Изменить на: {price: -100}
4. Если баланс увеличивается — уязвимость!

5.2 Тестирование авторизации

Проверки:
✓ Можно ли получить доступ к /admin без прав?
✓ Работает ли горизонтальный доступ?
✓ user1 может редактировать профиль user2?
✓ Сохраняется ли сессия после выхода?

✅ Советы для начинающих:

  • Начните с тестовых сред: DVWA, WebGoat
  • Изучите OWASP Top 10 как библию безопасности
  • Анализируйте отчеты об уязвимостях на HackerOne
  • Всегда документируйте свои находки

🔗 Полезные ресурсы: PortSwigger Academy, Hack The Box, CTF-соревнования

📝 Задания на закрепление

Порешайте задачи из раздела Задания, в названии которых есть слово web

Ссылки на дополнительные статьи