Кибербезопасность: Как через curl протестировать защиту сайта на SQL-инъекции (OR ‘1’=’1′) и XSS-атаки ()?
Тестирование веб-приложений на уязвимости — важная часть работы специалиста по кибербезопасности. Утилита curl позволяет отправлять HTTP-запросы с вредоносными payload’ами и анализировать ответы сервера. Важно: все тесты проводите ТОЛЬКО на собственных ресурсах или с письменного разрешения владельца. Несанкционированное тестирование является уголовно наказуемым деяниям.
## Тестирование SQL-инъекций через curl
SQL-инъекция — это атака, при которой злоумышленник внедряет SQL-код в пользовательский ввод. Классический пример: OR ‘1’=’1′.
**Тест через GET-параметр:**
curl -v «https://example.com/login?username=admin’%20OR%20’1’%3D’1&password=test»
**Тест через POST-форму:**
curl -v -X POST https://example.com/login
-d «username=admin’ OR ‘1’=’1&password=anything»
**Что анализировать в ответе:**
— HTTP-код 200 с неожиданным контентом — возможная уязвимость
— Сообщения об ошибках БД (MySQL error, syntax error) — явная уязвимость
— Код 400/403/WAF-блокировка — защита работает
— Одинаковый ответ для нормального и вредоносного запроса — хороший знак
**Дополнительные payload’ы для проверки:**
curl -v «https://example.com/items?id=1%20AND%201%3D1»
curl -v «https://example.com/items?id=1%20UNION%20SELECT%20null,null—»
## Тестирование XSS-атак через curl
XSS (Cross-Site Scripting) — внедрение JavaScript-кода в страницу. Классический payload: `alert(1)`.
**Тест через GET-параметр:**
curl -v «https://example.com/search?q=%3Cscript%3Ealert%281%29%3C%2Fscript%3E»
**Тест через POST с заголовком Content-Type:**
curl -v -X POST https://example.com/comment
-H «Content-Type: application/x-www-form-urlencoded»
-d «text=%3Cscript%3Ealert%281%29%3C%2Fscript%3E»
**Проверка отражённого XSS в ответе:**
curl -s «https://example.com/search?q=alert(1)» | grep -i «script»
**Что анализировать:**
— Если в HTML-ответе присутствует тег « без экранирования — уязвимость есть
— Если тег преобразован в `<script>` — защита работает
— Наличие заголовков `Content-Security-Policy`, `X-XSS-Protection` в ответе
## Проверка защитных заголовков
curl -I https://example.com
Ищите в ответе:
— `X-XSS-Protection: 1; mode=block`
— `Content-Security-Policy`
— `X-Content-Type-Options: nosniff`
— `X-Frame-Options`
## Важные рекомендации
1. Используйте флаг `-v` для полного вывода запроса и ответа
2. Применяйте URL-кодирование спецсимволов
3. Для комплексного тестирования используйте специализированные инструменты: SQLMap, OWASP ZAP, Burp Suite
4. Фиксируйте все результаты в отчёт
5. Тестируйте в изолированной среде или на staging-сервере
