🔍 Поиск уязвимостей: Практическое руководство
⚠️ Все тесты должны проводиться только с явного разрешения владельца сайта. Несанкционированное тестирование является нарушением закона.
🔎 Этап 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:
- Перехват запроса через Proxy
- Отправка в Intruder для подбора параметров
- Анализ результатов через 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
Ссылки на дополнительные статьи